Rate limits & errors
Rate limits & errors
Rate limits are enforced per API key on three windows: per minute, per day, and per month. The first limit reached applies: a burst that exceeds the per-minute ceiling is throttled even when daily headroom remains.
Your key's limits and usage are shown in the Console. Higher limits are an account change, not a code change: contact us.
When you hit a limit
The API returns 429 Too Many Requests. Back off and retry:
python
Spread traffic instead of bursting where you can, and reuse results. Repeated identical prompts spend budget without adding information.
Error codes
| Status | Meaning | What to do |
|---|---|---|
400 | Malformed request. | Check JSON syntax and required fields. |
401 | Missing or invalid API key. | See Auth and API keys. |
402 | Out of credits. | Top up in the Console. |
403 | Can mean the request was rejected by token or origin checks, for example when a malformed or unrecognized Authorization value is handled as a Console session token. | Send the full API key from Console, copied exactly. See Auth errors. |
422 | Valid auth, invalid parameters. | Compare against the API Reference; remove unknown fields. |
429 | Rate limit exceeded. | Retry with exponential backoff, as above. |
5xx | Server-side failure. | Retry once after a short delay; check status.desearch.ai. |
Every successful response carries X-Desearch-Cost-Usd. Log it and you always know spend per request without waiting for the bill.