Frankfurter website screenshot

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.

Frankfurter publishes 9 API contracts indexed on the APIs.io network, including Currencies API, Current Rates API, Historical Rates API, and 6 more. Tagged areas include Foreign Exchange, Open Source, MIT, Self-Hosted, and Public APIs.

The Frankfurter catalog on APIs.io includes 2 JSON-LD contexts and 2 Spectral governance rulesets.

Frankfurter’s developer surface includes documentation, tooling, and 20 more developer resources.

33.5/100 thin ▬ flat Agent 41/100 agent ready Front door AI 4/6 moderate Heartbeat 100/100 alive open core · MIT Full breakdown ↓
scored 2026-11-06 · rubric v0.27.0 · Show this score on your site →
AccessFreemiumOpen⚡ Free to try
3 published contracts 1 MCP Servers 10 Features 7 Use Cases
Foreign ExchangeOpen SourceMITSelf-HostedPublic APIsExchange Rates

What this lets a business do 1

Business capabilities this provider's published APIs can perform, derived from its own contracts. Browse all capabilities →

Data & Reference Information Services
AE-230
CoverageCurrencyHistorical RatesRate
GET /rate/{base}/{quote} GET /currency/{code}

Kin Score

Kin Score Kin Score How this is scored →
scored 2026-11-06 · rubric v0.27.0
Regulatory Posture applies to this provider. Its tags matched the Horizontal (data, software, accessibility, platform) regime, so Regulatory Posture carries 15 points of the composite. If this regime is wrong for your business, say so on your provider repo — the applicability map is public and we will correct it.
Create-or-Update Ergonomics does not apply to this provider. The published contracts declare no write operations, and a read-only API cannot create-or-update. The facet is excluded from this provider's denominator entirely — not scored zero. A reference or data API is not deficient for being unable to upsert.
The six quality facets above are damped to 85 points between them, because the conditional facet above carries the other 15. That is why each facet's contribution is shown against a damped maximum: raising a quality facet moves the composite by 85% of its nominal weight, not 100%. The full arithmetic is at apis.io/rating/.
Show this score on your site. Kin Score badge preview for Frankfurter It updates itself when the score changes. Paste this where you link to your API docs:
<a href="https://apis.io/providers/frankfurter/"><img src="https://apis.io/badge/frankfurter/card.svg" alt="Frankfurter on APIs.io — Kin Score by API Evangelist"></a>
Other styles, a README pill and a shields.io endpoint are on the badge page.
Raise your score.
Agent readiness — checks not met, largest first (exact, from this profile):
  • Machine-Readable Auth +10 pts — a served openid-configuration/oauth-authorization-server carrying `issuer` (served), else the securitySchemes class in the provider OpenAPIs — bound (mutualTLS, DPoP, Signature) > negotiable (oauth2 authorizationCode/clientCredentials, openIdConnect) > bearer (http bearer, apiKey)
  • Stable Error Semantics +8 pts — OpenAPI $refs a shared error schema across 4xx/5xx responses (verified), else common[].type includes ErrorCatalog / ErrorCodes / DeclineCodes
  • A2A Agent Card +8 pts — a2a/-a2a.yml manifest, graded on conformance.grade against A2A 1.0.0
  • Registration Without a Human +6 pts — a `registration_endpoint` in the served RFC 8414 / OIDC discovery document
  • Delegated User Identity +6 pts — a served discovery document listing authorization_code in grant_types_supported (served), else an oauth2 authorizationCode flow or openIdConnect declared in an OpenAPI (documented)
  • Typed Event Surface +6 pts — AsyncAPI document, OR webhooks/callbacks objects in the as-published OpenAPI, OR common[].type includes Webhooks
6 more unmet checks in the Agent Readiness table above.
Kin Score — facets with the most composite points still available (weight × headroom):
Each check links to what satisfies it. Publish the artifact, or tell us where it already lives, and the score moves on the next scoring run.
Improve this rating by publishing the missing artifacts — every area above can be raised, and the full rubric is at apis.io/rating/. Every facet and dimension name above is a link: it opens that measurement's own page — what it means, the exact checks that feed it, how the whole catalog distributes on it, and the providers at the top of it. This rating is computed from the provider profile at artifacts.apis.io/frankfurter/apis.yml: open an issue on github.com/api-evangelist/frankfurter to ask a question or point us at an artifact you publish. Submit an artifact on GitHub — free → Manage your own listing — the Influence plan, $499/mo →

Standards implemented 2

Standards this provider implements or carries. De facto ones are profiled and measured by the API Commons; formal ones come from the standards directory and are linked by the provider's own tags. The evidence column says how each claim was established — not that it was made.

measured — observed by APIs.io (verified)
measured — observed by APIs.io (published)

APIs 9

Individual APIs this provider publishes, each with its own machine-readable definition.

Frankfurter Currencies API

Supported currency reference data

Frankfurter Current Rates API

Latest foreign exchange rates

Frankfurter Historical Rates API

Historical exchange rates for specific dates and periods

Frankfurter Metadata API

API reference data like available currencies

Frankfurter Providers API

Central-bank and institutional data providers

Frankfurter Rates API

Blended currency exchange rates

Frankfurter Coverage API

The Coverage API from Frankfurter — 1 operation(s) for coverage.

Frankfurter Currency API

The Currency API from Frankfurter — 1 operation(s) for currency.

Frankfurter Rate API

The Rate API from Frankfurter — 1 operation(s) for rate.

Scroll for all 9

Open Collections 8

Open, tool-agnostic API collections (OpenAPI-derived and Bruno).

Frankfurter API

OPEN COLLECTION

Frankfurter API

OPEN COLLECTION

Scroll for all 8

MCP Servers 1

Model Context Protocol servers that expose these APIs to AI agents.

Frankfurter MCP Server

Remote MCP server at mcp.frankfurter.dev over HTTP; 4 tools listed.

MCP SERVER

Frankfurter API pricing

Not yet checked against Frankfurter's own pricing page. Compiled by API Evangelist on 2026-05-29 from frankfurter.dev; confirm before you rely on a figure. A free plan or tier is listed.

PlanPrice
Public Hosted (Free) freemium Free
Self-Hosted (FOSS) subscription Free

Plan details, limits and sources →

Rate limits

Compiled by API Evangelist, not yet checked against Frankfurter's documentation. Rate-limit details →

Pricing Plans 1

Published pricing tiers and plan structures.

Rate Limits 1

Documented rate limits and quota policies.

Frankfurter Rate Limits

2 limits

RATE LIMITS

Service Levels 1

Uptime the provider promises or reports, as SLA4OAI. Read from its own pages; APIs.io runs no monitors.

Features 10

Notable capabilities this provider offers.

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-hoste...

Open CORS

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

Open Source (MIT)

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

Scroll for all 10

Semantic Vocabularies 2

JSON-LD contexts and semantic vocabularies used across these APIs.

Frankfurter V1 Context

3 classes · 4 properties

JSON-LD

Frankfurter V2 Context

4 classes · 22 properties

JSON-LD

Spectral Rules 2

Spectral governance rulesets for linting and validating these APIs.

Frankfurter — jsonschema rules

5 rules · 4 warnings 1 info

SPECTRAL

Frankfurter API Rules

40 rules · 14 errors 20 warnings 6 info

SPECTRAL

JSON Schema 12

Standalone JSON Schema definitions for this provider's data models.

amount

0 properties

JSON SCHEMA

baseIn

0 properties

JSON SCHEMA

base

0 properties

JSON SCHEMA

currencies

0 properties

JSON SCHEMA

date

0 properties

JSON SCHEMA

ratesByDate

0 properties

JSON SCHEMA

ratesOnDate

4 properties

JSON SCHEMA

rates

0 properties

JSON SCHEMA

CurrencyDetail

6 properties

JSON SCHEMA

Currency

6 properties

JSON SCHEMA

Provider

11 properties

JSON SCHEMA

Rate

5 properties

JSON SCHEMA

Scroll for all 12

JSON Structure 12

JSON Structure definitions describing this provider's data shapes.

V1 Amount Structure

0 properties

JSON STRUCTURE

V1 Base In Structure

0 properties

JSON STRUCTURE

V1 Base Structure

0 properties

JSON STRUCTURE

V1 Currencies Structure

0 properties

JSON STRUCTURE

V1 Date Structure

0 properties

JSON STRUCTURE

V1 Rates By Date Structure

0 properties

JSON STRUCTURE

V1 Rates On Date Structure

4 properties

JSON STRUCTURE

V1 Rates Structure

0 properties

JSON STRUCTURE

V2 Currency Detail Structure

6 properties

JSON STRUCTURE

V2 Currency Structure

6 properties

JSON STRUCTURE

V2 Provider Structure

11 properties

JSON STRUCTURE

V2 Rate Structure

5 properties

JSON STRUCTURE

Scroll for all 12

Examples 8

Example request and response payloads for these APIs.

V1 Currencies Example

4 fields

EXAMPLE

V1 Rates By Date Example

3 fields

EXAMPLE

V1 Rates Example

4 fields

EXAMPLE

V1 Rates On Date Example

4 fields

EXAMPLE

V2 Currency Example

6 fields

EXAMPLE

V2 Provider Example

11 fields

EXAMPLE

V2 Rate Example

5 fields

EXAMPLE

Scroll for all 8

Security Posture 1

Authentication, domain security, vulnerability disclosure, and trust-center signals.

Agentic Access 1

Recommended x-agentic-access execution contracts for AI agents.

Frankfurter Agentic Access

10 operations

10 operations · 0 acting

AGENTIC

Use Cases 7

What developers build with this provider.

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.

Scroll for all 7

Integrations 12

Pre-built integrations with other platforms and tools.

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.

Scroll for all 12

Solutions 3

Packaged solutions this provider offers.

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.

Resources

Documentation 1

Reference material describing how the API behaves

Agent Surfaces 1

MCP servers, agent skills, and machine-readable catalogs

Design & Contract 2

Pagination, idempotency, versioning, errors, and events

Build 6

SDKs, sample code, and the tooling you integrate with

Access & Security 1

Authentication, authorization, and security posture

Operate 4

Status, limits, changes, and where to get help

Commercial 2

Pricing, plans, and the legal terms of use

Company 1

The organization behind the API

Other 4

Properties that don't map to a standard resource type

Source (apis.yml)

apis.yml Raw ↑
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
  gated: none
  gated_source:
  - onboarding
  label: Freemium · Open access
  confidence: low
  source:
  - plans
  - security
  generated: '2026-11-06'
  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
- aid: frankfurter:frankfurter-coverage-api
  name: Frankfurter Coverage API
  description: The Coverage API from Frankfurter — 1 operation(s) for coverage.
  humanURL: https://frankfurter.dev/docs
  baseURL: https://api.frankfurter.dev/v2
  tags:
  - Coverage
  properties:
  - type: OpenAPI
    url: openapi/frankfurter-coverage-api-openapi.yml
- aid: frankfurter:frankfurter-currency-api
  name: Frankfurter Currency API
  description: The Currency API from Frankfurter — 1 operation(s) for currency.
  humanURL: https://frankfurter.dev/docs
  baseURL: https://api.frankfurter.dev/v2
  tags:
  - Currency
  properties:
  - type: OpenAPI
    url: openapi/frankfurter-currency-api-openapi.yml
- aid: frankfurter:frankfurter-rate-api
  name: Frankfurter Rate API
  description: The Rate API from Frankfurter — 1 operation(s) for rate.
  humanURL: https://frankfurter.dev/docs
  baseURL: https://api.frankfurter.dev/v2
  tags:
  - Rate
  properties:
  - type: OpenAPI
    url: openapi/frankfurter-rate-api-openapi.yml
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

Frankfurter API — frequently asked questions

Does Frankfurter have an API?

Yes. APIs.io lists 9 APIs from Frankfurter, including Frankfurter Currencies API, Frankfurter Current Rates API and Frankfurter Historical Rates API, and 6 more.

Is there an OpenAPI specification for the Frankfurter API?

Yes. APIs.io indexes 9 OpenAPI specifications for Frankfurter, each linked for download from this page.

How much does the Frankfurter API cost?

APIs.io lists 2 pricing plans for Frankfurter, with each plan's price, limits and inclusions under Pricing on this page.

Does Frankfurter have an MCP server?

Yes. APIs.io lists 1 MCP server for Frankfurter: Remote MCP server at mcp.frankfurter.dev over HTTP; 4 tools listed.

Is the Frankfurter API ready for AI agents?

Frankfurter has a Kin Score of 33.5 out of 100 (thin) and an Agent Readiness score of 41.4 (agent-ready), scored by API Evangelist on 2026-11-06.

Work with this as data

Every provider here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for providers

9 MCP tools reach this
  • find_providersBrowse and filter every provider in the catalog.
  • get_provider_artifactsEvery artifact this provider publishes, grouped by type.
  • get_provider_operationsEvery operation across all of their OpenAPIs — one call instead of parsing every spec.
  • get_provider_toolsEvery MCP tool they ship, with the operation each wraps.
  • get_provider_evidenceHow each part of their score was established. Free — the basis for a claim should not sit behind it.
  • get_provider_ratingPRO — composite, band, trend and facet scores.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This provider
curl "https://apis.io/api/v1/providers/frankfurter"
All providers
curl "https://apis.io/api/v1/providers?limit=25"
Every operation they expose
curl "https://apis.io/api/v1/providers/frankfurter/operations?limit=25"
How their score was established
curl "https://apis.io/api/v1/providers/frankfurter/evidence"

Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.