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

# Errors

> Predictable, machine-readable error codes.

Failures return `{ error: { code, message, details? }, meta }`. Branch on the stable `code`;
the human-readable `message` may change.

| Code                | HTTP | Meaning                                                    |
| ------------------- | ---- | ---------------------------------------------------------- |
| `INVALID_REQUEST`   | 400  | Body or params failed validation (`details` lists fields). |
| `UNSUPPORTED_TOKEN` | 400  | Token not resolvable on that chain.                        |
| `UNSUPPORTED_CHAIN` | 400  | Chain not supported.                                       |
| `NO_LIQUIDITY`      | 404  | No venue could quote this pair/amount.                     |
| `QUOTE_EXPIRED`     | 410  | `quoteToken` past expiry — re-quote.                       |
| `QUOTE_INVALID`     | 400  | `quoteToken` malformed or tampered.                        |
| `RATE_LIMITED`      | 429  | Per-key rate limit exceeded.                               |
| `UNAUTHORIZED`      | 401  | Missing or invalid API key.                                |
| `INTERNAL`          | 500  | Unexpected or venue-side error.                            |

```json theme={null}
{
  "error": {
    "code": "NO_LIQUIDITY",
    "message": "No liquidity available for this pair/amount"
  },
  "meta": { "requestId": "6b50…19e", "version": "2024-01" }
}
```

<Tip>
  Always log the `requestId` from `meta` (also in the `x-request-id` header) — include it when
  contacting support and we can trace the exact request.
</Tip>
