Email validation (credits)
Submit Bulk Verification Job
Submit a list of email addresses for bulk verification. Returns a job ID immediately. Poll GET /v1/bulk/ to track progress.
POST
/
v1
/
bulk
curl --request POST \
--url https://api.orbisearch.com/v1/bulk \
--header "Content-Type: application/json" \
--header "X-API-Key: <api-key>" \
--data '["ceo@acme.com", "sales@example.com", "john.doe@bigcorp.io"]'
import requests
response = requests.post(
"https://api.orbisearch.com/v1/bulk",
json=["ceo@acme.com", "sales@example.com", "john.doe@bigcorp.io"],
headers={"X-API-Key": "<api-key>"},
)
print(response.json())
const response = await fetch("https://api.orbisearch.com/v1/bulk", {
method: "POST",
headers: {
"Content-Type": "application/json",
"X-API-Key": "<api-key>",
},
body: JSON.stringify(["ceo@acme.com", "sales@example.com", "john.doe@bigcorp.io"]),
});
console.log(await response.json());
{
"job_id": "123e4567-e89b-12d3-a456-426614174000",
"status": "submitted",
"total_emails": 500,
"estimated_cost": 100
}{
"detail": "Email list cannot be empty"
}{
"detail": "API key required in X-API-Key header"
}{
"detail": "Insufficient credits. You have 0.15 credits but need 0.2."
}{
"detail": "Invalid request body field '0': Input should be a valid string.",
"errors": [
{
"loc": "body.0",
"msg": "Invalid request body field '0': Input should be a valid string.",
"type": "string_type"
}
]
}{
"detail": "Rate limit exceeded. Maximum 20 requests per second per account. Contact us to discuss higher limits.",
"code": "rate_limited"
}Use this endpoint to submit a list of email addresses for asynchronous bulk verification. The API accepts your list, deduplicates it, queues the job, and returns a
job_id immediately. Verification happens in the background. Poll GET /v1/bulk/{job_id} to track progress and GET /v1/bulk/{job_id}/results to retrieve results when the job is complete.
Deduplication and async processing
OrbiSearch automatically deduplicates your email list before processing. If you submit 600 addresses but 100 are duplicates,total_emails will be 500 and you will only be charged for 500 verifications.
Because bulk jobs run asynchronously, this endpoint returns immediately after accepting the job. Use the returned job_id to poll GET /v1/bulk/{job_id} until the status field reaches complete. You can begin retrieving partial results at any time using GET /v1/bulk/{job_id}/results. See that page for details on fetching results before a job finishes.
curl --request POST \
--url https://api.orbisearch.com/v1/bulk \
--header "Content-Type: application/json" \
--header "X-API-Key: <api-key>" \
--data '["ceo@acme.com", "sales@example.com", "john.doe@bigcorp.io"]'
import requests
response = requests.post(
"https://api.orbisearch.com/v1/bulk",
json=["ceo@acme.com", "sales@example.com", "john.doe@bigcorp.io"],
headers={"X-API-Key": "<api-key>"},
)
print(response.json())
const response = await fetch("https://api.orbisearch.com/v1/bulk", {
method: "POST",
headers: {
"Content-Type": "application/json",
"X-API-Key": "<api-key>",
},
body: JSON.stringify(["ceo@acme.com", "sales@example.com", "john.doe@bigcorp.io"]),
});
console.log(await response.json());
Authorizations
API key for authentication
Body
application/json
Required array length:
1 - 100000 elementsRequired string length:
3 - 320Example:
[
"ceo@acme.com",
"sales@example.com",
"john.doe@bigcorp.io"
]
Response
Successful Response
Response when submitting a bulk verification job.
Unique job identifier.
Example:
"123e4567-e89b-12d3-a456-426614174000"
Submission acknowledgement status.
Available options:
submitted Allowed value:
"submitted"Example:
"submitted"
Total number of unique emails to verify.
Example:
500
Estimated credit cost for this job.
Example:
100
⌘I
curl --request POST \
--url https://api.orbisearch.com/v1/bulk \
--header "Content-Type: application/json" \
--header "X-API-Key: <api-key>" \
--data '["ceo@acme.com", "sales@example.com", "john.doe@bigcorp.io"]'
import requests
response = requests.post(
"https://api.orbisearch.com/v1/bulk",
json=["ceo@acme.com", "sales@example.com", "john.doe@bigcorp.io"],
headers={"X-API-Key": "<api-key>"},
)
print(response.json())
const response = await fetch("https://api.orbisearch.com/v1/bulk", {
method: "POST",
headers: {
"Content-Type": "application/json",
"X-API-Key": "<api-key>",
},
body: JSON.stringify(["ceo@acme.com", "sales@example.com", "john.doe@bigcorp.io"]),
});
console.log(await response.json());
{
"job_id": "123e4567-e89b-12d3-a456-426614174000",
"status": "submitted",
"total_emails": 500,
"estimated_cost": 100
}{
"detail": "Email list cannot be empty"
}{
"detail": "API key required in X-API-Key header"
}{
"detail": "Insufficient credits. You have 0.15 credits but need 0.2."
}{
"detail": "Invalid request body field '0': Input should be a valid string.",
"errors": [
{
"loc": "body.0",
"msg": "Invalid request body field '0': Input should be a valid string.",
"type": "string_type"
}
]
}{
"detail": "Rate limit exceeded. Maximum 20 requests per second per account. Contact us to discuss higher limits.",
"code": "rate_limited"
}