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 base parameter. 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);