---
title: "Open Source Currency Converter APIs: 6 Free Options to Use or Self-Host (2026)"
description: "Open-source currency converter APIs and libraries compared: Frankfurter, fawazahmed0 currency-api, the Python CurrencyConverter, and MIT-licensed starters. Licences, data sources, self-hosting and where the rates really come from."
canonical: https://allratestoday.com/blog/open-source-currency-converter-api/
source: AllRatesToday (https://allratestoday.com/) — Markdown mirror of the page above; index of all pages at https://allratestoday.com/llms.txt
generated: 2026-10-24T13:35:36.063Z
---

People look for an open-source currency API for three different reasons. Some want to **read the code** before they trust the numbers. Some want to **self-host** so a third party can never switch the service off. And some just mean **free**. This guide covers all three, and is clear about one thing most lists skip: the code can be open while the *data* has its own licence.

Every project below was checked on October 24, 2026: licence, last commit and a live request.

## Comparison

| Project | Type | Code licence | Data source | Self-host |
| --- | --- | --- | --- | --- |
| **Frankfurter** | REST API | MIT | ECB (v1); 105 official providers (v2) | Yes, Docker |
| **fawazahmed0 currency-api** | Static JSON on a CDN | CC0 (data) | Not documented per rate | Mirror the files |
| **CurrencyConverter (Python)** | Library, offline | Apache-2.0 | ECB historical file | Runs in your process |
| **AllRatesToday starters and SDKs** | Client code and templates | MIT | Keyless ECB endpoint or your API key | Deploy anywhere |
| **Central-bank exchange rates dataset** | Daily JSON and CSV files | Data CC BY-NC 4.0 | [122 central banks, 4 tax authorities](https://allratestoday.com/central-bank-rates-api/institutions/) | Clone or use jsDelivr |
| **ECB Data Portal** | Official SDMX API | Not applicable | ECB itself | No (it is the source) |

## 1. Frankfurter: the open-source exchange rate API

Frankfurter is the best-known open-source currency API: an MIT-licensed Ruby service that has run since 2017 and was still getting commits this week. You can use the public instance with no key:

```
curl "https://api.frankfurter.dev/v1/latest?base=USD&symbols=EUR,GBP"
```

Or run your own copy. It fetches the official rates itself:

```
docker run -d --init -p 8080:8080 lineofflight/frankfurter
curl "http://localhost:8080/v1/latest?base=USD"
```

Version 1 serves the European Central Bank's ~30 currencies. Version 2 adds official rates from 105 providers, 165 currencies in total. Everything is a once-a-day official fixing: there are no live market rates and no weekend data.

**Pick it if** you want an API you control end to end and daily official rates are enough.

## 2. fawazahmed0 currency-api: open data on a CDN

A GitHub project that builds JSON files every day and publishes them through npm and jsDelivr. There is no server to run and no rate limit:

```
curl https://cdn.jsdelivr.net/npm/@fawazahmed0/currency-api@latest/v1/currencies/usd.json
```

It covers over 300 codes, including many crypto tokens, and the data is CC0 (public domain). The README asks you to add a fallback to `currency-api.pages.dev` in case the CDN link fails. The weak point is provenance: the files do not say which source each rate came from, so it is not a good fit when an invoice or report has to name its rate.

**Pick it if** you need crypto and fiat in one file and do not need to cite a source.

## 3. CurrencyConverter for Python: no API at all

If you only need conversions inside a Python program, you may not need an API. The Apache-2.0 `CurrencyConverter` library ships with the ECB's historical file and converts offline:

```
pip install CurrencyConverter

from currency_converter import CurrencyConverter
from datetime import date
c = CurrencyConverter()
c.convert(100, "USD", "EUR")                       # latest rate in the bundled file
c.convert(100, "USD", "EUR", date=date(2024, 3, 1))
```

Pass a fresh copy of the ECB file to update the rates. Same limits as the ECB: about 30 currencies, business days only.

**Pick it if** you work in Python, run batch jobs and want zero network calls.

## 4. AllRatesToday: MIT starters on a keyless endpoint

To be clear, the AllRatesToday service is not open source. Its client code is. The SDKs and these templates are MIT-licensed on GitHub and work without a key out of the box:

- [react-currency-converter](https://github.com/AllRates-Today/react-currency-converter): a React and Vite converter that runs the moment you clone it.
- [nextjs-currency-starter](https://github.com/AllRates-Today/nextjs-currency-starter): a Next.js converter, keyless by default, with real-time rates once you add a key.
- [python-currency-cli](https://github.com/AllRates-Today/python-currency-cli): a zero-dependency command line converter for official central-bank rates.
- [free-exchange-rate-api](https://github.com/AllRates-Today/free-exchange-rate-api): copy-paste examples for every keyless endpoint, in Node, Python and shell.

The keyless endpoint they use serves the ECB table with any currency as the base, and may be used commercially as long as a visible link to allratestoday.com stays on the page:

```
curl https://allratestoday.com/api/open/latest/EUR
```

**Pick it if** you want a working converter today and a clear path to real-time rates later, without rewriting.

## 5. Central-bank exchange rates as open files

The [central-bank-exchange-rates](https://github.com/AllRates-Today/central-bank-exchange-rates) repository publishes the official tables of [122 central banks](https://allratestoday.com/central-bank-rates-api/institutions/) and four tax authorities as JSON and CSV, updated four times a day, with history going back years. You can clone it, load it into your own database, or read it through jsDelivr:

```
curl https://cdn.jsdelivr.net/gh/AllRates-Today/central-bank-exchange-rates@main/data/ecb/latest.json
```

The same data is mirrored to Hugging Face and Kaggle. **Licence:** the data is CC BY-NC 4.0, so it is free for research, personal and internal use, but not for commercial products. Commercial use needs the [Official Rates plan](https://allratestoday.com/pricing/#official).

**Pick it if** you want to self-host official rates for a country the ECB does not cover, such as the RBI, Bank of Japan or Central Bank of Nigeria.

## 6. The ECB Data Portal: the source behind most of them

Not open-source software, but open data, and the upstream for Frankfurter, the Python library and most ECB-based APIs:

```
curl "https://data-api.ecb.europa.eu/service/data/EXR/D.USD.EUR.SP00.A?lastNObservations=1&format=csvdata"
```

If you self-host, this is what your service ends up calling. Reuse is allowed with credit to the ECB. The format is SDMX, which is why most people put a wrapper in front of it. See [Is the ECB exchange rate API free?](https://allratestoday.com/blog/is-the-ecb-exchange-rate-api-free/)

## What open source cannot give you

Every project above serves **daily** rates. That is not a gap someone forgot to fill. Central banks publish their reference rates for free, so anyone can redistribute them. Real-time market rates come from banks and trading venues under licence, so they cannot be put in a public repository.

If your app needs rates that move during the day, for a checkout, a trading screen or a treasury dashboard, you need a licensed feed. AllRatesToday's real-time mid-market rates for 160+ currencies start with a [free API key](https://allratestoday.com/register/) (no card). Our [real-time forex API comparison](https://allratestoday.com/blog/best-realtime-forex-api-2026/) covers the other providers.

## How to choose

- **Want to control the whole stack:** self-host Frankfurter.
- **Need crypto too:** fawazahmed0 currency-api.
- **Python, offline, ECB only:** CurrencyConverter.
- **Want a working converter app now:** an AllRatesToday starter on the [keyless endpoint](https://allratestoday.com/blog/free-currency-api-without-key/).
- **Need one country's official rate** for internal reports: the central-bank dataset, or the [central bank rates API](https://allratestoday.com/central-bank-rates-api/).

## FAQ

### Is there an open-source currency converter API?

Yes. Frankfurter is an MIT-licensed exchange rate API you can call for free or run yourself with Docker. The fawazahmed0 currency-api publishes daily JSON files with CC0 data. For Python, the Apache-2.0 CurrencyConverter library converts offline from the ECB's published file.

### Can I self-host a currency exchange rate API?

Yes. Frankfurter ships a Docker image (docker run -p 8080:8080 lineofflight/frankfurter) that fetches the official rates itself. You can also mirror static JSON from a GitHub project such as fawazahmed0/exchange-api, or download a dataset and serve it from your own database.

### Where do open-source currency APIs get their rates?

Mostly from central banks, which publish reference rates for free once a day. Frankfurter and the CurrencyConverter library use the European Central Bank and, in Frankfurter v2, other official providers. Real-time market rates are licensed data, so you will not find them in an open-source project.

### Is AllRatesToday open source?

The API service is not, but its SDKs, starter templates and example code are MIT-licensed on GitHub, and its central-bank dataset is published as open files under CC BY-NC 4.0 (non-commercial). The keyless /api/open/latest endpoint may be used commercially with a visible link.

### What licence should I look for?

Check two licences: the code licence (MIT, Apache-2.0) and the data licence. Code can be MIT while the rates carry their own terms. ECB data may be reused with source credit; CC0 data has no conditions; CC BY-NC data cannot be used commercially.

## Open-source client, licensed real-time data

MIT SDKs and starters, keyless ECB rates, and live rates for 160+ currencies with a free key. No credit card.

 [Get your free API key](https://allratestoday.com/register/)

## Related Articles

- [The 10 best free currency APIs in 2026](https://allratestoday.com/blog/best-free-currency-exchange-api-2026/)
- [Free currency API without a key: 7 no-signup options](https://allratestoday.com/blog/free-currency-api-without-key/)
- [Free currency converter API for JavaScript](https://allratestoday.com/blog/free-currency-converter-api-javascript/)
- [AllRatesToday vs Frankfurter](https://allratestoday.com/blog/allratestoday-vs-frankfurter-2026/)
- [Central bank exchange rates dataset on Hugging Face](https://allratestoday.com/blog/central-bank-exchange-rates-dataset-hugging-face/)
- [Official SDKs](https://allratestoday.com/docs/sdks/)
