Frankfurter (v1)
This is the original v1 API. It 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);