Frankfurter logo

Frankfurter

Frankfurter is an open-source (MIT) currency exchange rates API that blends foreign-exchange reference rates published by 50+ central banks and monetary authorities. It hosts a free, no-key public endpoint at api.frankfurter.dev (current v2 and frozen v1) and ships as a Docker image for unlimited self-hosting. Historical data extends back to 1948 and covers 201 currencies; the API serves JSON, NDJSON, and CSV.

2 APIs 6 Capabilities 10 Features
Currency ExchangeForeign ExchangeFXOpen SourceMITSelf-HostedPublic APIs

APIs

Frankfurter API v2

Current Frankfurter API. Blended exchange rates across multiple institutional providers, one row per currency pair, with optional per-provider expansion, week/month downsampling...

Frankfurter API v1

Frozen v1 Frankfurter API. ECB-style reference rates with single-base aggregate response shape (rates keyed by quote currency). Maintained for backward compatibility; new integr...

Capabilities

Frankfurter API — current-rates

Frankfurter API — current-rates. 1 operation(s). Lead operation: Frankfurter Get the Latest Rates. Self-contained Naftiko capability covering one Frankfurter business surface.

Run with Naftiko

Frankfurter API — historical-rates

Frankfurter API — historical-rates. 3 operation(s). Lead operation: Frankfurter Get Rates for a Past Date. Self-contained Naftiko capability covering one Frankfurter business su...

Run with Naftiko

Frankfurter API — metadata

Frankfurter API — metadata. 1 operation(s). Lead operation: Frankfurter Get Available Currencies. Self-contained Naftiko capability covering one Frankfurter business surface.

Run with Naftiko

Frankfurter API — Currencies

Frankfurter API — Currencies. 2 operation(s). Lead operation: Frankfurter Get a Single Currency. Self-contained Naftiko capability covering one Frankfurter business surface.

Run with Naftiko

Frankfurter API — Providers

Frankfurter API — Providers. 1 operation(s). Lead operation: Frankfurter Get Available Data Providers. Self-contained Naftiko capability covering one Frankfurter business surface.

Run with Naftiko

Frankfurter API — Rates

Frankfurter API — Rates. 2 operation(s). Lead operation: Frankfurter Get Exchange Rates. Self-contained Naftiko capability covering one Frankfurter business surface.

Run with Naftiko

Features

Blended Reference Rates

Combines daily FX rates from 50+ central banks and monetary authorities into a consensus-filtered, outlier-rejecting blend.

Multi-Format Output

JSON, NDJSON (streamed), and CSV from the same endpoint.

Historical Time Series

Daily rates back to 1948 with optional week/month downsampling.

201 Currencies

Active and legacy currency coverage with ISO 4217 metadata.

Per-Provider Expansion

`expand=providers` exposes each provider's individual quote so callers can audit the blend, with `excluded: true` flags on outliers and peg overrides.

No Authentication

No keys, no accounts, no monthly or daily caps.

Self-Hostable

Single Docker image with optional SQLite volume mount.

Free Upstream Provider Keys

Optional, no-cost provider keys for Bank Al-Maghrib, Banco de México, Banco Central de Chile, Bank of Thailand, US Federal Reserve, and the Turkish Central Bank widen self-hosted coverage.

Open CORS

GET and OPTIONS allowed from any origin — direct browser use.

Open Source (MIT)

Full source on GitHub; community contributions and fork-friendly.

Use Cases

Treasury and Payments Pricing

Embed blended FX rates into invoicing, payouts, and conversion.

E-commerce Storefront Localization

Convert displayed prices into the visitor's currency on page load.

Reporting and Analytics

Backfill historical FX into BI dashboards and finance reports.

Reference Data Maintenance

Sync ISO 4217 currency tables and provider metadata into ERPs.

AI Assistant Tooling

Equip Claude and other MCP-capable agents with the official Frankfurter MCP server (get_rates, convert, list_currencies, list_providers).

Private FX Service

Self-host inside a VPC for compliance-sensitive workloads.

Academic and Research

Long historical series for FX econometric studies.

Integrations

European Central Bank

Primary upstream provider (ECB reference rates).

US Federal Reserve

Optional upstream provider via free FED API key.

Bank of Canada

Upstream provider (BOC) included in the blend.

Banco Central do Brasil

Upstream provider (BCB).

Turkish Central Bank

Optional upstream provider via free TCMB key.

Bank of Thailand

Optional upstream provider via free BOT key.

Banco Central de Chile

Optional upstream provider via free BCCh key.

Banco de México

Optional upstream provider via free Banxico key.

Bank Al-Maghrib (Morocco)

Optional upstream provider via free BAM key.

Model Context Protocol

Official MCP server (lineofflight/frankfurter-mcp) registered at the MCP registry.

Docker Hub / GHCR

Container distribution for self-hosting.

GitHub Discussions

Community 'Show and Tell' for libraries and tools built on Frankfurter.

Solutions

Public Hosted (Free)

api.frankfurter.dev — no key, soft fair-use limits, ideal for prototypes and low-volume production.

Self-Hosted FOSS

Run lineofflight/frankfurter via Docker; no application-level rate limit.

MCP Tooling

Drop the Frankfurter MCP server into any Claude / agent stack for natural-language FX access.

Semantic Vocabularies

Frankfurter V1 Context

3 classes · 4 properties

JSON-LD

Frankfurter V2 Context

4 classes · 22 properties

JSON-LD

API Governance Rules

Frankfurter API Rules

37 rules · 14 errors 18 warnings 5 info

SPECTRAL

Resources

🔗
Website
Website
🔗
Documentation
Documentation
👥
GitHubOrganization
GitHubOrganization
👥
Frankfurter (canonical)
GitHubRepository
👥
Frankfurter MCP Server
GitHubRepository
🔗
MIT License
License
🔗
Docker (Frankfurter)
ContainerImage
🔗
Docker (Frankfurter MCP)
ContainerImage
🔧
MCP Server
Tools
🔧
Hosted MCP Endpoint
Tools
🔧
MCP Registry Listing
Tools
🔗
PublicAPIsListing
PublicAPIsListing
🔗
Issues
Issues
🔗
Discussions
Discussions
🔗
SpectralRules
SpectralRules
🔗
Vocabulary
Vocabulary
🔗
Plans
Plans
🔗
RateLimits
RateLimits

Sources

Raw ↑
aid: frankfurter
name: Frankfurter
description: >-
  Frankfurter is an open-source (MIT) currency exchange rates API that blends
  foreign-exchange reference rates published by 50+ central banks and
  monetary authorities. It hosts a free, no-key public endpoint at
  api.frankfurter.dev (current v2 and frozen v1) and ships as a Docker image
  for unlimited self-hosting. Historical data extends back to 1948 and
  covers 201 currencies; the API serves JSON, NDJSON, and CSV.
url: https://frankfurter.dev
specificationVersion: '0.20'
created: '2026-05-28'
modified: '2026-05-29'
x-source: public-apis/public-apis
x-type: opensource
x-category: "Currency Exchange"
x-tier: 2
x-tier-reason: "Open-source, MIT-licensed, self-hostable; reconciled against upstream OpenAPI specs and lineofflight GitHub org."

tags:
  - Currency Exchange
  - Foreign Exchange
  - FX
  - Open Source
  - MIT
  - Self-Hosted
  - Public APIs

apis:
  - name: Frankfurter API v2
    description: >-
      Current Frankfurter API. Blended exchange rates across multiple
      institutional providers, one row per currency pair, with optional
      per-provider expansion, week/month downsampling, and NDJSON streaming.
    humanURL: https://frankfurter.dev/docs
    baseURL: https://api.frankfurter.dev/v2
    tags:
      - Currency Exchange
      - Rates
      - Currencies
      - Providers
    properties:
      - type: Documentation
        url: https://frankfurter.dev/docs
      - type: OpenAPI
        url: openapi/frankfurter-v2-openapi.yml
      - type: OpenAPI
        title: Upstream OpenAPI
        url: https://api.frankfurter.dev/v2/openapi.json
      - type: NaftikoCapability
        url: capabilities/v2-rates.yaml
      - type: NaftikoCapability
        url: capabilities/v2-currencies.yaml
      - type: NaftikoCapability
        url: capabilities/v2-providers.yaml
      - type: JSONSchema
        url: json-schema/v2-rate-schema.json
      - type: JSONSchema
        url: json-schema/v2-currency-schema.json
      - type: JSONSchema
        url: json-schema/v2-currency-detail-schema.json
      - type: JSONSchema
        url: json-schema/v2-provider-schema.json
      - type: JSONStructure
        url: json-structure/v2-rate-structure.json
      - type: JSONStructure
        url: json-structure/v2-currency-structure.json
      - type: JSONStructure
        url: json-structure/v2-currency-detail-structure.json
      - type: JSONStructure
        url: json-structure/v2-provider-structure.json
      - type: JSON-LD
        url: json-ld/frankfurter-v2-context.jsonld
      - type: Example
        url: examples/v2-rate-example.json
      - type: Example
        url: examples/v2-currency-example.json
      - type: Example
        url: examples/v2-currency-detail-example.json
      - type: Example
        url: examples/v2-provider-example.json

  - name: Frankfurter API v1
    description: >-
      Frozen v1 Frankfurter API. ECB-style reference rates with single-base
      aggregate response shape (rates keyed by quote currency). Maintained
      for backward compatibility; new integrations should use v2.
    humanURL: https://frankfurter.dev/docs
    baseURL: https://api.frankfurter.dev/v1
    tags:
      - Currency Exchange
      - Current Rates
      - Historical Rates
      - Metadata
    properties:
      - type: Documentation
        url: https://frankfurter.dev/docs
      - type: OpenAPI
        url: openapi/frankfurter-v1-openapi.yml
      - type: OpenAPI
        title: Upstream OpenAPI
        url: https://api.frankfurter.dev/v1/openapi.json
      - type: NaftikoCapability
        url: capabilities/v1-current-rates.yaml
      - type: NaftikoCapability
        url: capabilities/v1-historical-rates.yaml
      - type: NaftikoCapability
        url: capabilities/v1-metadata.yaml
      - type: JSONSchema
        url: json-schema/v1-rates-on-date-schema.json
      - type: JSONSchema
        url: json-schema/v1-rates-by-date-schema.json
      - type: JSONSchema
        url: json-schema/v1-rates-schema.json
      - type: JSONSchema
        url: json-schema/v1-currencies-schema.json
      - type: JSONSchema
        url: json-schema/v1-amount-schema.json
      - type: JSONSchema
        url: json-schema/v1-base-schema.json
      - type: JSONSchema
        url: json-schema/v1-base-in-schema.json
      - type: JSONSchema
        url: json-schema/v1-date-schema.json
      - type: JSONStructure
        url: json-structure/v1-rates-on-date-structure.json
      - type: JSONStructure
        url: json-structure/v1-rates-by-date-structure.json
      - type: JSONStructure
        url: json-structure/v1-rates-structure.json
      - type: JSONStructure
        url: json-structure/v1-currencies-structure.json
      - type: JSONStructure
        url: json-structure/v1-amount-structure.json
      - type: JSONStructure
        url: json-structure/v1-base-structure.json
      - type: JSONStructure
        url: json-structure/v1-base-in-structure.json
      - type: JSONStructure
        url: json-structure/v1-date-structure.json
      - type: JSON-LD
        url: json-ld/frankfurter-v1-context.jsonld
      - type: Example
        url: examples/v1-rates-on-date-example.json
      - type: Example
        url: examples/v1-rates-by-date-example.json
      - type: Example
        url: examples/v1-currencies-example.json

common:

  - type: Website
    url: https://frankfurter.dev
  - type: Documentation
    url: https://frankfurter.dev/docs
  - type: GitHubOrganization
    url: https://github.com/lineofflight
  - type: GitHubRepository
    title: Frankfurter (canonical)
    url: https://github.com/lineofflight/frankfurter
  - type: GitHubRepository
    title: Frankfurter MCP Server
    url: https://github.com/lineofflight/frankfurter-mcp
  - type: License
    title: MIT License
    url: https://github.com/lineofflight/frankfurter/blob/main/LICENSE
  - type: ContainerImage
    title: Docker (Frankfurter)
    url: https://hub.docker.com/r/lineofflight/frankfurter
  - type: ContainerImage
    title: Docker (Frankfurter MCP)
    url: https://ghcr.io/lineofflight/frankfurter-mcp
  - type: Tools
    title: MCP Server
    url: https://github.com/lineofflight/frankfurter-mcp
  - type: Tools
    title: Hosted MCP Endpoint
    url: https://mcp.frankfurter.dev/
  - type: Tools
    title: MCP Registry Listing
    url: https://github.com/modelcontextprotocol/registry
  - type: PublicAPIsListing
    url: https://github.com/public-apis/public-apis
  - type: Issues
    url: https://github.com/lineofflight/frankfurter/issues
  - type: Discussions
    url: https://github.com/lineofflight/frankfurter/discussions

  - type: SpectralRules
    url: rules/frankfurter-spectral-rules.yml
  - type: Vocabulary
    url: vocabulary/frankfurter-vocabulary.yml
  - type: Plans
    url: plans/frankfurter-plans-pricing.yml
  - type: RateLimits
    url: rate-limits/frankfurter-rate-limits.yml

  - type: Features
    data:
      - name: Blended Reference Rates
        description: >-
          Combines daily FX rates from 50+ central banks and monetary
          authorities into a consensus-filtered, outlier-rejecting blend.
      - name: Multi-Format Output
        description: JSON, NDJSON (streamed), and CSV from the same endpoint.
      - name: Historical Time Series
        description: Daily rates back to 1948 with optional week/month downsampling.
      - name: 201 Currencies
        description: Active and legacy currency coverage with ISO 4217 metadata.
      - name: Per-Provider Expansion
        description: >-
          `expand=providers` exposes each provider's individual quote so
          callers can audit the blend, with `excluded: true` flags on
          outliers and peg overrides.
      - name: No Authentication
        description: No keys, no accounts, no monthly or daily caps.
      - name: Self-Hostable
        description: Single Docker image with optional SQLite volume mount.
      - name: Free Upstream Provider Keys
        description: >-
          Optional, no-cost provider keys for Bank Al-Maghrib, Banco de
          México, Banco Central de Chile, Bank of Thailand, US Federal
          Reserve, and the Turkish Central Bank widen self-hosted coverage.
      - name: Open CORS
        description: GET and OPTIONS allowed from any origin — direct browser use.
      - name: Open Source (MIT)
        description: Full source on GitHub; community contributions and fork-friendly.

  - type: UseCases
    data:
      - name: Treasury and Payments Pricing
        description: Embed blended FX rates into invoicing, payouts, and conversion.
      - name: E-commerce Storefront Localization
        description: Convert displayed prices into the visitor's currency on page load.
      - name: Reporting and Analytics
        description: Backfill historical FX into BI dashboards and finance reports.
      - name: Reference Data Maintenance
        description: Sync ISO 4217 currency tables and provider metadata into ERPs.
      - name: AI Assistant Tooling
        description: >-
          Equip Claude and other MCP-capable agents with the official
          Frankfurter MCP server (get_rates, convert, list_currencies,
          list_providers).
      - name: Private FX Service
        description: Self-host inside a VPC for compliance-sensitive workloads.
      - name: Academic and Research
        description: Long historical series for FX econometric studies.

  - type: Integrations
    data:
      - name: European Central Bank
        description: Primary upstream provider (ECB reference rates).
      - name: US Federal Reserve
        description: Optional upstream provider via free FED API key.
      - name: Bank of Canada
        description: Upstream provider (BOC) included in the blend.
      - name: Banco Central do Brasil
        description: Upstream provider (BCB).
      - name: Turkish Central Bank
        description: Optional upstream provider via free TCMB key.
      - name: Bank of Thailand
        description: Optional upstream provider via free BOT key.
      - name: Banco Central de Chile
        description: Optional upstream provider via free BCCh key.
      - name: Banco de México
        description: Optional upstream provider via free Banxico key.
      - name: Bank Al-Maghrib (Morocco)
        description: Optional upstream provider via free BAM key.
      - name: Model Context Protocol
        description: Official MCP server (lineofflight/frankfurter-mcp) registered at the MCP registry.
      - name: Docker Hub / GHCR
        description: Container distribution for self-hosting.
      - name: GitHub Discussions
        description: "Community 'Show and Tell' for libraries and tools built on Frankfurter."

  - type: Solutions
    data:
      - name: Public Hosted (Free)
        description: api.frankfurter.dev — no key, soft fair-use limits, ideal for prototypes and low-volume production.
      - name: Self-Hosted FOSS
        description: Run lineofflight/frankfurter via Docker; no application-level rate limit.
      - name: MCP Tooling
        description: Drop the Frankfurter MCP server into any Claude / agent stack for natural-language FX access.

maintainers:
  - FN: Kin Lane
    email: [email protected]