Skip to main content
This reference lists the errors the Bright Data Scraper API returns, what each one means and what to do about it. Scraper API errors come in two layers:
  • HTTP errors: the request itself failed. The API answers with a 4xx status and no job runs
  • Record errors: the request succeeded, but one input could not be scraped. The failed record carries an error_code field inside the results

What do the Scraper API HTTP errors mean?

The Scraper API returns these HTTP errors from POST /datasets/v3/trigger and POST /datasets/v3/scrape. Unless a row names one endpoint, /trigger and /scrape return the same message. The validation_error and parse_error bodies are JSON. Every other message is plain text.

What happens if I get too many 429 errors?

Bright Data blocks any IP that receives 25 or more 429 responses within 5 minutes. A blocked IP is refused on every API request until Bright Data support clears it. Treat a 429 as a signal to slow down, not to retry at once:
  1. Stop sending new requests as soon as you receive a 429.
  2. Wait the number of seconds in the Retry-After header. If the header is missing, back off 2, 4, 8, 16 and 32 seconds.
  3. Reduce concurrency if 429 responses keep coming.
Ten or more 429 responses within 5 minutes means you are close to the 25-in-5-minutes block threshold. Reduce the request rate right away.
The retry code is in Getting a 429 Too Many Requests error? on the async guide.

What do Scraper API record errors mean?

A record error means the Scraper API job ran, but one input returned no data. The failed record appears in the results only when the request sets include_errors=true. Branch on the error_code field, not on the free-text error message, because the message text changes as scrapers are updated. Bright Data does not charge for failed records. A dead_page record from POST /datasets/v3/scrape with include_errors=true looks like this. The request itself returns HTTP 200:
The record keeps the original input, so you can match the error back to the URL you sent. For the full list of record error codes, see Scraper Studio error codes.

Is an empty result an error?

No. An empty result ([]) means the job returned no data. It is not an HTTP error. To see why an input returned nothing, resend the request with include_errors=true and read the error_code on each record.