(first_name, last_name, domain) tuples; OrbiSearch processes them in the background and returns a verified result for each.
When to use bulk lookup
- List enrichment — turn a CSV of names + companies into a list of reachable emails.
- Lead research at scale — research a target list once, instead of one address at a time.
- Periodic refresh — re-run lookups for a customer base after a quarterly LinkedIn refresh or trade-show export.
How bulk lookup works
Submit a job
Send a
POST request to /v1/bulk-lookup with an input array of (first_name, last_name, domain) objects. OrbiSearch returns a job_id immediately and begins processing in the background. Credits are deducted upfront for the unique row count.Poll for status
Use
GET /v1/bulk-lookup/{job_id} to check the job’s progress. Poll every 10–30 seconds until status becomes completed.Submitting a job
Send your list of people in the JSON body. Each row needsfirst_name, last_name, and domain.
input array automatically (case-insensitive on first name + last name + domain). If your list has duplicates, you are only charged for the unique rows.
Checking job status
PollGET /v1/bulk-lookup/{job_id} to track progress.
status is running until every row has been processed, at which point it becomes completed and finished_at is populated. The summary object updates live as rows complete — you can show progress to your end user before the job is fully done.
Retrieving results
Oncestatus is completed, fetch the full results. Use limit and offset to page through them — default limit is 50, max 500.
results has the same shape as a single email lookup response:
email is null, OrbiSearch could not find a deliverable address for that person at that domain — don’t send to them at that domain.
Pricing
Each unique row costs1 credit, deducted upfront when you submit the job. Every returned row is charged. Refunds are issued only when OrbiSearch infrastructure cannot accept or process the submission itself — in that case the upfront charge is reversed and no job is created.
Limits and rate limits
- Maximum
10,000rows per submission. Split larger lists across multiple jobs. - This endpoint shares the
20requests per second per API key limit with the rest of the/v1/*API.
Complete example
Python