Anomus Data

API reference

One base URL, four endpoints, and a response shape that does not change. Everything is a GET request; there is nothing to write.

Base URL

http://127.0.0.1:4200

Authentication

Send your key as an X-API-Key header, as Authorization: Bearer, or as an ?apikey= query parameter. The header is preferred — query strings end up in access logs.

Each account has one key. You can copy it or issue a replacement at any time from your dashboard; regenerating takes the old key out of service immediately.

Endpoints

GET /v1/prices

Every instrument your plan allows, in one response. This is the endpoint almost everyone uses.

type
Narrow to a single market: crypto, forex, stocks or commodity.
symbols
Comma-separated list. Instruments we do not carry come back in an "unknown" array rather than as an error.
curl -H "X-API-Key: $KEY" \
  "http://127.0.0.1:4200/v1/prices?type=crypto"
GET /v1/quote/{symbol}

A single instrument. URL-encode the slash in a pair — BTC/USDT becomes BTC%2FUSDT.

curl -H "X-API-Key: $KEY" \
  "http://127.0.0.1:4200/v1/quote/BTC%2FUSDT"
GET /v1/symbols

The full catalogue with names and markets. Useful for building a picker.

curl -H "X-API-Key: $KEY" http://127.0.0.1:4200/v1/symbols
GET /v1/status

Feed freshness and your current plan limits. Handy as a health check on your side.

curl -H "X-API-Key: $KEY" http://127.0.0.1:4200/v1/status

Rate limits

Your plan sets the number. The window is fixed and resets on the minute, so a burst at 10:00:59 does not count against 10:01:00.

Header Meaning
X-RateLimit-Limit Requests allowed per minute on your plan.
X-RateLimit-Remaining Requests left in the current window.
X-RateLimit-Reset Unix timestamp when the window resets.
Retry-After Seconds to wait. Only sent on a 429.
X-Snapshot-Generated When the returned prices were assembled.
ETag Send it back as If-None-Match to receive a 304 when nothing has changed.

Errors

Failures always come back as { "error": { "code", "message" } }. Match on the code; the message is written for a human and may change.

Code HTTP Meaning
missing_api_key 401 No key was sent in the header or query string.
invalid_api_key 401 The key does not exist. Check for a copy-paste error.
inactive 403 The key is real but the account has no running plan, or it is suspended.
rate_limited 429 You passed your per-minute allowance. Retry-After says how long to wait.
too_many_symbols 400 The ?symbols= list is longer than your plan allows in one response.
unknown_symbol 404 We do not carry that instrument.
no_data 503 No snapshot is available. Retry shortly.

Ready to try it? Create an account and your key is issued immediately.