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. |
{
"error": {
"code": "NO_LIQUIDITY",
"message": "No liquidity available for this pair/amount"
},
"meta": { "requestId": "6b50…19e", "version": "2024-01" }
}
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.