Why ExchangeRate-API Is Not a Standard Reference Rate: What Its Own Terms and Docs Say
ExchangeRate-API is one of the most widely used currency APIs. It has run since 2010, it is easy to integrate, and its free plan is generous. For showing an approximate price it does the job. The trouble starts when its number is used as the exchange rate in invoices, ledgers, tax filings or settlements, because by its own description it is not that kind of rate.
What makes a rate a standard reference
When an accountant, an auditor, a tax authority or a contract talks about "the exchange rate", they mean a rate with five properties. These are the same ideas that benchmark rules such as the IOSCO Principles for Financial Benchmarks and the EU Benchmarks Regulation are built around: governance, a transparent methodology and accountability.
- A named publisher. You can say whose rate it is: the European Central Bank, the Federal Reserve, HMRC.
- A stated method and time. You know how the figure is produced and what moment it refers to.
- A stable record. The figure for a past date exists, can be looked up again, and does not silently change.
- Fitness stated by the publisher. The publisher says what the rate may be used for.
- Someone accountable. There is an institution or a contract behind it, not just a URL.
Test 1: a named publisher
ExchangeRate-API's rate is its own composite. Its data page says: "We collect forex data from 30+ different sources. These include central banks that publish reference rates & commercial markets where we can calculate the midpoint of where a particular currency pair's spread is trading." And then: "we use our own algorithm to blend all the available data into one composite indicative exchange rate."
The sources are not listed. The only institution named anywhere is the European Central Bank, as an example. So the figure you receive was not published by any central bank and was not traded in any market. There is no institution you can cite for it other than ExchangeRate-API.
Test 2: a stated method and time
The method is described in one sentence: "This blending takes into account data age weightings and evaluations of a source's previous accuracy." The weights, the sources and the algorithm are not published. No fixing time is stated: the rate is not "as at 4pm London" or "noon New York". The company classifies the result itself: "Our exchange rates are classed as indicative midpoint rates."
Freshness also varies by pair. The data page says "less common pairs of smaller currencies will not always update as often as our data refreshes." On the free plan and the open endpoint, data is refreshed once every 24 hours.
Test 3: a stable record
Historical data is not available on the free plan; it is on the Pro, Business and Volume plans. Full currency coverage starts on 1 January 2021, with a shorter list of 35 currencies back to 1990. The historical documentation adds its own warning: "We blend data from different sources to reduce inaccuracies & provide one indicative mid-rate for each calendar day. This data is suitable for reporting, dashboards, academic studies... but shouldn't be used for processing cross-currency settlements or backtesting day trading models."
Even the list of supported currencies is not stated consistently: the home page and the supported-currencies page say 165, while another home page tile and the data page say 161.
Test 4: fitness stated by the publisher
This is the test that settles it, because ExchangeRate-API answers it directly in its terms:
- "Currency and exchange rate data provided by ExchangeRate-API is only suitable for informational or illustrative purposes. Use of the exchange rates we provide for actual transactions or as financial data is explicitly not recommended."
- "we cannot guarantee the accuracy of any exchange rates we provide. We make no warranties or guarantees - express or implied - regarding exchange rate information returned by our API, its completeness or correctness, its accuracy or its fitness for any particular purpose."
- From the FAQ: "We do not supply buy/sell spread data and so our rates are unsuitable for forex trading or processing cross currency settlements."
If the provider says the data is not recommended for actual transactions or as financial data, booking invoices or tax figures at that rate means using it against its own terms.
Test 5: someone accountable
- The terms provide the service "as is" and "as available" and limit liability to 500 South African rand.
- No contractual service level is published. The terms say "we do not give any promises or warranties (whether express or implied) about the availability of our Service." Uptime appears only as a measured past figure.
- Free plans "can be discontinued by ExchangeRate-API without notice", and the company says it "isn't feasible to offer LTS for our free plans and open access endpoints."
- The open endpoint requires an attribution link on the pages that use the rates, and the data may not be redistributed.
The difficult currencies
ExchangeRate-API publishes a caution list for currencies where the official rate and the rate actually available differ: ARS, LYD, SSP, SYP, VES, YER and ZWL. For these it says "we default to the rates published by the appropriate central banks" and "Please take extra caution when using our data for these currencies as there is a chance it might disagree with other sources." The Iranian rial is listed as suspended since March 2026.
That is a sensible policy, and it shows the limit of a blend: for exactly the currencies where the choice of rate matters most, the composite steps aside and a central bank table is used anyway, without the response telling you which one or of what date.
Scorecard
| Test | A standard reference rate | ExchangeRate-API, in its own words |
|---|---|---|
| Named publisher | A central bank or tax authority | "one composite indicative exchange rate" from 30+ unlisted sources |
| Method and time | Published method, stated fixing time | "our own algorithm"; no fixing time |
| Stable record | Dated table, retrievable later | History on paid plans; "one indicative mid-rate for each calendar day" |
| Stated fitness | Published for a named purpose | "only suitable for informational or illustrative purposes" |
| Accountability | A public institution or a contract | "as is"; liability limited to 500 rand; no published service level |
Where you should not use it
- Tax invoices and VAT or GST returns, where the law names a central bank or tax authority rate.
- Customs declarations, which use the customs authority's period rate.
- Year-end and month-end closing, where an auditor will recompute from the source your policy names.
- Contracts and settlements that refer to a named rate.
- Any record you may have to defend later, since the method cannot be reproduced by anyone else.
What a standard source looks like
The standard source is the institution your rule or policy names, with its own date. A few examples of what "stated method and time" means in practice:
- European Central Bank: euro reference rates from a concertation between central banks at about 14:10 CET, published around 16:00 CET each working day.
- Federal Reserve H.10: noon buying rates in New York, certified by the Federal Reserve Bank of New York for customs purposes.
- HMRC: monthly rates published on the penultimate Thursday of each month for the following month, for customs and VAT.
- Central Bank of the UAE: mid rates at 6pm UAE time, Monday to Friday, published for VAT obligations.
You can take these from each institution's website, or from an API that passes the table through unchanged with the publisher's date. AllRatesToday serves the official tables of 123 central banks and 6 tax authorities that way:
curl "https://allratestoday.com/api/open/central-bank/ecb"
# "bank": "ecb", "rate_date": "2026-11-09", "cadence": "daily",
# "rates": [ { "base": "USD", "quote": "EUR", "type": "reference", "value": ... }, ... ] One caution applies to every vendor, ours included: a live mid-market rate is not an official rate, whoever serves it. It is the right number for showing a price. For anything a rule, an auditor or a contract will check, use the published table.
FAQ
Is ExchangeRate-API accurate?
It describes its rates as indicative midpoint rates blended from more than 30 sources, and its terms say it cannot guarantee the accuracy of any exchange rate it provides. For approximate prices that is usually enough. It is not a figure published by a central bank.
Can I use ExchangeRate-API for accounting or tax?
Its terms say the data is only suitable for informational or illustrative purposes and that use for actual transactions or as financial data is explicitly not recommended. Accounting and tax rules usually name a central bank or tax authority rate, which is a different figure.
Where does ExchangeRate-API get its rates?
It says it collects data from more than 30 sources, including central banks and commercial markets, and blends them with its own algorithm into one composite indicative rate. The sources are not listed.
Is the ExchangeRate-API free plan allowed for commercial use?
Yes. Its terms say both the free plan and paid accounts are suitable for commercial or personal use. The open endpoint requires an attribution link and the data may not be redistributed.
What should I use when I need a rate I can cite?
The table published by the institution your rule or policy names, with its publication date: for example the European Central Bank, the Federal Reserve, HMRC or your own central bank.
Rates with a name and a date on them
The official tables of 123 central banks and 6 tax authorities, each with the publisher's own date, as JSON, CSV, XML or Excel. Dated tables and history on paid plans.
See plans