Skip to main content
Bulk verification is designed for processing large lists of email addresses in a single operation. Instead of making one request per address, you submit an array of emails and OrbiSearch handles the verification asynchronously — including automatic retries for addresses that return transient errors or are greylisted. You can then poll for status and retrieve the results when the job completes.

When to use bulk verification

  • List cleaning — verify an existing database of contacts before a campaign or migration.
  • Batch imports — validate addresses in bulk when importing data from a CSV, CRM export, or third-party source.
  • Scheduled enrichment — run periodic verification jobs to keep your data fresh without blocking real-time workflows.
For checking a single address on demand (e.g., at point of entry) or in tools like Clay, use single verification instead.

How bulk verification works

1

Submit a job

Send a POST request to /v1/bulk with a JSON body containing an emails array. OrbiSearch returns a job_id immediately and begins processing in the background.
2

Poll for status

Use GET /v1/bulk/{job_id} to check the job’s progress. Poll every 10–30 seconds for large jobs until the status is complete or failed.
3

Retrieve results

Once the job is complete, fetch all results with GET /v1/bulk/{job_id}/results. Each result contains the same fields as a single verification response.

Submitting a job

Send your list of addresses as a JSON array in the request body.
cURL
OrbiSearch returns a confirmation object with the job ID and an estimated cost:
OrbiSearch deduplicates the emails array automatically. You are only charged for unique addresses. If your list contains duplicates, they are removed before processing and the cost reflects the unique count.

Checking job status

Poll GET /v1/bulk/{job_id} to track progress.
cURL
Example response while the job is running:

Job statuses

Retry statuses

Some addresses return a greylisted substatus on the first attempt. OrbiSearch automatically retries these. The retry_status field tracks that process:
For jobs with thousands of addresses, poll every 10–30 seconds. Polling more frequently than necessary won’t speed up processing and wastes API calls.

Retrieving results

Once status is complete, fetch the full results:
cURL
Response:
Each object in the results array follows the same schema as a single verification response. See Handling Results for guidance on acting on each status.

Complete example

The following example submits a bulk job, polls until it completes, and prints the results.

Deduplication and credits

OrbiSearch deduplicates your submitted list before processing. If the same address appears more than once, it is verified once and the result is applied to all occurrences. You are charged 0.2 credits per unique email. The estimated_cost in the submit response reflects the deduplicated count.
The estimated_cost is an estimate based on the unique email count at submission time. The final charge is determined at job completion.