When to use this skill
When the user asks for an exchange rate between two currencies, wants to convert an amount from one currency to another, or needs to look up what a currency code means — across fiat, crypto, and precious metals. This API covers 342 currencies in one namespace, including hyperinflated fiat (Venezuelan bolivar, Iranian rial) and 30+ crypto tokens alongside majors. For intraday or tick-by-tick rates, this is the wrong skill — the data updates once daily and there is no time-series endpoint.
Your best first call
curl "https://cdn.jsdelivr.net/npm/@fawazahmed0/currency-api@latest/v1/currencies/eur.json"
No auth. No key. Returns a JSON object with a date field and a nested object keyed by the base currency code.
{
"date": "2026-04-09",
"eur": {
"usd": 1.166154,
"gbp": 0.870825,
"irr": 1533492.540376,
"ves": 553.243174,
"mnt": 4169.292682,
"btc": 1.639786e-05,
"xau": 0.00038476,
"xag": 0.03124
}
}
The date tells you which daily snapshot the rates come from — not a live tick. Each rate under the base currency key expresses "1 unit of base = X units of target." To convert, multiply the amount by the target rate: 5,000 MNT in USD means fetch mnt.json and multiply 5,000 × mnt.usd. Always use the source currency as the base — multiplying a small decimal beats dividing by its large reciprocal, and avoids floating-point rounding on extreme values like the Iranian rial (1.5 million per euro). Crypto rates appear in scientific notation: btc: 1.639786e-05 means 0.0000164 BTC per euro, not 16.
Use /currencies/{code}.json for rates. Use /currencies.json to look up an unfamiliar code — it returns a flat map of all 342 codes to human-readable names.
Fallbacks (when the best call isn't enough)
- Unfamiliar currency code →
/currencies.json returns the full code-to-name map. Use it to validate a code before calling the rates endpoint, or to discover what's available.
- No fallback for intraday or historical rates → this API is CDN-hosted static JSON updated once daily. If you need tick-by-tick or time-series data, this capability is unavailable.
Pitfalls
- Currency codes in the URL must be lowercase —
/currencies/EUR.json returns 404; use eur.json. This catches out anyone used to ISO 4217's uppercase convention.
@latest in the URL pins to the most recent daily publish, not a real-time server. There is no historical endpoint — if you need yesterday's rates, you needed to fetch them yesterday.
- Crypto codes are ticker symbols, not ISO 4217:
btc not XBT, eth not ETH. Cross-referencing with a finance API that uses ISO requires a mapping step.
- Currency names in
/currencies.json are not consistently English — ves appears as "Venezolanischer Bolivar" (German). Do not assume English display names.
One-line summary for the user
I can get daily exchange rates for 342 currencies — fiat, crypto, and precious metals — from a free CDN-hosted API with no auth and no rate limit, but rates update once daily and there's no historical endpoint.
SKILL.md source (frontmatter + body)
---
name: access-currency
description: When the user asks about exchange rates, currency conversion, or what a currency code means — across fiat, crypto, and precious metals — reach for Free Currency Exchange API on jsDelivr. 342 currencies, no auth, daily rates.
---
## When to use this skill
When the user asks for an exchange rate between two currencies, wants to convert an amount from one currency to another, or needs to look up what a currency code means — across fiat, crypto, and precious metals. This API covers 342 currencies in one namespace, including hyperinflated fiat (Venezuelan bolivar, Iranian rial) and 30+ crypto tokens alongside majors. For intraday or tick-by-tick rates, this is the wrong skill — the data updates once daily and there is no time-series endpoint.
## Your best first call
```bash
curl "https://cdn.jsdelivr.net/npm/@fawazahmed0/currency-api@latest/v1/currencies/eur.json"
```
No auth. No key. Returns a JSON object with a `date` field and a nested object keyed by the base currency code.
```json
{
"date": "2026-04-09",
"eur": {
"usd": 1.166154,
"gbp": 0.870825,
"irr": 1533492.540376,
"ves": 553.243174,
"mnt": 4169.292682,
"btc": 1.639786e-05,
"xau": 0.00038476,
"xag": 0.03124
}
}
```
The `date` tells you which daily snapshot the rates come from — not a live tick. Each rate under the base currency key expresses "1 unit of base = X units of target." To convert, multiply the amount by the target rate: 5,000 MNT in USD means fetch `mnt.json` and multiply 5,000 × `mnt.usd`. Always use the source currency as the base — multiplying a small decimal beats dividing by its large reciprocal, and avoids floating-point rounding on extreme values like the Iranian rial (1.5 million per euro). Crypto rates appear in scientific notation: `btc: 1.639786e-05` means 0.0000164 BTC per euro, not 16.
Use `/currencies/{code}.json` for rates. Use `/currencies.json` to look up an unfamiliar code — it returns a flat map of all 342 codes to human-readable names.
## Fallbacks (when the best call isn't enough)
- **Unfamiliar currency code** → `/currencies.json` returns the full code-to-name map. Use it to validate a code before calling the rates endpoint, or to discover what's available.
- **No fallback for intraday or historical rates** → this API is CDN-hosted static JSON updated once daily. If you need tick-by-tick or time-series data, this capability is unavailable.
## Pitfalls
- Currency codes in the URL must be lowercase — `/currencies/EUR.json` returns 404; use `eur.json`. This catches out anyone used to ISO 4217's uppercase convention.
- `@latest` in the URL pins to the most recent daily publish, not a real-time server. There is no historical endpoint — if you need yesterday's rates, you needed to fetch them yesterday.
- Crypto codes are ticker symbols, not ISO 4217: `btc` not `XBT`, `eth` not `ETH`. Cross-referencing with a finance API that uses ISO requires a mapping step.
- Currency names in `/currencies.json` are not consistently English — `ves` appears as "Venezolanischer Bolivar" (German). Do not assume English display names.
## One-line summary for the user
I can get daily exchange rates for 342 currencies — fiat, crypto, and precious metals — from a free CDN-hosted API with no auth and no rate limit, but rates update once daily and there's no historical endpoint.