Skip to Content
REST APIErrors

Errors

Every non-2xx REST response uses this envelope:

{ "code": "string", "message": "string", "request_id": "string" }
  • request_id matches the X-Request-Id response header.
  • code is the only machine-readable discriminator.
  • message is a human display string — never pattern-match it in client code; only match on code.

Error code reference

Covers only the codes returned by the endpoints and MCP tools documented on this site:

CodeStatusWhere
invalid_asset_symbol400REST rate endpoint, MCP get_rate/convert_currency
invalid_amount400MCP convert_currency only
unsupported_pair404REST rate endpoint, MCP get_rate/convert_currency
unauthorized401Any ApiKey/Session-protected endpoint
too_many_requests429Auth endpoints only (register/login/password-reset/verify-resend)
quota_exceeded429 (REST) / tool error (MCP)REST rate endpoint, MCP get_rate/convert_currency
validation_error400Auth/API-key request body validation
not_found404Unknown/foreign/already-revoked API-key id
method_not_allowed405Wrong HTTP method on any route
temporarily_unavailable503Any endpoint, on storage/dependency failure

MCP error model

MCP tool-call domain errors are not an HTTP status code. They are returned as CallToolResult{IsError: true} carrying the same {code, message, request_id} fields (plus limit/remaining/reset_at for quota_exceeded) inside the tool’s structured content. Auth failures (bad/missing API key) remain ordinary HTTP 401, before any MCP tool call is attempted. See MCP overview for details.