aid: frankfurter
deliveryModel:
  model: open-core
  license: MIT
  license_evidence:
    repo: lineofflight/frankfurter
    spdx: MIT
    stars: 1899
  open_source: true
  commercial: true
  callable_host: true
  label: Open core · an OSS project plus a commercial hosted product
  confidence: medium
  source:
  - openapi
  - pricing
  - repository-license
  generated: '2026-09-25'
  method: derived
accessModel:
  pricing: freemium
  onboarding: open
  trial: false
  try_now: true
  public: true
  label: Freemium · Open access
  confidence: medium
  source:
  - plans
  generated: '2026-07-22'
  method: derived
image: https://kinlane-images.s3.amazonaws.com/shared/apis-json/icons/frankfurter.png
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.23'
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:
  - Foreign Exchange
  - Open Source
  - MIT
  - Self-Hosted
  - Public APIs
  - Exchange Rates
tags_raw:
  - Currency Exchange
  - Foreign Exchange
  - FX
  - Open Source
  - MIT
  - Self-Hosted
  - Public APIs
  - Open-Source
  - Exchange Rates
apis:
- aid: frankfurter:frankfurter-currencies-api
  name: Frankfurter Currencies API
  description: Supported currency reference data
  humanURL: https://frankfurter.dev/docs
  baseURL: https://api.frankfurter.dev/v2
  tags:
  - Currency
  tags_raw:
  - Currencies
  properties:
  - type: OpenAPI
    url: openapi/frankfurter-currencies-api-openapi.yml
  - type: Documentation
    url: https://frankfurter.dev/docs
  - 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: JSONLD
    url: json-ld/frankfurter-v2-context.jsonld
  - type: Examples
    url: examples/v2-rate-example.json
  - type: Examples
    url: examples/v2-currency-example.json
  - type: Examples
    url: examples/v2-currency-detail-example.json
  - type: Examples
    url: examples/v2-provider-example.json
  - 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: JSONLD
    url: json-ld/frankfurter-v1-context.jsonld
  - type: Examples
    url: examples/v1-rates-on-date-example.json
  - type: Examples
    url: examples/v1-rates-by-date-example.json
  - type: Examples
    url: examples/v1-currencies-example.json
- aid: frankfurter:frankfurter-current-rates-api
  name: Frankfurter Current Rates API
  description: Latest foreign exchange rates
  humanURL: https://frankfurter.dev/docs
  baseURL: https://api.frankfurter.dev/v2
  tags:
  - current-rates
  properties:
  - type: OpenAPI
    url: openapi/frankfurter-current-rates-api-openapi.yml
  - type: Documentation
    url: https://frankfurter.dev/docs
  - 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: JSONLD
    url: json-ld/frankfurter-v2-context.jsonld
  - type: Examples
    url: examples/v2-rate-example.json
  - type: Examples
    url: examples/v2-currency-example.json
  - type: Examples
    url: examples/v2-currency-detail-example.json
  - type: Examples
    url: examples/v2-provider-example.json
  - 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: JSONLD
    url: json-ld/frankfurter-v1-context.jsonld
  - type: Examples
    url: examples/v1-rates-on-date-example.json
  - type: Examples
    url: examples/v1-rates-by-date-example.json
  - type: Examples
    url: examples/v1-currencies-example.json
- aid: frankfurter:frankfurter-historical-rates-api
  name: Frankfurter Historical Rates API
  description: Historical exchange rates for specific dates and periods
  humanURL: https://frankfurter.dev/docs
  baseURL: https://api.frankfurter.dev/v2
  tags:
  - Historical Rates
  tags_raw:
  - historical-rates
  properties:
  - type: OpenAPI
    url: openapi/frankfurter-historical-rates-api-openapi.yml
  - type: Documentation
    url: https://frankfurter.dev/docs
  - 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: JSONLD
    url: json-ld/frankfurter-v2-context.jsonld
  - type: Examples
    url: examples/v2-rate-example.json
  - type: Examples
    url: examples/v2-currency-example.json
  - type: Examples
    url: examples/v2-currency-detail-example.json
  - type: Examples
    url: examples/v2-provider-example.json
  - 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: JSONLD
    url: json-ld/frankfurter-v1-context.jsonld
  - type: Examples
    url: examples/v1-rates-on-date-example.json
  - type: Examples
    url: examples/v1-rates-by-date-example.json
  - type: Examples
    url: examples/v1-currencies-example.json
- aid: frankfurter:frankfurter-metadata-api
  name: Frankfurter Metadata API
  description: API reference data like available currencies
  humanURL: https://frankfurter.dev/docs
  baseURL: https://api.frankfurter.dev/v2
  tags:
  - Metadata
  tags_raw:
  - metadata
  properties:
  - type: OpenAPI
    url: openapi/frankfurter-metadata-api-openapi.yml
  - type: Documentation
    url: https://frankfurter.dev/docs
  - 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: JSONLD
    url: json-ld/frankfurter-v2-context.jsonld
  - type: Examples
    url: examples/v2-rate-example.json
  - type: Examples
    url: examples/v2-currency-example.json
  - type: Examples
    url: examples/v2-currency-detail-example.json
  - type: Examples
    url: examples/v2-provider-example.json
  - 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: JSONLD
    url: json-ld/frankfurter-v1-context.jsonld
  - type: Examples
    url: examples/v1-rates-on-date-example.json
  - type: Examples
    url: examples/v1-rates-by-date-example.json
  - type: Examples
    url: examples/v1-currencies-example.json
- aid: frankfurter:frankfurter-providers-api
  name: Frankfurter Providers API
  description: Central-bank and institutional data providers
  humanURL: https://frankfurter.dev/docs
  baseURL: https://api.frankfurter.dev/v2
  tags:
  - Providers
  properties:
  - type: OpenAPI
    url: openapi/frankfurter-providers-api-openapi.yml
  - type: Documentation
    url: https://frankfurter.dev/docs
  - 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: JSONLD
    url: json-ld/frankfurter-v2-context.jsonld
  - type: Examples
    url: examples/v2-rate-example.json
  - type: Examples
    url: examples/v2-currency-example.json
  - type: Examples
    url: examples/v2-currency-detail-example.json
  - type: Examples
    url: examples/v2-provider-example.json
  - 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: JSONLD
    url: json-ld/frankfurter-v1-context.jsonld
  - type: Examples
    url: examples/v1-rates-on-date-example.json
  - type: Examples
    url: examples/v1-rates-by-date-example.json
  - type: Examples
    url: examples/v1-currencies-example.json
- aid: frankfurter:frankfurter-rates-api
  name: Frankfurter Rates API
  description: Blended currency exchange rates
  humanURL: https://frankfurter.dev/docs
  baseURL: https://api.frankfurter.dev/v2
  tags:
  - Rates
  properties:
  - type: OpenAPI
    url: openapi/frankfurter-rates-api-openapi.yml
  - type: Documentation
    url: https://frankfurter.dev/docs
  - 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: JSONLD
    url: json-ld/frankfurter-v2-context.jsonld
  - type: Examples
    url: examples/v2-rate-example.json
  - type: Examples
    url: examples/v2-currency-example.json
  - type: Examples
    url: examples/v2-currency-detail-example.json
  - type: Examples
    url: examples/v2-provider-example.json
  - 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: JSONLD
    url: json-ld/frankfurter-v1-context.jsonld
  - type: Examples
    url: examples/v1-rates-on-date-example.json
  - type: Examples
    url: examples/v1-rates-by-date-example.json
  - type: Examples
    url: examples/v1-currencies-example.json
common:
  - type: CapabilityMap
    url: capabilities/frankfurter-capability-edges.yml
    name: Frankfurter Business Capability Map
  - type: Releases
    url: https://github.com/lineofflight/frankfurter/releases
  - type: AgenticAccess
    url: agentic-access/frankfurter-agentic-access.yml
  - type: DomainSecurity
    url: security/frankfurter-domain-security.yml
  - 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: Forums
    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: kin@apievangelist.com
