Renidlyrenidly
Guides

Batch Enrichment

3 min read

When you have a whole list to enrich — not one record at a time — batch enrichment takes the entire list in a single job, works it in the background, and hands you the results as they land. It exists for both people and companies, and returns the same records you'd get from single enrichment.

How a batch job works

Batch enrichment is asynchronous. You don't hold a connection open while thousands of records resolve — you hand off the list and check back. Three steps, whether the list is people or companies:

StepWhat you doWhat you get back
1 · SubmitSend your list of identifiers to the batch endpoint in one request.A job ID. The list is accepted and queued; the call returns immediately.
2 · TrackPoll the same endpoint with your job ID.Live progress — how many resolved, how many failed, and whether the job is still running or done.
3 · CollectRead the results off the job as they become available.Enriched records, each keyed to the identifier you sent, plus a list of anything that could not be found.

Results stream in — you don't wait for the whole list to finish before you see anything. Long lists page through in chunks, so you can start writing records to your own store while the tail of the job is still resolving. A job you submit is yours to track until it completes; the identifiers that resolve come back tied to exactly the input you sent, so matching results back to your rows is trivial.

When to reach for batch

Batch is the right tool any time the work is a list rather than a single live lookup in front of a user. The classic shapes:

  • CRM & database hydration. Enrich an existing book of contacts or accounts — clean up stale fields and fill the gaps across the whole table in one pass.
  • List building & imports. Someone hands you a CSV of names, domains, or IDs. Push the lot through one job instead of fanning out thousands of individual calls.
  • Backfills & migrations. Standing up a new system, or re-enriching after a schema change? Batch is built for the big one-time sweep.
  • Scheduled refreshes. Nightly or weekly jobs that keep a warehouse or lead table current — submit the list on a cron and collect when it's done.
  • Analytics & scoring pipelines. Feed a large cohort in, get structured records out, and run your models over the result.

Batch vs. single enrichment

Both return the same records. The difference is the shape of the work in front of you — one live answer, or a whole list resolved in the background.

Prefer single enrichment when…Prefer batch enrichment when…
A user is waiting on the answer right now.The work is a list, and nothing is blocked on any one row.
You have one identifier, or a handful.You have hundreds, thousands, or more.
You need the record inline, synchronously.You can hand off the list and collect results later.
Real-time lookups inside a request path.Backfills, imports, CRM syncs, scheduled refreshes.

People and companies

Batch enrichment covers both sides of the graph. Send a list of people to the people batch endpoint, or a list of companies to the company batch endpoint — the flow is identical, the results are the same rich records single enrichment returns for each, and both bill from the same credit balance. Not sure which subject you're working with? Start at Which Endpoint to Use.