Getting started
Errors
One error shape for every endpoint, with stable codes.
Every error, on every endpoint, has the same JSON body and a stable machine-readable code. The HTTP status matches error.status.
{
"error": {
"code": "not_found",
"message": "No asset with that id.",
"status": 404
}
}Codes
400 bad_request
A parameter is missing or out of range. The message names it.
401 missing_key
No x-api-key header or bearer token.
401 invalid_key
Unknown or revoked key.
404 not_found
Unknown asset, exchange or ETF asset id.
429 quota_exceeded
More than 600 requests in the hour. See retry-after.
429 rate_limited
Short burst limit on a heavy endpoint. Retry after a second.
503 unavailable
The index is restarting; retry in a few seconds.
500 internal
Our fault. Quote x-request-id when you report it.
Client libraries should branch on error.code, not on the message text, which may change.
