- 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_codefield inside the results
What do the Scraper API HTTP errors mean?
The Scraper API returns these HTTP errors fromPOST /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:- Stop sending new requests as soon as you receive a 429.
- Wait the number of seconds in the
Retry-Afterheader. If the header is missing, back off 2, 4, 8, 16 and 32 seconds. - Reduce concurrency if 429 responses keep coming.
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 setsinclude_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:
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.