Get Batch Job Status
Poll the current state of a batch job. The status moves pending → processing →
completed or failed. When the job is completed, the response includes a download_url
for the merged results file and download_urls for the same data split into parts; both are
pre-signed links valid for 5 days. When the job is failed, error_message carries a
human-readable reason.
Results files are gzipped JSONL (one record per line). Enrichment job records are wrapped in
an {original_identifier, internal_id, data} envelope; search job records are flat and match
the corresponding non-batch endpoint’s record shape.
The x-api-version header is not required on this endpoint.
Authorizations
API key passed as a Bearer token in the Authorization header.
Path Parameters
The batch job ID returned at submit time.
"53ab686b-c054-496b-8baf-baff5ecc85cf"
Response
Current state of the batch job, with download links when completed
Current state of a batch job. download_url and download_urls appear only when status is
completed; error_message appears only when the job has an error. Note that a completed job
with result_count: 0 may still include a download_url that points to a file that was never
written (fetching it returns 404) — check result_count before downloading.
Unique ID of the batch job.
"53ab686b-c054-496b-8baf-baff5ecc85cf"
Job lifecycle status. Moves pending → processing → completed or failed.
pending, processing, completed, failed "completed"
Entity type the job operates on (company or person).
"company"
Internal action name for the job (enrich, enrich_live, search, or search_live).
"enrich"
Number of identifiers submitted. Search jobs always report 1 (the query).
2
Number of records the job has produced so far. For completed jobs, this is the number of lines in the results file.
2
Number of entities the job was asked to produce.
2
Number of entities actually delivered. May be lower than entities_requested when some identifiers cannot be resolved; for search jobs it equals result_count and may exceed entities_requested.
2
When the job was submitted (ISO 8601).
"2026-06-12T12:23:03.945900+00:00"
When the job finished (ISO 8601). null while the job is still pending or processing.
"2026-06-12T12:23:15.993293+00:00"
Human-readable reason the job failed (for example, when the processing workflow could not be started). Present only when the job has an error.
Pre-signed URL for the single merged results file (gzipped JSONL, one record per line). Present only for completed jobs. The real URL carries signed authentication query parameters (elided in the example) and stays valid for 5 days.
"https://crustdata-batch-api-data.s3.amazonaws.com/53ab686b-c054-496b-8baf-baff5ecc85cf/output/results.jsonl.gz"
Pre-signed URLs for the same data split into part files, useful for streaming very large result sets. Present only for completed jobs that wrote results. The real URLs carry signed authentication query parameters (elided in the example) and stay valid for 5 days.
Pre-signed URL of one results part file.
[
"https://crustdata-batch-api-data.s3.amazonaws.com/53ab686b-c054-496b-8baf-baff5ecc85cf/output/part-000.jsonl.gz"
]

