Currencies API
Currency names in eight languages, the latest rates, and history ready for a chart.
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.
List currencies
Every currency we carry, with its name in eight languages and its symbol.
Query
| includestring | keywords adds a keywords list to every currency, for a search box |
Response
| codestring | ISO 4217 code, such as USD |
| en, fr, es, destring | Name in English, French, Spanish and German |
| zh, twstring | Name in Simplified and Traditional Chinese |
| kr, jpstring | Name in Korean and Japanese |
| symbolstring | Such as $ or € |
| is_cryptointeger | 1 for a cryptocurrency |
| is_metalinteger | 1 for a precious metal |
| keywordsarray | Only 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
curl "https://api.calenzy.app/v1/currencies" \ -H "Authorization: Bearer YOUR_API_KEY"
GETapi.calenzy.app/v1/currencies?include=keywords
curl "https://api.calenzy.app/v1/currencies?include=keywords" \ -H "Authorization: Bearer YOUR_API_KEY"
[ { "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 } ]
All latest rates
The latest rate of every currency.
Response
| codestring | ISO 4217 code |
| ratenumber | Rate against the base currency |
GETapi.calenzy.app/v1/currencies/rates
curl "https://api.calenzy.app/v1/currencies/rates" \ -H "Authorization: Bearer YOUR_API_KEY"
[ { "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 } ]
Rate for one pair
How many units of target one unit of base buys, right now.
Query
| baseRequiredstring | ISO 4217 code, such as USD |
| targetRequiredstring | ISO 4217 code, such as JPY |
Response
| base, targetstring | As sent |
| ratenumber | One base in target, up to 10 decimals. Always 1 when both codes are the same |
| date_collectedstring | When we collected the rate, ISO 8601 |
GETapi.calenzy.app/v1/currencies/rate?base=USD&target=JPY
curl "https://api.calenzy.app/v1/currencies/rate?base=USD&target=JPY" \ -H "Authorization: Bearer YOUR_API_KEY"
{ "base": "USD", "target": "JPY", "rate": 149.2738491625, "date_collected": "2026-04-09T12:00:00+00:00" }
History for a chart
Rates for a pair over a period, oldest first, spaced to suit a chart.
Query
| baseRequiredstring | ISO 4217 code, uppercase, such as EUR |
| targetRequiredstring | ISO 4217 code, uppercase, such as USD |
| periodRequiredstring | 1d, 7d, 1m, 3m, 6m, 1y or 5y, see Periods |
Periods
| Period | Covers | Points | One point every |
|---|---|---|---|
1d | 24 hours | about 72 | 20 minutes |
7d | 7 days | about 84 | 2 hours |
1m | 30 days | about 120 | 6 hours |
3m | about 90 days | about 90 | day |
6m | about 180 days | about 90 | 2 days |
1y | about 52 weeks | about 52 | week |
5y | 60 months | about 60 | month |
Response
| base, targetstring | As sent |
| history[]array | Points, oldest first |
| history[].datestring | yyyy-MM-ddTHH:mm:ss, UTC, with no offset and no Z |
| history[].ratenumber | One base in target, at least 4 decimals |
GETapi.calenzy.app/v1/currencies/historical?base=EUR&target=USD&period=3m
curl "https://api.calenzy.app/v1/currencies/historical?base=EUR&target=USD&period=3m" \ -H "Authorization: Bearer YOUR_API_KEY"
{ "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.
| Code | HTTP | When |
|---|---|---|
invalid_currency | 400 | A currency code we do not carry |
invalid_period | 400 | A period other than 1d, 7d, 1m, 3m, 6m, 1y or 5y |
same_currency | 400 | base and target are the same, for the history |