Errors

Status codes, what causes them, and what to do.

Open in…
Ask on Discord
What your agent reads
Errors return a JSON body with a machine-readable `code` and a human-readable message.

| Status | Code | Cause | What to do |
| --- | --- | --- | --- |
| `400` | `VALIDATION_ERROR` | A parameter is missing or invalid | Fix the request body. Not charged. |
| `401` | `UNAUTHORIZED` | Missing or invalid API key | Check the `Authorization: Bearer` header. Not charged. |
| `402` | `INSUFFICIENT_CREDITS` | Balance too low for this call | Top up or upgrade in Billing. |
| `429` | `RATE_LIMIT_EXCEEDED` | Too many requests | Wait `Retry-After` seconds, then back off. |
| `502` | `SEARCH_UNAVAILABLE` | An upstream failed | Credits are refunded. Retry with backoff. |

Each endpoint page lists the errors specific to it.
Every page: append .md to the URL. Whole site: /llms.txt · /llms-full.txt

Errors return a JSON body with a machine-readable code and a human-readable message.

StatusCodeCauseWhat to do
400VALIDATION_ERRORA parameter is missing or invalidFix the request body. Not charged.
401UNAUTHORIZEDMissing or invalid API keyCheck the Authorization: Bearer header. Not charged.
402INSUFFICIENT_CREDITSBalance too low for this callTop up or upgrade in Billing.
429RATE_LIMIT_EXCEEDEDToo many requestsWait Retry-After seconds, then back off.
502SEARCH_UNAVAILABLEAn upstream failedCredits are refunded. Retry with backoff.

Each endpoint page lists the errors specific to it.

Let your agent build it

Paste one prompt into Claude Code, Cursor, Codex or Windsurf. It installs Keiro MCP, reads these docs and writes the integration against the real API.

Ask on Discord