Free Currency API Without a Key: 7 No-Signup Exchange Rate APIs (2026)
Sometimes you just want a URL that returns exchange rates. No signup form, no key in an environment variable, no dashboard. For a prototype, a hackathon, a static site or a script you run once a day, that is all you need.
Here are seven exchange rate APIs that answer without an API key. We called every one of them on October 24, 2026. For each we list what it returns, how often it updates, the licence, and whether you are allowed to use it in a commercial product, which is the part most lists leave out.
The short answer
| API | Currencies | Updates | Browser (CORS) | Commercial use |
|---|---|---|---|---|
| AllRatesToday open latest | 30 (ECB), any of them as base | Daily, ~16:00 CET | Yes | Yes, with a visible link |
| AllRatesToday central-bank tables | 122 central banks, 160+ currencies | Each bank's own schedule | Yes | Non-commercial; paid plan for commercial |
| AllRatesToday compat endpoints | 30 (ECB), with dates and ranges | Daily | Yes | Yes, with a visible link |
| Frankfurter | v1: 30 (ECB). v2: 165 from 105 providers | Daily | Yes | Yes (MIT, open source) |
| ExchangeRate-API open access | 166 | Daily | Yes | Yes, with attribution |
| fawazahmed0 currency-api | 300+ incl. crypto | Daily | Yes | Yes (CC0 data) |
| ECB Data Portal API | ~30 | Daily, ~16:00 CET | Not designed for it | Yes, with source credit |
The catch is the same for all seven: no keyless API gives you real-time rates. They all serve daily figures, either an official central-bank fixing or a once-a-day snapshot. That is fine for most websites, invoices and reports. For a checkout or trading screen that has to track the market minute by minute, you need a keyed feed (more on that at the end).
1. AllRatesToday: /api/open/latest/{BASE}
One URL, any base currency, no key. It serves the European Central Bank's daily reference table re-based to the currency you put in the path:
curl https://allratestoday.com/api/open/latest/USD {
"result": "success",
"base_code": "USD",
"date": "2026-10-23",
"time_next_update_utc": "Sat, 24 Oct 2026 15:00:00 GMT",
"rates": { "USD": 1, "EUR": 0.89341553, "GBP": 0.74803895, "JPY": ... },
"attribution_html": "<a href=\"https://allratestoday.com\">Exchange rates by AllRatesToday</a>"
} - Currencies: the 30 in the ECB table. Any of them works as the base:
/latest/GBP,/latest/JPY,/latest/INR. - Browser: CORS is open, so
fetch()works from any website. - Commercial use: allowed, as long as the page that shows the rates carries a visible link to allratestoday.com. The response includes the exact HTML in
attribution_html. See the attribution terms. - Also:
time_next_update_utctells you when to fetch again, so you can cache until then.
Full reference: open exchange rate API.
2. AllRatesToday: official tables from 122 central banks
If you need a specific country's official rate rather than the ECB's, the latest table of every central bank we cover is keyless:
curl "https://allratestoday.com/api/open/central-bank/rbi?source=USD&target=INR"
curl https://allratestoday.com/api/open/central-bank/boj
curl "https://allratestoday.com/api/open/central-bank/cbn?format=csv" Each response carries the bank's own rate_date, so you always know which day's fixing you have. There are 122 central banks plus four tax authorities (HMRC, US Treasury, Swiss customs, India's CBIC); the full institution list has every code.
Licence note: these keyless tables are for personal, research and internal use. Showing them in a commercial product or on a public website needs a paid plan. If you need commercial keyless use, use endpoint 1 or 3.
3. AllRatesToday: drop-in compatibility endpoints
If you have code written for Frankfurter, exchangerate.host or exchangeratesapi.io, point it at our compatibility layer. Same request shape, same response shape, no key, and dates and ranges work too:
curl "https://allratestoday.com/api/compat/frankfurter/latest?from=USD&to=EUR,GBP"
# {"amount":1,"base":"USD","date":"2026-10-23","rates":{"EUR":0.89341553,"GBP":0.74803895}, ...} Commercial use is allowed with the visible link. The migration guides show the base-URL change for each provider.
4. Frankfurter
Frankfurter is an open-source (MIT) API that has served ECB rates without a key since 2017. Version 1 is ECB-only, about 30 currencies:
curl "https://api.frankfurter.dev/v1/latest?base=USD&symbols=EUR"
# {"amount":1.0,"base":"USD","date":"2026-10-23","rates":{"EUR":0.89342}} Version 2 combines official rates from 105 providers into 165 currencies, still keyless:
curl "https://api.frankfurter.dev/v2/rates?base=USD"es=NGN" Strong choice for free volume. You can also run it yourself with Docker. What it does not have: real-time rates, tax-authority rates, CSV or Excel output, SDKs or a support contact. Our AllRatesToday vs Frankfurter comparison goes through the differences.
5. ExchangeRate-API open access
ExchangeRate-API runs a separate keyless endpoint next to its keyed plans:
curl https://open.er-api.com/v6/latest/USD It returns 166 currencies, updated once a day. The terms ask you to credit them with a link, and clients that request too often get rate-limited. For anything beyond that you sign up for a key. It is one of the most widely cited free endpoints on GitHub.
6. fawazahmed0 currency-api (jsDelivr)
Not a server at all: a GitHub project that publishes static JSON files once a day, served through the jsDelivr CDN.
curl https://cdn.jsdelivr.net/npm/@fawazahmed0/currency-api@latest/v1/currencies/usd.json It lists over 300 codes, many of them crypto tokens, with no rate limits, and the data is released as CC0 (public domain). The README asks you to code a fallback to currency-api.pages.dev in case jsDelivr fails. The project does not document where each rate comes from, so it is a poor fit when you have to say which rate you used.
7. The ECB Data Portal API
The source behind most of the endpoints above. The European Central Bank publishes its reference rates through an SDMX API, free and keyless:
curl "https://data-api.ecb.europa.eu/service/data/EXR/D.USD.EUR.SP00.A?lastNObservations=1&format=csvdata" This is the official record, which matters for accounting. But the SDMX format is verbose, you get one series per currency, and it is built for statisticians, not front-end code. Most developers use a wrapper (endpoints 1, 3 or 4) and keep the ECB as the cited source. More on that in Is the ECB exchange rate API free?
Which one should you use?
- A website or app, commercial or not: AllRatesToday
/api/open/latest/{BASE}. One URL, any base, CORS open, commercial use allowed with the link. - Existing code for Frankfurter or exchangerate.host: the compat endpoints, so you only change the base URL.
- A country's own official rate (RBI, Bank of Japan, CBN, NBP): the central-bank tables, or Frankfurter v2.
- Crypto plus fiat in one file: fawazahmed0 currency-api.
- An audit trail that names the publisher: the ECB API directly, or a central-bank table that carries the bank's
rate_date. - Self-hosting: Frankfurter with Docker. See open-source currency converter APIs.
When you do need a key
Keyless APIs stop at daily rates. You need a key when you want:
- Real-time rates. Mid-market rates that move through the day, updated every 60 seconds. This data is licensed per request, so every provider meters it.
- Exotic pairs at market prices. ECB tables have no NGN, PKR or ARS. Market feeds do.
- Historical series for back-testing and charts, in JSON, CSV or Excel.
AllRatesToday's free API key needs only an email, no card. If you are building an AI agent, POST /api/agent/keys issues an instant trial key with no account. For the keyed options side by side, see the 10 best free currency APIs.
FAQ
Is there a free currency API without an API key?
Yes. AllRatesToday's /api/open/latest/{BASE}, Frankfurter, ExchangeRate-API's open access endpoint, the fawazahmed0 currency-api on jsDelivr and the ECB's own data API all answer without a key or signup. All of them serve daily rates, not real-time ones.
Can I use a keyless currency API in a commercial product?
It depends on the provider's terms. AllRatesToday's /api/open/latest/{BASE} and /api/compat/ endpoints may be used commercially with a visible link to allratestoday.com. Its keyless central-bank tables are for non-commercial use; commercial use of those needs a paid plan. Frankfurter is MIT-licensed, fawazahmed0's data is CC0, and ExchangeRate-API's open endpoint asks for attribution.
Why do real-time exchange rates need an API key?
Real-time market data is licensed and metered per request, so providers need to know who is calling. Daily official fixings, such as the ECB reference rates, are published free by the central bank, which is why they can be served without a key.
Can I call a keyless currency API from the browser?
Yes, if it sends CORS headers. AllRatesToday's /api/open/* and /api/compat/* endpoints, Frankfurter, ExchangeRate-API's open endpoint and jsDelivr all send Access-Control-Allow-Origin: *, so fetch() works from any site.
Which keyless API has the most currencies?
The fawazahmed0 currency-api lists over 300 codes including crypto tokens. Among official sources, Frankfurter v2 and AllRatesToday's central-bank tables cover 160+ currencies by combining many central banks. ECB-based endpoints cover about 30.
Start with no key, add one when you need real-time
ECB rates keyless today. Live rates for 160+ currencies with a free key, no credit card.
See the keyless API