- 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 applies a temporary IP block to any IP that receives 25 or more HTTP 429 responses within 5 minutes. The threshold counts 429 responses, not total requests. A blocked IP is refused on every API request, and the temporary IP block expires automatically after one hour. You do not need to contact Bright Data support for block removal.How do I handle 429 responses before a block?
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 when the response includes one. Otherwise back off 2, 4, 8, 16 and 32 seconds, with random jitter added to each wait. - Stop after a fixed number of retries. If 429 responses persist, pause and reduce concurrency.
You have too many running jobs for this dataset means you already run 5,000 active jobs or snapshots, so submit fewer, larger jobs until running jobs finish.
What do I do if my IP is already blocked?
The temporary IP block expires automatically after one hour, so recovery does not depend on Bright Data support:- Stop all API requests from the blocked IP, including retries.
- Fix the cause of the 429 responses, for example lower concurrency or combine inputs into fewer jobs.
- After the hour passes, resume gradually at a lower request rate or concurrency to avoid another block.
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.