REST API overview
The base URL is operator-configured for this milestone — there is no fixed
public production origin (PORT/host are set by whoever runs the
service). Every request and response body is JSON.
Credentials
Two independent, header-only schemes (see Authentication / API keys for the full flow):
Authorization: ApiKey <key>— required for the data-plane rate endpoint (current rate).Authorization: Session <token>— required for account/API-key/usage management endpoints.
Request id
Every response echoes X-Request-Id. Include it when reporting an issue —
it also appears in every error body (below).
Errors
Every non-2xx response uses the same envelope:
{ "code": "unauthorized", "message": "A valid API key is required.", "request_id": "..." }code is the only machine-readable discriminator; message is a display
string and must never be pattern-matched by client code. See Errors
for the full reference table.
What’s on REST today — and what isn’t
The current REST surface for data access is:
| Method | Path | Auth | Purpose |
|---|---|---|---|
GET | /v1/rates/{base}/{quote} | ApiKey | Current rate |
GET | /v1/account/usage | Session | Usage & quotas |
POST/GET/DELETE | /v1/account/api-keys[...] | Session | API key management |
POST/GET | /v1/auth/* | mixed | register/login/logout/session/verify/reset |
There is no REST endpoint for currency conversion and no REST endpoint
for asset-catalog listing. Those two capabilities exist today only as
hosted MCP tools — convert_currency,
list_fiat_currencies, and list_crypto_assets. If you need conversion
math or a list of supported assets, use the MCP tools instead of
REST; this is current, intentional product state, not a gap in this
documentation.
Need this over MCP instead? See convert_currency → or list_fiat_currencies → / list_crypto_assets →.