Reference · built on requestCommons signalEconomic & calendar reference

Frankfurter

Current and historical exchange rates blended from central-bank and public sources, served as JSON or CSV without a key.

About

Frankfurter is an open-source currency data API maintained on GitHub under the MIT license and hosted at api.frankfurter.dev. It tracks daily exchange rates published by central banks and other public bodies: 206 currencies from 98 sources, with history back to 1948. The European Central Bank is one provider among many. Version 2 blends providers by default and lets you ask for one provider's rates unblended. Rates are mid-market and refresh daily for almost every provider.

An operator on Fibric reads the rate for a date or a range, converts a foreign-currency amount at that rate, and proposes the resulting figure for your approval with the date and providers recorded.

This is a reference listing. It documents what Fibric would read from Frankfurter and what it could propose, based on the publisher's published interfaces. Fibric builds it under a managed deployment when you request it; selecting it here installs nothing.

Inputs

  • Latest blended rates through GET /v2/rates, with base (default EUR) and quotes to filter the pairs returned
  • Rates for one day through /v2/rates?date=YYYY-MM-DD, or a range through from and to, grouped by week or month
  • A single pair through /v2/rate/{base}/{quote}, blended, or per source through /v2/providers/{provider}/rate/{base}/{quote}
  • One provider's rates as published, unblended, through /v2/providers/{provider}/rates
  • Currencies with names and date ranges through /v2/currencies, and legacy currencies with scope=all
  • Providers and their base currency through /v2/providers; expand=providers adds attribution to each rate row
  • CSV by appending .csv or sending Accept: text/csv, and NDJSON with Accept: application/x-ndjson

Proposed actions

Read-only. This feed informs operators; it changes nothing.

Proposed actions are target capabilities. Every action runs propose-first and needs a validated deployment and the appropriate permissions.

What you can build

  • Convert a period's foreign invoices at the closing rate

    Read /v2/rates for the last working day of the period, convert each open foreign-currency invoice, and propose the converted balances for finance to approve before close. The date and providers used stay with the entry.

    With Month-End Cutoff

  • Declare customs value at a dated reference rate

    Look up the pair for the shipment date through /v2/rate/{base}/{quote}, convert the declared value, and propose the figure for the declaration with the provider named in the record.

    With Customs Declaration

  • Catch price lists that have drifted from the rate

    Compare each foreign-currency price list against the current blended rate, flag lists whose implied rate has moved beyond your tolerance, and propose a refresh for your review.

    With Price List Drift

  • Settle marketplace payouts made in another currency

    Convert each payout at the rate for its value date and propose the reconciled amount against the bank line, with the difference shown.

    With Payout Reconciliation

Requirements

  • The currency codes for the base and quote currencies you want, for example EUR and USD
  • Dates in YYYY-MM-DD kept in UTC, since Frankfurter stores dates in UTC
  • A choice between blended rates and a named provider, since v2 blends across providers by default
  • For self-hosting, the lineofflight/frankfurter Docker image with a volume mounted for its SQLite database
Authentication
None. No API key is required on the hosted service, and requests are rate-limited only to prevent abuse.

Limits

  • Rates are daily mid-market values. The project says it is not for live trading or for exotic currencies with wild intraday swings
  • Two providers publish on non-daily schedules: HMRC monthly and UST quarterly
  • Today's figures are not stable and change as new rates arrive; the last decimal places may shift
  • The v1 API (ECB only, /v1/latest and /v1/{date}) is deprecated in favor of v2 but continues to work

Access and pricing

Reference listing. Public feed access is separate from Fibric integration. If you request this feed, your quote covers the build, usage, and support.

Request Frankfurter ↗

Questions and answers

Does Frankfurter need an API key?
No. The hosted API at api.frankfurter.dev has no authentication and no monthly or daily caps. Requests are rate-limited to prevent abuse. You can also self-host the Docker image; some optional providers there take free keys.
Where do the rates come from?
From 98 central banks and public sources covering 206 currencies. By default v2 blends rates across providers. Add expand=providers to see which sources fed a row, or query /v2/providers/{provider}/rates for one source unblended. Pegged-currency rows come from the peg, not provider data.
How often do rates update?
Almost every provider publishes daily; HMRC publishes monthly and UST quarterly. The v1 documentation puts the ECB refresh at around 16:00 CET. Data for the current day can change until the provider's rates are final.
Ask about Frankfurter

Ask about the capabilities and requirements in this listing.

For project-specific requirements, contact Fibric.