Endpoint essentials
Batch Company Enrichment takes up to 10,000 companies per job, identified by domain, name, profile URL or Crustdata ID, with one identifier type per job. The job runs in the background. You get a
batch_id straight away, then poll GET /batch/{batch_id} or pass a webhook_url to be told when it finishes. A completed job returns a download_url for one results file and download_urls for the same data split into parts. Files are gzipped JSONL with one company per line, and the links stay valid for 5 days.
Batch enrichment takes a list of identifiers you already have and returns the
enriched record for each as a single results file, instead of one
Company Enrich call per company.
Identifiers: exactly one type per job
Each job takes exactly one identifier type with up to 10,000 identifiers — providing none, or more than one type, returns400;
over-cap submissions are rejected. String-list identifiers also accept a
single comma-separated string.
Your first batch enrichment: companies by domain
One record from the results file
Record trimmed for clarity.
Enrich by Crustdata ID
If you already holdcrustdata_company_id values — for example from a
previous search — they are the most precise identifier type. In the results
file, original_identifier echoes the ID you submitted as a string:
Record trimmed for clarity.
Fields: requested plus defaults
fields accepts dotted leaf paths (headcount.total), whole family names
(headcount), or a comma-separated string of either. A family name expands to
its entire subtree. The response contains the requested fields plus the
default basic_info family — matching the non-batch
Company Enrich exactly, including the
selectable field list. An unsupported value returns 400 with every
selectable field in metadata.available_fields.
This request also shows the comma-separated string identifier form:
Request
One record, trimmed — the full headcount family comes back
chunk_size
Optional internal processing chunk size (identifiers per processing unit),
10–1000, default 100. Out-of-range values return 400.
Errors
400 — no identifier
400 — two identifier types
400 — invalid field (with available_fields)
What to do next
- Find companies first — see Batch Company Search to turn one query into an input list.
- Single-company enrichment — see Company Enrich.
- Resolve a domain to a company first — see Company Identify.
- Valid
fieldsvalues — see the enrich reference. - Enrich people in batch — see Batch Person Enrich.
- Full schema — see the API reference.

