Batch Search Jobs
Retrieve every job listing in the dataset for up to 10 companies in a single asynchronous
job. Where the non-batch /job/search returns one cursor page per call, the batch job walks
every page for you and delivers the complete result set as one file.
An account may have at most 5 active (pending or processing) batch jobs at a time;
submitting a sixth returns 429.
Unlike the other batch search jobs, this endpoint does not take a filters group — provide a
crustdata_company_ids list (a JSON array of integers; comma-separated strings are rejected)
and the job returns all listings for those companies. To search listings by arbitrary
filters, use the non-batch /job/search. Records in the downloaded results file are flat,
identical to the non-batch /job/search record shape.
Billing is per listing delivered, at the same rate as the non-batch /job/search — see
Pricing.
Authorizations
API key passed as a Bearer token in the Authorization header.
Headers
API version to use. Batch job submission requires 2025-11-01; requests without this header are rejected with 400.
2025-11-01 "2025-11-01"
Body
The companies whose job listings to retrieve, plus optional field selection.
Request body for a batch job-listings search job. Provide the Crustdata company IDs whose
listings you want; the job walks the paginated result set server-side and delivers every
listing for those companies. There is no filters or max_results control on this endpoint.
Crustdata company IDs whose job listings to retrieve. Maximum 10 per job — larger
submissions are rejected with 400. Must be a JSON array of integers; a comma-separated
string returns 400. Resolve IDs from a name, domain, or profile URL with the free
/company/identify endpoint.
10A Crustdata company ID.
Optional list of dotted field paths to include in each record (also accepted as a single
comma-separated string). When omitted, all fields permitted for your account are returned.
An unsupported value returns 400 with the full list of selectable fields in
metadata.available_fields. The selectable fields are the same as the non-batch
/job/search endpoint.
Optional URL that receives a POST notification when the job finishes, so you do not have to poll.
"https://example.com/webhooks/crustdata-batch"
Response
Batch job accepted for processing
Returned immediately when a batch job is accepted. No data is returned at submit time — poll status_url for progress and download links.
Unique ID of the batch job. Use it to poll GET /batch/{batch_id}.
"53ab686b-c054-496b-8baf-baff5ecc85cf"
Initial job status. Always pending at submit time.
pending "pending"
Entity type the job operates on.
company, person, social_post "company"
Internal action name for the job. Live endpoints report enrich_live / search_live; the person contact enrichment endpoint reports contact_enrich.
enrich, enrich_live, contact_enrich, search, search_live "enrich"
Number of identifiers submitted. Search jobs always report 1 (the query).
2
Number of entities the job was asked to produce. For enrich jobs this equals identifier_count; for search jobs it is 1 until results are known.
2
Relative URL to poll for the job status (GET /batch/{batch_id}).
"/batch/53ab686b-c054-496b-8baf-baff5ecc85cf"

