← Back to blog

Free Currency Exchange Rate API: Sources, Coverage and Limits

Free Currency Exchange Rate API: Sources, Coverage and Limits

What a free exchange rate API is good for

A free exchange rate API returns reference rates: one published rate per currency per day, not a live trading quote. That is exactly what most applications need. Showing a price in a visitor's local currency, estimating an invoice, building a travel budget or reporting month-end totals all work well with a daily rate. What it cannot do is tell you what a bank will give you at this minute, which is why the limits matter as much as the features.

ipto's currency endpoints are built on that idea. You can try the same data in the currency converter, or call it from code through /v1/currency/convert, /v1/currency/rates and /v1/currency/history, which are described in the API documentation.

Where the rates come from

The primary source is the open fawazahmed0/currency-api dataset. It is public domain, needs no API key and is updated daily. It is served from two independent content networks, and ipto tries them in order, so one outage does not stop rate updates. The service refreshes it on a daily schedule and keeps the result in a fast cache, so a conversion on the page does not wait on an outside request.

The European Central Bank's published reference rates are a different thing, and are only a fallback here. If both networks of the main source are unavailable, ipto keeps serving the roughly 31 major currencies that the ECB publishes, rather than losing rate data completely. In normal operation you are not looking at ECB data.

Coverage

ipto supports 154 world currencies, filtered from a much larger source list. The source also contains cryptocurrencies and accounting units that are not payment currencies, and those are deliberately left out. Every supported currency has a name and a flag, so the converter can show you something readable rather than a bare code.

History

The history endpoint returns daily reference rates for a currency pair over the last 30, 60 or 90 days, which is also what the chart on the converter page draws. History is useful for spotting a trend, checking what a rate was on the day a transaction was booked, and sanity-checking a number that looks wrong. It is a 90-day window, not a multi-year archive. If you need rates back to 1999 for audit work, use a source that publishes that archive and keep a copy of it.

Limits you should plan for

  • Daily, not live. A rate is a single daily value. Do not use it for trading or for settling a payment.
  • No fees or margins. Banks and card networks add a spread. Your customer's actual cost will differ from the reference rate.
  • Weekends and holidays. Treat a missing day as the previous available rate rather than as an error.
  • Cache age. Rates can be up to a day old by design. Show the date next to any converted amount.

Using it with IP geolocation

The most common pairing is to detect a visitor's country from their IP address with the IP lookup endpoint, which also returns that country's currency, and then convert your prices into it. Because the geolocation is approximate, always let the visitor override the currency, and remember that a visitor on a VPN may appear to be in another country, which the VPN checker can help you detect.

Bottom line

Free reference rates are a good fit for display, estimates and reporting. They are a poor fit for anything that moves money. If you stay inside that boundary, a free daily rate API is simpler, cheaper and just as accurate as a paid feed for the job.

Straight answers

Not as the main source. Rates come from an open, daily-updated dataset covering 154 currencies. The ECB reference rates (about 31 major currencies) are used only as an emergency fallback if the main source is unreachable.
Daily reference rates for the last 30, 60 or 90 days for any supported currency pair, available on the converter page chart and through the history endpoint.
No. They are daily reference rates and do not include bank or card fees. Use them for display, estimates and reporting, not for trading or settling payments.
← Back to blog