---
title: "Migrate from a Dead Free Exchange Rate API in One Line"
description: "exchangeratesapi.io, the Fixer free tier and exchangerate.host all stopped being free. AllRatesToday serves each of their JSON shapes from the ECB reference table, keyless for latest rates, so a broken project is a hostname change away from working."
canonical: https://allratestoday.com/migrate/
source: AllRatesToday (https://allratestoday.com/) — Markdown mirror of the page above; index of all pages at https://allratestoday.com/llms.txt
generated: 2026-10-24T15:03:33.707Z
---

# Migrate from a Dead Free Exchange Rate API in One Line

exchangeratesapi.io, the Fixer free tier and exchangerate.host all stopped being free. AllRatesToday serves each of their JSON shapes from the ECB reference table, keyless for latest rates, so a broken project is a hostname change away from working.

By [Madhushan](https://allratestoday.com/authors/madhushan/), Founder & Lead Developer

Three free exchange rate APIs powered a decade of tutorials, notebooks and side projects, and all three now require paid keys. Because every one of them served the European Central Bank's daily reference table, the fix is mechanical: AllRatesToday reproduces each response shape, field for field, from the same ECB data. Change the hostname and the rest of your code keeps working.

| You were using | What broke | Shape served | Guide |
| --- | --- | --- | --- |
| **exchangeratesapi.io** | Sold to apilayer in 2021; keys, 100 calls/month, no HTTPS on free | `{ base, date, rates }` | [One-line fix](https://allratestoday.com/migrate/exchangeratesapi/) |
| **Fixer.io free tier** | HTTP-only, EUR base only, 100 calls/month | `{ success, timestamp, base, date, rates }` | [One-line fix](https://allratestoday.com/migrate/fixer/) |
| **exchangerate.host** | Joined apilayer in 2023; keyless requests started failing | `{ success, base, date, rates }` | [One-line fix](https://allratestoday.com/migrate/exchangerate-host/) |
| **Frankfurter** | Still free; use this as a mirror or fallback | `{ amount, base, date, rates }` | `/api/compat/frankfurter/latest?from=USD&to=GBP` |

`What every compatible endpoint has in common Everything is keyless: latest, dated tables and ranges, over HTTPS, with CORS, any base currency, edge-cached. Ranges are limited to a year per call. Free for any use, commercial included. The data is the ECB's public reference table. Public displays must link back to allratestoday.com. This is separate from the keyed free plan for real-time rates, which is for non-commercial use. Numbers are the ECB reference rates, once per business day. Non-EUR bases are cross-rates inside the table, as the originals computed them. Two extra top-level fields, source and attribution. Nothing is removed or renamed. One condition. Keyless use, commercial included, requires a visible link where the rates are shown: <a href="https://allratestoday.com">Exchange rates by AllRatesToday</a>. The attribution field carries the same text. Details in the attribution terms. Then, when you are ready A free key unlocks what those APIs never had: real-time mid-market rates for 160+ currencies, and the official tables of 122 central banks and 4 tax authorities for invoices, VAT and customs work. Or skip the API and take the whole archive as CSV. Every keyless endpoint, with runnable examples, is listed in the free-exchange-rate-api repo. Pick your guide exchangeratesapi.io Fixer exchangerate.host Related Alternatives guidesOne page per competitor Best exchange rate APIs 202610 providers compared Open APIKeyless official rates and attribution terms For AI agentsMCP servers and tool definitions`
