Trigger async batch collection
Use POST /dca/trigger to start an async batch collection for a Scraper Studio collector. The body is a JSON array of inputs; returns a collection_id to fetch results later.
POST /dca/trigger to start an asynchronous batch collection for a published Bright Data Scraper Studio collector. The request body is a JSON array of input objects, and each object must match the collector’s input schema.
The endpoint returns a collection_id immediately. Use that ID with the Receive batch data endpoint (GET /dca/dataset) to retrieve the results when the collection is complete.
For the full happy-path walkthrough (auth, trigger, poll, parse) in cURL, Python and Node.js, see the Quickstart. This page is the parameter and error reference.
Request
The request body is a JSON array of input objects. Each object must match the input schema defined for the collector in Scraper Studio. A URL-based collector may require aurl field, while other collectors may require fields such as keyword, location, country or custom input fields.
The body must be a JSON array. For a single input, send an array with one object.
Response
collection_id identifies this collection run. Use it as the id value when calling GET /dca/dataset to retrieve the results.
| Field | Type | Description |
|---|---|---|
collection_id | string | ID of the collection run. Use this value to retrieve results from GET /dca/dataset. |
start_eta | string | Estimated start time for the collection, in ISO 8601 format. |
When to use batch collection
Use batch collection (POST /dca/trigger) when:
- You need to process multiple inputs in one run.
- You can wait until the collection finishes before receiving results.
- You want to retrieve results later by
collection_id. - You are building a dataset or a scheduled collection workflow.
Errors
| Status | Cause | Fix |
|---|---|---|
401 Unauthorized | Token missing, malformed or revoked | Re-copy from Account Settings → API Tokens |
404 Not Found | Collector ID does not exist or your account does not have access | Open the collector in Scraper Studio and re-copy the ID |
422 Unprocessable Entity | The objects in your request body do not match the collector’s input schema | Confirm field names against the Inputs tab of your collector |
5xx | Transient Bright Data API error | Retry with exponential backoff, for example 1s, 2s, 4s |
Retry behavior
Re-triggering the same inputs creates a new collection with a newcollection_id. The endpoint is not idempotent and does not deduplicate inputs across runs. To retry only the failed inputs, use Get errors for a job to identify the failed inputs from the run, then trigger a new collection with only those inputs.
Related
- Quickstart: full trigger, poll and parse walkthrough in cURL, Python and Node.js
- Receive batch data: poll for the dataset
- Node.js starter: production-grade client that calls this endpoint
- Python starter: same, in Python
Authorizations
Use your Bright Data API Key as a Bearer token in the Authorization header.
How to authenticate:
- Obtain your API Key from the Bright Data account settings at https://brightdata.com/cp/setting/users
- Include the API Key in the Authorization header of your requests
- Format:
Authorization: Bearer YOUR_API_KEY
Example:
Authorization: Bearer b5648e1096c6442f60a6c4bbbe73f8d2234d3d8324554bd6a7ec8f3f251f07dfLearn how to get your Bright Data API key: https://docs.brightdata.com/api-reference/authentication
Query Parameters
Collector ID of the Scraper Studio scraper to run. The ID starts with c_.
"c_abc123"
Set to dev to trigger the development version of the scraper
Human-readable name for the batch collection.
If another collection is already running, queue this collection to run after it.
Queue name used to group related collection runs. Runs that share a queue start one after another.
Cancels a running collection for this collector and runs this one instead.
Disables media file downloads for this collection.
Sets the maximum time the collection can run. When the deadline is reached, Bright Data terminates the collection. Use h for hours, m for minutes or s for seconds, for example 1h, 30m or 45s.
"1h"
Body
A JSON array of input objects. Each object must match the input schema defined for the collector. A URL-based collector may require a url field, while other collectors may require fields such as keyword, location or country. For a single input, send an array with one object.
Example field for collectors that take a target URL. Replace with the fields your collector expects.