3.3 KiB
3.3 KiB
Changelog
All notable changes to the Frankfurter API will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
2.0.1 - 2026-05-19
Fixed
/v2/ratesdate-range queries no longer duplicate the first row of the response.
2.0.0 - 2026-05-18
New multi-provider API at /v2/. The v1 API is unchanged and remains available indefinitely at /v1/.
Migrating from v1
- Change your base URL from
/v1/latestto/v2/rates. - Rates are now an array of
{"date", "base", "quote", "rate"}objects instead of{"base", "date", "rates": {"USD": 1.23}}. - The
symbolsparameter is renamed toquotes. fromandtoare used for date ranges.- JSONP is not supported in v2.
Added
/v2/rates— blended exchange rates from 50+ institutional providers, derived from a USD-anchored blend so reciprocals and cross-rate triangles round to 1.0. Non-USD-base queries may differ from a single provider in the 4th to 5th decimal. (#343)/v2/rate/{base}/{quote}and/v2/rate/{base}/{quote}/{date}— single pair, latest or historical./v2/providers— data sources with date ranges, currency coverage,rate_type, andcountry_code./v2/currencies— provider coverage per currency, including peg metadata (anchor and fixed rate).- Precious metal quotes (XAU, XAG, XPT, XPD).
- IMF Special Drawing Rights (XDR), including SDR cross rates as a primary source. (#333, #335)
- Historical currency support — pre-euro and pre-redenomination codes (DEM, FRF, NLG, CYP, etc.) where providers serve them.
- Pegged currency expansion at query time; pegged rates snap to the exact peg, and cross-base requests for pegged quotes are anchored through the peg's base. Pegs act as a source, so
?providers=excludes them along with other unlisted sources. (#323) expand=providerson/v2/rates— each provider's individual rate as[{ "key", "rate" }]; excluded providers (outliers, peg overrides) are flaggedexcluded: true. CSV formECB:0.92|BOC:0.93,*-suffixed when excluded. (#323)providersparameter to scope rates and currencies to specific sources.groupparameter to downsample time series (weekormonth).- CSV and NDJSON streaming output.
- Outlier detection and recency-weighted blending.
- Rows are stamped with their actual observation date; range queries do not carry forward. (#338)
- Strict parameter validation — unknown parameters return 422.
- Error responses are not cacheable, including streaming range queries.
Pre-release history: see the v2.0.0-beta.1 and v2.0.0-beta.2 release notes.
1.0.0 - 2024-12-04
Changed
- API versioning in URL path (v1)
- Migrated from PostgreSQL to SQLite
- Moved domain from https://api.frankfurter.app to https://api.frankfurter.dev. Former will continue serving the old unversioned paths.