Frankfurter (v1)
The v1 API is superseded by v2 but will continue to work.
API Endpoints
Frankfurter provides endpoints to retrieve latest rates, historical data, or time series.
- Latest Rates
- Fetch the latest working day's rates, updated daily around 16:00 CET.
curl https://api.frankfurter.dev/v1/latest- Change the base currency using the
baseparameter. The default is EUR. curl https://api.frankfurter.dev/v1/latest?base=USD- Limit the response to specific target currencies.
curl https://api.frankfurter.dev/v1/latest?symbols=CHF,GBP- Historical Rates
- Retrieve rates for a specific date.
curl https://api.frankfurter.dev/v1/1999-01-04- Change the base currency and filter target currencies.
curl https://api.frankfurter.dev/v1/1999-01-04?base=USD&symbols=EUR- Note: Frankfurter stores dates in UTC. If you use a different time zone, be aware that you may be querying with a different calendar date than intended. Also, data returned for today is not stable and will update if new rates are published.
- Time Series Data
- Fetch rates over a period.
curl https://api.frankfurter.dev/v1/2000-01-01..2000-12-31- Fetch rates up to the present.
curl https://api.frankfurter.dev/v1/2024-01-01..- Tip: Filter currencies to reduce response size and improve performance.
curl https://api.frankfurter.dev/v1/2024-01-01..?symbols=USD- Available currencies
- Get supported currency symbols and their full names.
curl https://api.frankfurter.dev/v1/currencies- Currency Conversion
- Perform currency conversion by fetching the exchange rate and calculating in your code.
function convert(from, to, amount) { fetch(`https://api.frankfurter.dev/v1/latest?base=${from}&symbols=${to}`) .then((resp) => resp.json()) .then((data) => { const convertedAmount = (amount * data.rates[to]).toFixed(2); alert(`${amount} ${from} = ${convertedAmount} ${to}`); }); } convert("EUR", "USD", 10);