error message, never a successful search with zero matches. HTTP 200 with an empty documents array means the search ran and found nothing; every other status names what went wrong.
Which status codes does Business Search return?
Retry
429 after the delay in its Retry-After header. Retry 500, 502 and 504 with bounded backoff. Never retry 400, 401, 403, 404 or 501, because the same request fails every time. A 500 with error_code backend_search_failed that repeats for the same request is caused by the request itself, so change the request rather than retrying it.
Why was a request rejected?
Business Search rejects an invalid request body with HTTP 400 and names what it rejected. Selecting an unknown output field returns:industry and current_title accept only the text operator. See Business Search query syntax.
Some rejections also carry an error_code, a machine-readable class such as invalid_query or backend_search_failed. Branch on error_code when it is present, and fall back to the HTTP status when it is not, because generic errors omit it.
Correct the request when validation fails. Rate-limit checks run after validation, so a rejected request does not consume rate-limit budget, but repeating an invalid body still cannot succeed.
What is the rate limit?
The default limit is 60 requests per minute, counted per account, per category and per mode. Company and people searches therefore have separate budgets, as do Ludicrous, Instant and Smart within each category. When you exceed the limit, Business Search returns HTTP 429 with aRetry-After header giving the seconds to wait. Wait that long before retrying. A rate-limited request is not searched and not billed.
How should you handle each failure class?
Distinguish these four cases in your own logging. Collapsing them into one “search failed” branch hides the difference between a bug in your query and an outage.
What should you send to Bright Data support?
Include the endpoint, the HTTP status, the request time, the error message andreq_id if one was returned. Include a redacted request body when it helps.
Frequently asked questions
Does a 200 response mean the query was understood?
No. A 200 means the search ran. In Instant and Smart modes, natural-language intent and result relevance are not guaranteed by a successful HTTP response, so review the records before acting on them.Should I retry an HTTP 400?
No. HTTP 400 means the request itself is invalid, so the same body fails every time. Retry only HTTP 500, 502 and 504, with bounded backoff.Do rejected requests count against the rate limit?
No. Business Search validates the request before it checks the rate limit, so a malformed query does not consume budget. Correct the request rather than retrying it, because an invalid body cannot succeed however many times you send it.How do I tell a missing field from an empty result?
A missing field inside a returned record means the source has no stored value for that record. An emptydocuments array means no record matched the conditions. Handle absent values per record and empty pages per request.