Browse all documentation

Current exchange rates API

Request current rates by base and quote currencies.

One base unit equals each returned quote. REST and fx_get_rates use the same schema.

Request

REST
curl --request GET \
  --url "https://api.narwhalapi.com/v1/fx/rates/USD?currencies=EUR,JPY" \
  --header "Authorization: Bearer $NARWHAL_API_KEY"
ParameterRule
baseRequired uppercase circulating ISO 4217 code.
currenciesOptional list of 1–64 unique quote currencies. Omit it for all supported quotes.

Response

200 OK
{
  "base": "USD",
  "market_session": "open",
  "rates": [
    {
      "currency": "EUR",
      "rate": "0.9200",
      "timestamp": "2026-08-22T06:29:41Z",
      "stale": false
    },
    {
      "currency": "JPY",
      "rate": "147.23",
      "timestamp": "2026-08-22T06:29:39Z",
      "stale": false
    }
  ]
}

Rates are ordered records, not dynamic keys. Every rate keeps its own timestamp and stale state.

Freshness

market_session is open, weekend, or interbank_closed. A weekend response can remain usable when its timestamp and stale state are clear.

On Basic and Pro, the prices stream sends each rate when it changes, in the same format. Prices stream reference

Errors

400 invalid_query · 401 invalid_api_key · 404 currency_not_supported · 429 quota_exhausted · 503 upstream_unavailable

Read errors and quota · View coverage