Free Exchange Rate API & Currency Widget

Free exchange rate API with live mid-market rates for 160+ currencies, plus a one-line embeddable converter widget. Free tier — 300 free requests, no credit card.

Free Exchange Rate API & Currency Widget

Live mid-market rates for 160+ currencies from the AllRatesToday API, plus a one-line embeddable converter widget. Free tier — 300 free requests, no credit card. Grab a free API key to start.

Free tier: every request uses your API key and counts against your plan's quota. The free plan includes 300 requests in total — a lifetime allowance that never resets — get a key in 30 seconds, no card. Full free-plan details on the free currency API page.

Weighing this against other providers? We maintain a ranked comparison of the best free currency APIs in 2026, covering free-tier limits, refresh rates and data sourcing across every major option.

The endpoint

Pass your API key via an Authorization: Bearer header or a ?key= query param:

curl "https://allratestoday.com/api/rate?source=USD&target=EUR&key=art_live_your_key"

Response:

{ "rate": 0.864566, "source": "interbank" }

Quick examples

JavaScript

// Works in the browser too — the endpoint sends CORS headers.
const res = await fetch(
  'https://allratestoday.com/api/rate?source=USD&target=EUR&key=art_live_your_key'
);
const { rate } = await res.json();
console.log(`1 USD = ${rate} EUR`);

Python

import requests

r = requests.get(
    "https://allratestoday.com/api/rate",
    params={"source": "USD", "target": "EUR", "key": "art_live_your_key"},
)
print(f"1 USD = {r.json()['rate']} EUR")

Want a ready-made UI instead? The embeddable currency converter widget uses this same endpoint — just add your data-api-key.

Drop-in shapes for exchangeratesapi.io, Fixer and exchangerate.host

If your code was written against one of the free ECB-based APIs that now require paid keys, the same data is served in their exact JSON shapes under /api/compat/<provider>/, keyless for latest rates: /api/compat/exchangeratesapi/latest?base=USD&symbols=GBP, /api/compat/fixer/latest?base=EUR&symbols=USD, /api/compat/exchangerate-host/latest?base=USD and /api/compat/frankfurter/latest?from=USD&to=GBP. Dated tables and ranges take a free key. The migration guides show the one-line change for each.

Fair use

The keyless official-rate endpoint and the free key are for development, evaluation, personal projects and internal tooling. Commercial products, paid services and public displays (websites, apps, kiosks and digital signage) need a paid plan, which also brings the request allowance and support those uses rely on.

Each key has a request quota — paid plans reset monthly, while the free plan's 300 requests are a one-time lifetime allowance. Cache responses where you can — mid-market rates don't change every second, so a short cache keeps you comfortably under your limit.

Paid plans

Your free key includes usage stats in your dashboard plus the full API: authenticated rates, historical data, and the complete reference. When you need higher limits, paid tiers scale up — see pricing.

Attribution (appreciated)

Not required, but crediting the data source is always appreciated — anywhere visible is fine (footer, about page, or README):