ExchangeRate-API alternative
ExchangeRate-API is a popular exchange rate API with a 1,500-request free plan that updates daily. Ours allows 3,000 requests a month, includes the last 30 days of historical rates for free, and adds webhooks and a WebSocket stream on paid plans.
Side by side
| Currency Exchange Rate API | ExchangeRate-API | |
|---|---|---|
| Free plan | 3,000 requests a month, no credit card | 1,500 requests a month |
| Historical rates on the free plan | Last 30 days | Not included (paid plans only) |
| Free plan update frequency | Daily | Daily |
| Entry paid plan | $9 a month: 10,000 requests, hourly rates | $10 a month: 30,000 requests, hourly rates |
| Historical rates on paid plans | Back to 1999 for the ~30 ECB currencies, and every currency for days recorded since launch | Back to 1990, with fewer currencies before 2021 |
| Push delivery | Signed webhooks and a WebSocket stream from Starter ($9) | Not listed on the plans page |
ExchangeRate-API figures are from ExchangeRate-API plans and ExchangeRate-API historical data docs as published on November 4, 2026; check there for current terms. ExchangeRate-API is a trademark of its owner. Currency Exchange Rate API is not affiliated with ExchangeRate-API.
Where we’re ahead
- Twice the free requests: 3,000 a month against 1,500.
- Historical rates and time series on the free plan, for the last 30 days.
- Signed webhooks and a WebSocket stream that push new rates to you, from the $9 plan.
- Machine-readable docs for AI agents: llms.txt, OpenAPI 3.1, and Markdown versions of the docs and rate pages.
Where ExchangeRate-API is ahead
- More requests on the entry plan: 30,000 for $10, against our 10,000 for $9.
- A longer historical archive on paid plans, back to 1990.
Switching from ExchangeRate-API
| Task | ExchangeRate-API | Currency Exchange Rate API |
|---|---|---|
| Latest rates | GET /v6/KEY/latest/EUR | GET /api/v1/latest?base=EUR |
| Convert an amount | GET /v6/KEY/pair/EUR/GBP/100 | GET /api/v1/convert?from=EUR&to=GBP&amount=100 |
| One past day | GET /v6/KEY/history/USD/2026/10/9 | GET /api/v1/historical?date=2026-10-09&base=USD |
Send the key as Authorization: Bearer <key> instead of in the URL path. Their conversion_rates object becomes rates, with the same shape. Errors are application/problem+json with a code field instead of result: "error". The API documentation covers every endpoint and error.
Try it with 3,000 free requests a month.
Get a free API key