Calenzy API
APIs/Data feeds

Currencies API

Currency names in eight languages, the latest rates, and history ready for a chart.

/v1/currenciesCounts toward your plan's quota4 endpoints

We store every rate against the euro and work out the pair you ask for from those, so EUR to JPY and USD to JPY always agree with each other. The same rates feed the Alerts API.

GET/v1/currencies

List currencies

Every currency we carry, with its name in eight languages and its symbol.

Query
includestringkeywords adds a keywords list to every currency, for a search box
Response
codestringISO 4217 code, such as USD
en, fr, es, destringName in English, French, Spanish and German
zh, twstringName in Simplified and Traditional Chinese
kr, jpstringName in Korean and Japanese
symbolstringSuch as $ or €
is_cryptointeger1 for a cryptocurrency
is_metalinteger1 for a precious metal
keywordsarrayOnly with include=keywords. Other words people search this currency by, in every language we support: countries that use it, nicknames and short names (korea, corea, coree, 한국 for KRW). Lowercase and without accents, so compare them with the search text lowercased and without accents
GETapi.calenzy.app/v1/currencies
Response · 200 OK
[
  {
    "code": "USD",
    "en": "United States Dollar",
    "fr": "Dollar américain",
    "es": "Dólar estadounidense",
    "de": "US-Dollar",
    "zh": "美元",
    "tw": "美元",
    "kr": "미국 달러",
    "jp": "米ドル",
    "symbol": "$",
    "is_crypto": 0,
    "is_metal": 0
  },
  {
    "code": "EUR",
    "en": "Euro",
    "fr": "Euro",
    "es": "Euro",
    "de": "Euro",
    "zh": "欧元",
    "tw": "歐元",
    "kr": "유로",
    "jp": "ユーロ",
    "symbol": "€",
    "is_crypto": 0,
    "is_metal": 0
  }
]
GET/v1/currencies/rates

All latest rates

The latest rate of every currency.

Response
codestringISO 4217 code
ratenumberRate against the base currency
Request
GETapi.calenzy.app/v1/currencies/rates
Response · 200 OK
[
  { "code": "USD", "rate": 1.0 },
  { "code": "EUR", "rate": 0.85 },
  { "code": "GBP", "rate": 0.73 },
  { "code": "JPY", "rate": 110.5 },
  { "code": "CAD", "rate": 1.25 }
]
GET/v1/currencies/rate

Rate for one pair

How many units of target one unit of base buys, right now.

Query
baseRequiredstringISO 4217 code, such as USD
targetRequiredstringISO 4217 code, such as JPY
Response
base, targetstringAs sent
ratenumberOne base in target, up to 10 decimals. Always 1 when both codes are the same
date_collectedstringWhen we collected the rate, ISO 8601
Request
GETapi.calenzy.app/v1/currencies/rate?base=USD&target=JPY
Response · 200 OK
{
  "base": "USD",
  "target": "JPY",
  "rate": 149.2738491625,
  "date_collected": "2026-04-09T12:00:00+00:00"
}
GET/v1/currencies/historical

History for a chart

Rates for a pair over a period, oldest first, spaced to suit a chart.

Query
baseRequiredstringISO 4217 code, uppercase, such as EUR
targetRequiredstringISO 4217 code, uppercase, such as USD
periodRequiredstring1d, 7d, 1m, 3m, 6m, 1y or 5y, see Periods
Periods
PeriodCoversPointsOne point every
1d24 hoursabout 7220 minutes
7d7 daysabout 842 hours
1m30 daysabout 1206 hours
3mabout 90 daysabout 90day
6mabout 180 daysabout 902 days
1yabout 52 weeksabout 52week
5y60 monthsabout 60month
Response
base, targetstringAs sent
history[]arrayPoints, oldest first
history[].datestringyyyy-MM-ddTHH:mm:ss, UTC, with no offset and no Z
history[].ratenumberOne base in target, at least 4 decimals
Request
GETapi.calenzy.app/v1/currencies/historical?base=EUR&target=USD&period=3m
Response · 200 OK
{
  "base": "EUR",
  "target": "USD",
  "history": [
    { "date": "2026-01-03T00:00:00", "rate": 1.0842 },
    { "date": "2026-01-04T00:00:00", "rate": 1.0856 },
    { "date": "2026-01-05T00:00:00", "rate": 1.0831 }
  ]
}

Errors

Besides these, any call can answer one of the common errors.

CodeHTTPWhen
invalid_currency400A currency code we do not carry
invalid_period400A period other than 1d, 7d, 1m, 3m, 6m, 1y or 5y
same_currency400base and target are the same, for the history