Frankfurter API

⭐ Beginner's Pick Currency Exchange / No Auth Required Beginner HTTPS CORS
Free to Use Varies (check documentation)

Overview

Frankfurter is an open-source currency data API backed by the European Central Bank (ECB) exchange rate dataset, providing rates for 33 major currencies updated every weekday. It supports historical queries, time series ranges, and currency conversion — all without any authentication or rate limits. The API is clean, fast, and CORS-enabled, making it a top choice for hobby and production projects alike.

💡

Beginner Tip

No sign-up required. The live endpoint is `https://api.frankfurter.app/latest` for today's rates. To convert between currencies, add query params: `?from=USD&to=EUR`. For historical data, replace `latest` with a date like `2024-01-15`. All rates are based on the ECB daily reference rate.

Available Data

exchange rate between currencies
conversion result
supported currency list
historical rates

Example Response

JSON Response
{
  "base": "USD",
  "date": "2025-01-15",
  "rates": {
    "EUR": 0.92,
    "GBP": 0.79,
    "JPY": 149.5,
    "CAD": 1.35
  }
}

Field Reference

amount The base amount used for conversion (default is 1).
base The currency code the rates are expressed relative to.
date The date of the rates in YYYY-MM-DD format (most recent ECB publishing day).
rates Key-value map of currency codes to their exchange rate relative to the base currency.

Implementation Example

// ⚠️ Note: This URL may be a documentation page. Check official docs for actual API endpoint.
const url = "https://www.frankfurter.app/docs";
const response = await fetch(url);
if (!response.ok) throw new Error(`Request failed: ${response.status}`);
const data = await response.json();
console.log(data);

What Can You Build?

Note: These code examples are AI-generated and unverified. Always refer to the official API documentation for accurate usage.

Common Errors & Troubleshooting

400 Bad Request — not found error Requesting a currency not in the ECB dataset (e.g., cryptocurrencies, exotic currencies like THB).
Fetch `/currencies` to see the 33 supported codes. Only ECB-covered currencies are available.
Weekend/holiday data returns last available date The ECB does not publish rates on weekends or EU public holidays.
This is expected behavior. The API automatically returns the most recent available rates — check the `date` field in the response to confirm which date was used.
CORS error when calling the docs URL Using `frankfurter.dev` (the docs site) as the API endpoint instead of the actual API host.
Use `https://api.frankfurter.app` as the base URL for all API calls, not the documentation site.

Matrix Score Breakdown

🌐 Reachability 30/30
⚡ Speed 20/20
🔒 Security 15/15
🛠 Developer XP 20/20
✓ Reliability 7/15
Response Time 29ms

Fully tested on Apr 5, 2026

Technical Specifications

Auth No Auth
HTTPS REQUIRED
CORS YES
Difficulty Beginner
Verified: 2026-04-07

Alternatives to Frankfurter

Technical alternatives for different use cases.

Free, open-source API backed by ECB data

Better For

Exotic currency pairs and cryptocurrency rates

Trade-off

European currency conversions with no API key

Open-source ECB rate API, self-hostable

Better For

Non-European currency pair coverage

Trade-off

Self-hosting for data sovereignty requirements

Similar APIs

View All →