Skip to main content
GET
https://api.crustdata.com
/
batch
/
{batch_id}
Get the status and download URLs for a batch job
curl --request GET \
  --url https://api.crustdata.com/batch/{batch_id} \
  --header 'Authorization: Bearer <token>'
{ "batch_id": "53ab686b-c054-496b-8baf-baff5ecc85cf", "status": "completed", "entity": "company", "action": "enrich", "identifier_count": 2, "result_count": 2, "entities_requested": 2, "entities_fulfilled": 2, "created_at": "2026-06-12T12:23:03.945900+00:00", "completed_at": "2026-06-12T12:23:15.993293+00:00", "download_url": "https://crustdata-batch-api-data.s3.amazonaws.com/53ab686b-c054-496b-8baf-baff5ecc85cf/output/results.jsonl.gz", "download_urls": [ "https://crustdata-batch-api-data.s3.amazonaws.com/53ab686b-c054-496b-8baf-baff5ecc85cf/output/part-000.jsonl.gz" ] }

Authorizations

Authorization
string
header
required

API key passed as a Bearer token in the Authorization header.

Path Parameters

batch_id
string<uuid>
required

The batch job ID returned at submit time.

Example:

"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.

batch_id
string<uuid>
required

Unique ID of the batch job.

Example:

"53ab686b-c054-496b-8baf-baff5ecc85cf"

status
enum<string>
required

Job lifecycle status. Moves pendingprocessingcompleted or failed.

Available options:
pending,
processing,
completed,
failed
Example:

"completed"

entity
string
required

Entity type the job operates on (company or person).

Example:

"company"

action
string
required

Internal action name for the job (enrich, enrich_live, search, or search_live).

Example:

"enrich"

identifier_count
integer
required

Number of identifiers submitted. Search jobs always report 1 (the query).

Example:

2

result_count
integer
required

Number of records the job has produced so far. For completed jobs, this is the number of lines in the results file.

Example:

2

entities_requested
integer
required

Number of entities the job was asked to produce.

Example:

2

entities_fulfilled
integer
required

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.

Example:

2

created_at
string<date-time> | null
required

When the job was submitted (ISO 8601).

Example:

"2026-06-12T12:23:03.945900+00:00"

completed_at
string<date-time> | null
required

When the job finished (ISO 8601). null while the job is still pending or processing.

Example:

"2026-06-12T12:23:15.993293+00:00"

error_message
string

Human-readable reason the job failed (for example, when the processing workflow could not be started). Present only when the job has an error.

download_url
string<uri>

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.

Example:

"https://crustdata-batch-api-data.s3.amazonaws.com/53ab686b-c054-496b-8baf-baff5ecc85cf/output/results.jsonl.gz"

download_urls
string<uri>[]

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.

Example:
[
  "https://crustdata-batch-api-data.s3.amazonaws.com/53ab686b-c054-496b-8baf-baff5ecc85cf/output/part-000.jsonl.gz"
]