Skip to main content

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, returns 400; over-cap submissions are rejected. String-list identifiers also accept a single comma-separated string.

Your first batch enrichment: companies by domain

When the job completes, each line in the downloaded file is one company wrapped in the enrichment envelope:
One record from the results file
Record trimmed for clarity.

Enrich by Crustdata ID

If you already hold crustdata_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