---
title: "Submit a batch job-listings search job"
method: POST
path: "/batch/job/search"
tags: ["Batch APIs"]
---

# Submit a batch job-listings search job

`POST /batch/job/search`

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.

<Note>
    An account may have at most 5 active (`pending` or `processing`) batch jobs at a time;
    submitting a sixth returns `429`.
</Note>

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](/general/pricing#job-endpoints).

## Headers

- `x-api-version` '2025-11-01', required

## Request body

- BatchJobSearchRequest — 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` integer[], required — 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.
  - `fields` union — 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.
    - string — Comma-separated dotted field paths.
    - string[]
  - `webhook_url` string, uri — Optional URL that receives a POST notification when the job finishes, so you do not have to poll.

## Response `200`

Batch job accepted for processing

- BatchSubmitResponse — Returned immediately when a batch job is accepted. No data is returned at submit time — poll `status_url` for progress and download links.
  - `batch_id` string, uuid, required — Unique ID of the batch job. Use it to poll `GET /batch/{batch_id}`.
  - `status` 'pending', required — Initial job status. Always `pending` at submit time.
  - `entity` 'company' | 'person' | 'social_post', required — Entity type the job operates on.
  - `action` 'enrich' | 'enrich_live' | 'contact_enrich' | 'search' | 'search_live', required — Internal action name for the job. Live endpoints report `enrich_live` / `search_live`; the person contact enrichment endpoint reports `contact_enrich`.
  - `identifier_count` integer, required — Number of identifiers submitted. Search jobs always report `1` (the query).
  - `entities_requested` integer, required — 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.
  - `status_url` string, required — Relative URL to poll for the job status (`GET /batch/{batch_id}`).

## Other responses

- `400` — Invalid request — missing, malformed, or too many crustdata_company_ids
- `401` — Unauthorized — invalid or missing API key
- `403` — Forbidden — your account is not entitled to this batch endpoint
- `429` — Too many active jobs — the account already has 5 batch jobs in `pending` or `processing` status
- `500` — Internal server error — the job could not be started

---

[API](https://skmtc.dev/crustdata/apis/batch-api.md) · [All operations](https://skmtc.dev/crustdata/apis/batch-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/crustdata/batch-api/revisions/581689e66ae7/schema)
