Frankfurter/getRates

FrankfurterFrankfurter v2 exchange-rate API

GET/rates

Get exchange rates

Returns exchange rates blended across providers. Without date params, returns the latest rates. Each record is a single currency pair. The response includes an identity record for the base currency (base equals quote, rate 1), subject to the quotes filter like any other record. Daily date ranges of any length are served, including full history. Limit: requests using `providers` or `expand=providers` recompute the blend per date, so at daily granularity they return 422 for ranges longer than 5 years. With `providers` naming at most 5 providers, a `quotes` list of at most 5 currencies lifts the cap; without `providers`, `expand=providers` ranges compute every currency regardless of `quotes`, so aggregate with `group=week` or `group=month`, add `providers`, or split the range into shorter requests.

Query rates from 84 central banks across 201 currencies back to 1948 without an API key, with provider filtering and attribution, time-series downsampling, and streaming output.

Request

operationId
getRates
Server
https://api.frankfurter.dev/v2
Authentication
None

Request parameters

date

querystringdate

Specific date (YYYY-MM-DD). Cannot be combined with from/to.

2024-01-15

from

querystringdate

Start of date range (YYYY-MM-DD)

2024-01-01

to

querystringdate

End of date range (YYYY-MM-DD). Defaults to today.

2024-01-31

base

querystring

Base currency (default: EUR)

USD

quotes

querystring

Comma-separated list of quote currencies to include

USD,GBP,JPY

providers

querystring

Comma-separated list of data providers to include

ECB,TCMB

group

querystring

Downsample rates by time period. Only applies to date ranges.

month

expand

querystring

Comma-separated list of optional fields to include per record. Currently supports `providers`, which adds an array of `{ key, date, rate }` objects per record showing each provider's individual observation date and rate. Outliers excluded from the blend (and providers whose rate was overridden by a currency peg) are flagged with `excluded: true`. The field is omitted on synthesized peg rows where no provider published the quote. In CSV output, the `providers` column is encoded as `KEY:RATE` pairs joined by `|`, with a trailing `*` on excluded entries (e.g. `ECB:0.92|FED:1.50*`).

providers

Responses

200

Rateapplication/jsonapplication/x-ndjson

Exchange rates

Properties: datebasequoterateproviders

404

unknown

422

unknown

503

unknown

[
  {
    "date": "2024-01-15",
    "base": "EUR",
    "quote": "EUR",
    "rate": 1
  },
  {
    "date": "2024-01-15",
    "base": "EUR",
    "quote": "GBP",
    "rate": 0.8623
  },
  {
    "date": "2024-01-15",
    "base": "EUR",
    "quote": "USD",
    "rate": 1.089
  }
]