BYTETOOLS

Open ER-API

Free exchange rate API with no key covering 161 currencies. Returns a full rate table plus next update time. Tested curl example and live JSON response.

No API key requiredCORS enabledHTTPSFree tier

Endpoint tested and returned HTTP 200 on 19 Aug 2026

What is the Open ER-API?

Open ER-API is a free currency exchange rate API covering 161 currencies with no API key required. A single request returns the complete rate table for a base currency along with timestamps for the last and next update.

Where Frankfurter is limited to the roughly 30 currencies the ECB publishes, Open ER-API covers 161 — including many emerging-market and pegged currencies that ECB-derived APIs simply do not carry. If you need PKR, NGN, VND or similar, this is the free option that has them.

It also returns explicit `time_last_update_unix` and `time_next_update_unix` fields, which is genuinely useful: you can set your cache expiry to the exact moment new data arrives rather than guessing an interval.

Quick facts

Base URL
https://open.er-api.com/v6
Authentication
The open endpoint needs no key. The commercial v6 API at a different host does require one.
Rate limit
Roughly one update per day per base currency; requests themselves are not tightly limited.
Pricing
Free with attribution requested. Paid plans offer more frequent updates.
CORS
Enabled — callable directly from browser JavaScript
Official docs
Read the docs

How to use the Open ER-API

Every request below was executed against the live API on 19 Aug 2026, and the response shown is the real body it returned — not an illustration.

1. All exchange rates against USD

GET https://open.er-api.com/v6/latest/USD

curl
curl 'https://open.er-api.com/v6/latest/USD'
JavaScript (fetch)
const res = await fetch("https://open.er-api.com/v6/latest/USD");
if (!res.ok) throw new Error(`Request failed: ${res.status}`);
const data = await res.json();
console.log(data);
Python (requests)
import requests

res = requests.get("https://open.er-api.com/v6/latest/USD", timeout=20)
res.raise_for_status()
print(res.json())
Response — HTTP 200 (truncated)
{
  "result": "success",
  "provider": "https://www.exchangerate-api.com",
  "documentation": "https://www.exchangerate-api.com/docs/free",
  "terms_of_use": "https://www.exchangerate-api.com/terms",
  "time_last_update_unix": 1787097751,
  "time_last_update_utc": "Wed, 19 Aug 2026 00:02:31 +0000",
  "time_next_update_unix": 1787185261,
  "time_next_update_utc": "Thu, 20 Aug 2026 00:21:01 +0000",
  "time_eol_unix": 0,
  "base_code": "USD",
  "rates": {
    "USD": 1,
    "AED": 3.6725,
    "AFN": 65.328221,
    "ALL": 80.147388,
    "AMD": 365.907545,
    "ANG": 1.79,
    "AOA": 929.6336,
    "ARS": 1494.1268,
    "AUD": 1.409923,
    "AWG": 1.79,
    "AZN": 1.70031,
    "BAM": 1.689561,
    "BBD": 2,
    "BDT": 122.192682,
    "BGN": 1.689561,
    "BHD": 0.376,
    "BIF": 2992.384013,
    "BMD": 1,
    "BND": 1.278151,
    "BOB": 11.605646,
    "BRL": 5.207284,
    "BSD": 1,
    "BTN": 95.76446,
    "BWP": 13.64313,
    "BYN": 3.035564,
    "BZD": 2,
    "CAD": 1.38884,
    "CDF": 2279.799462,
    "CHF": 0.812451,
    "CLF": 0.023152,
    "CLP": 915.126983,
    "CNH": 6.745439,
    "CNY": 6.756911,
    "COP": 3135.191066,
    "CRC": 449.584268,
    "CUP": 24,
    "CVE": 95.253398,
    "CZK": 20.896032,
    "DJF": 177.721,
    "DKK": 6.458259,
    "DOP": 58.791467,
    "DZD": 133.061855,
    "EGP": 50.518369,
    "ERN": 15,
    "ETB": 160.682969,
    "EUR": 0.863866,
    "FJD": 2.207994,
    "FKP": 0.738848,
    "FOK": 6.458258,
    "GBP": 0.738843,
    "GEL": 2.611976,
    "GGP": 0.738848,
    "GHS": 11.063152,
    "GIP": 0.738848,
    "GMD": 74.697227,
    "GNF": 8782.5264

Parameters

ParameterTypeRequiredDescription
<base>pathRequiredBase currency code appended to /latest/. USD

Response fields

resultstring
`success` or `error` — check before reading rates.
base_codestring
The base currency for the quoted rates.
ratesobject
Map of 161 currency codes to numeric rates.
time_last_update_utcstring
When these rates were published, human readable.
time_next_update_unixinteger
Unix timestamp of the next refresh — use it to set cache TTL exactly.

What you can build with the Open ER-API

  • Convert between currencies the ECB does not publish, such as PKR or NGN
  • Populate a full currency dropdown from one cached request
  • Set cache expiry precisely using the next-update timestamp
  • Display prices in a visitor's local currency worldwide

Common errors and how to fix them

result: error, unsupported-code

The base currency code is not recognised.

Fix: Use an ISO 4217 three-letter uppercase code.

result: error, malformed-request

The URL path is wrong.

Fix: The format is /v6/latest/USD — the base currency goes in the path, not a query string.

Open ER-API — frequently asked questions

How many currencies does Open ER-API support?

161, which is considerably more than ECB-derived APIs. That includes many emerging-market and pegged currencies that free alternatives omit.

Is Open ER-API really free with no key?

Yes, the open endpoint at open.er-api.com requires no key. Attribution is requested. The separate commercial API does require a key and offers more frequent updates.

How often do the rates refresh?

Roughly once every 24 hours on the free tier. The response includes `time_next_update_unix` so you can align your cache with the actual refresh rather than polling.

How is this different from Frankfurter?

Frankfurter uses ECB reference rates and covers about 30 currencies with strong provenance. Open ER-API covers 161 currencies from blended sources. Choose Frankfurter for accounting accuracy, Open ER-API for breadth of coverage.

Tools that pair with this API

Alternatives to Open ER-API

If Open ER-API does not fit, these finance & crypto apis cover similar ground. Every one was called before publishing, and each links to its own reference page with a working curl command and the response it returned.

APIWhat it doesAuthCORSLast verified
CoinGeckoFree cryptocurrency price API covering 10,000+ coins. Live prices, market cap and volume in any currency, no API key on the public tier. Tested curl example.No keyYes19 Aug 2026
Binance Public APIBinance public market data API needs no API key: live ticker prices, order books, klines and 24h stats for every trading pair. Tested curl example and response.No keyYes19 Aug 2026
Coinbase Exchange RatesCoinbase public exchange rates API with no key: convert any cryptocurrency to 100+ fiat currencies in a single request. Tested curl example and live JSON.No keyYes19 Aug 2026
FrankfurterFree currency exchange rate API with no key, built on European Central Bank data. Latest and historical rates, time series and conversion. Tested curl example.No keyYes19 Aug 2026
OpenFIGIFree OpenFIGI mapping API with no key: convert ISIN, CUSIP, SEDOL or ticker to FIGI identifiers with security type, exchange code and name. Tested POST example.No keyNo21 Aug 2026
paralelo.boFree API for Bolivia's parallel-market USD/BOB exchange rate, aggregated from peer-to-peer sources and refreshed every minute. No key, permissive CORS, tested example.No keyYes21 Aug 2026
All Finance & Crypto APIs

Open ER-API is an independent third-party service and is not affiliated with ByteTools or ByteVancer. Details on this page were verified on 19 Aug 2026; always check the official documentation before relying on this API in production, as terms and limits can change.