> ## Documentation Index
> Fetch the complete documentation index at: https://docs.radion.app/llms.txt
> Use this file to discover all available pages before exploring further.

# Errors

> Error codes, response format, and handling strategies for the Radion API.

When something goes wrong, the API returns a JSON error. The format follows [RFC 9457](https://www.rfc-editor.org/rfc/rfc9457) (Problem Details). The `Content-Type` is `application/problem+json`.

## Error format

```json theme={null}
{
  "type": "about:blank",
  "status": 401,
  "title": "Unauthorized",
  "detail": "Invalid API key",
  "requestId": "1748123456-1a"
}
```

| Field       | Type    | What it means                                                  |
| ----------- | ------- | -------------------------------------------------------------- |
| `type`      | string  | The problem type. Always `about:blank` for normal HTTP errors. |
| `status`    | integer | The HTTP status code.                                          |
| `title`     | string  | A short title that matches the status code.                    |
| `detail`    | string  | What went wrong this time.                                     |
| `requestId` | string  | The id for this request. Send it to us when you ask for help.  |

## Status codes

| Status | Meaning               | When you see it                                                            |
| ------ | --------------------- | -------------------------------------------------------------------------- |
| `400`  | Bad Request           | A query parameter is wrong or out of range                                 |
| `401`  | Unauthorized          | The key is missing, wrong, or turned off                                   |
| `403`  | Forbidden             | The key is fine but the plan is too low for this endpoint                  |
| `404`  | Not Found             | The market, trader, or event does not exist                                |
| `409`  | Conflict              | The thing already exists, like an API key with the same label              |
| `422`  | Unprocessable Entity  | The request body is valid JSON but fails the rules                         |
| `429`  | Too Many Requests     | You went over a quota. Wait for the time in `Retry-After`, then try again. |
| `500`  | Internal Server Error | Something broke on our side                                                |

## Rate limit errors

When you go over the per-second limit, you get this detail:

```json theme={null}
{
  "detail": "Rate limit exceeded"
}
```

When you go over the monthly limit, you get this detail:

```json theme={null}
{
  "detail": "Monthly request limit exceeded"
}
```
