Skip to Content
REST APIAsset catalog

GET /v1/assets

Lists the assets that currently have stored rates, so you can discover what is quotable without guessing at symbols.

Need this over MCP instead? See list_fiat_currencies → or list_crypto_assets →.

Auth

Authorization: ApiKey <key> — required.

Billing

Not billable. Catalog reads do not consume request units, because discovering what you can ask for should not cost the same as asking. They are still subject to the per-second rate limit.

Endpoints

PathReturns
GET /v1/assetsEvery asset, fiat and crypto
GET /v1/assets/fiatFiat currencies only
GET /v1/assets/cryptoCrypto assets only

Success — 200

curl https://your-getratesapi-host/v1/assets/crypto \ -H "Authorization: ApiKey gra_live_0000000000000000000000000000000000000000000000000000000000000000"
const res = await fetch("https://your-getratesapi-host/v1/assets/crypto", { headers: { Authorization: "ApiKey gra_live_0000000000000000000000000000000000000000000000000000000000000000", }, }); const { assets } = await res.json();
{ "asset_class": "crypto", "assets": ["ADA", "BTC", "ETH", "SOL", "XRP"] }

assets is sorted and de-duplicated. asset_class is fiat, crypto, or all.

Classification

An asset is classified by the kind of source that quotes it: anything appearing in a fiat feed is fiat, everything else quoted by a crypto feed is crypto. A currency such as EUR therefore appears only in the fiat list, even though crypto feeds also quote against it.

Listing is derived from stored rates, so it reflects what is actually servable right now, not an aspirational catalog. An asset can appear and disappear as upstream coverage changes.

Coverage

  • Fiat — about 170 codes: every ISO 4217 currency our fiat provider publishes, gold (XAU) and silver (XAG) per troy ounce, the IMF Special Drawing Right (XDR), and a few legacy codes such as HRK or LTL kept for older systems.
  • Crypto — thousands of coins and stablecoins: every crypto asset our crypto provider prices in USD. Codes are the provider’s tickers (BTC, ETH, USDT, …).

The crypto feed is refreshed every 10 seconds, the fiat feed every 60 (see freshness). Each asset comes from exactly one source: the fiat feed never supplies a crypto code and the crypto feed never supplies a fiat one, so a rate never flips between two providers.

Public catalog with names

GET /v1/catalog/assets returns the same lists with English display names and needs no API key — handy for building a currency picker in a browser without exposing your key:

curl https://your-getratesapi-host/v1/catalog/assets
{ "fiat": [{ "code": "CZK", "name": "Czech Koruna" }, { "code": "EUR", "name": "Euro" }], "crypto": [{ "code": "BTC", "name": "Bitcoin" }] }

It is cached for up to 60 seconds (Cache-Control: public, max-age=60), so a newly added asset can take a minute to appear. Names come from a curated table for currencies and well-known coins, then from the crypto provider’s asset directory; an asset without any known name uses its code.

Error outcomes

StatusCode
401unauthorized
429rate_limited
503temporarily_unavailable