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 compared with ExchangeRate-API
 Currency Exchange Rate APIExchangeRate-API
Free plan3,000 requests a month, no credit card1,500 requests a month
Historical rates on the free planLast 30 daysNot included (paid plans only)
Free plan update frequencyDailyDaily
Entry paid plan$9 a month: 10,000 requests, hourly rates$10 a month: 30,000 requests, hourly rates
Historical rates on paid plansBack to 1999 for the ~30 ECB currencies, and every currency for days recorded since launchBack to 1990, with fewer currencies before 2021
Push deliverySigned 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

TaskExchangeRate-APICurrency Exchange Rate API
Latest ratesGET /v6/KEY/latest/EURGET /api/v1/latest?base=EUR
Convert an amountGET /v6/KEY/pair/EUR/GBP/100GET /api/v1/convert?from=EUR&to=GBP&amount=100
One past dayGET /v6/KEY/history/USD/2026/10/9GET /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