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
}
]