Errors and response states
Generic errors
Non-quote application errors use:
{
"error": "message"
}
Quote errors
Quote failures use a structured body. detail may be null.
{
"code": "NO_ROUTE",
"message": "no route",
"detail": "NO_QUALIFIED_ROUTE_WITHIN_HOP_LIMIT"
}
The following code strings map to HTTP status codes:
| Code | HTTP status |
|---|---|
INVALID_PARAMS | 400 |
INVALID_ADDRESS | 400 |
UNSUPPORTED_CHAIN | 404 |
NOT_A_POOL | 404 |
TOKEN_UNKNOWN | 404 |
NO_ROUTE | 422 |
NOT_SUPPORTED | 422 |
RPC_UNAVAILABLE | 503 |
BUDGET_EXCEEDED | 503 |
DEADLINE_EXCEEDED | 504 |
Authentication and authorization
401 Unauthorized: the credential is missing, invalid, expired, or revoked. The response body is empty and includesWWW-Authenticate: Bearer.403 Forbidden: the credential is valid but the consumer is not allowed to use the requested endpoint. The response body is empty.
Rate limiting
429 Too Many Requests has an empty body. The numeric Retry-After header gives the number of seconds to wait before retrying. Rate limiting is isolated per consumer; requests made with a session cookie use the same bucket as the bearer credential that created it.
Token-quote response states
GET /v1/quote/token/{chain_id}/{token_address} may return a non-error response without a price:
| HTTP status | State | Caller action |
|---|---|---|
202 Accepted | Enrollment was accepted, but discovery or initial evaluation is still pending. | Do not treat the token as priced. Retry later and observe normal rate-limit guidance. |
200 OK | UNPRICED: the token is known and the request completed, but no publishable USD price is currently available. | Treat the price as unavailable, not zero. Keep the response metadata and retry when newer evidence may exist. |
A 202 response means work is pending. A 200 UNPRICED response is a completed evaluation with no usable price at that time.