Free Currency API

Get a free currency API key in 30 seconds — no credit card. Real-time mid-market exchange rates for 160+ currencies from institutional foreign exchange market data, updated every 60 seconds.

By Madhushan, Founder & Lead Developer

The short version: free API key in 30 seconds, no credit card. 160+ currencies, real-time mid-market rates from institutional foreign exchange market data, updated every 60 seconds. Get your free key.

Quick start

One endpoint, one key. Send the key as an Authorization: Bearer header (or, for a quick browser test, as ?api_key=). Replace art_live_your_key with the key from your dashboard:

curl "https://allratestoday.com/api/v1/rates?source=USD&target=EUR" \
  -H "Authorization: Bearer art_live_your_key"

Response — an array, one entry per pair, so the same call can quote several targets at once (target=EUR,GBP,JPY):

[
  {
    "rate": 0.864566,
    "source": "USD",
    "target": "EUR",
    "time": "2026-08-28T14:00:00Z"
  }
]

From JavaScript:

const res = await fetch(
  "https://allratestoday.com/api/v1/rates?source=USD&target=EUR",
  { headers: { Authorization: "Bearer art_live_your_key" } }
);
const [quote] = await res.json();
console.log(`1 USD = ${quote.rate} EUR`);

From Python:

import requests

res = requests.get(
    "https://allratestoday.com/api/v1/rates",
    params={"source": "USD", "target": "EUR"},
    headers={"Authorization": "Bearer art_live_your_key"},
)
quote = res.json()[0]
print(f"1 USD = {quote['rate']} EUR")

Prefer a client library? There are official SDKs for JavaScript, Python, PHP, and Rust, and you can try every endpoint in the API playground without writing code.

The two responses to handle

Success is always 200 with the array above. Only two other responses matter in practice — check for them and you have covered the free tier:

401 — missing or invalid key. The header was not sent, or the key is wrong.

{
  "error": "Authentication required. Provide an API key via Authorization header or log in."
}

429 — quota used up. The request is refused, never billed. The body tells you where you stand, and the same figures are sent as X-Monthly-Limit, X-Monthly-Used and X-Monthly-Resets headers on every response, so you can watch the quota without waiting to hit it:

{
  "error": "Request limit exceeded",
  "plan": "free",
  "resets_at": "never",
  "upgrade_url": "https://allratestoday.com/pricing"
}

Bursts are capped at 10 requests per minute. The whole error reference, including the 400 for a malformed pair, is in the docs.

Beyond the first call

What the free plan includes

Historical rates, time-series endpoints, commercial use, and higher volumes are part of the paid plans (from a few euros per month, with 5,000–100,000 requests).

Free tiers compared

Most "free currency API" tiers trade away freshness: you get a few hundred or thousand requests against rates cached hourly or daily. AllRatesToday's free tier is smaller on volume but serves the same 60-second real-time feed as its paid plans:

Provider Free requests Update frequency (free) Credit card?
AllRatesToday Free Real-time (60s) No
ExchangeRate-API 1,500/month Daily Yes (for upgrades)
Open Exchange Rates 1,000/month Hourly Yes
CurrencyLayer 100/month Daily Yes
Fixer.io 100/month Daily Yes
Frankfurter Unlimited Daily (ECB, 30+ currencies) No

Want the full 10-provider breakdown? See the best free currency exchange APIs in 2026 comparison.

What you can build on the free tier

Frequently asked questions

Is there a truly free currency API?

Yes. AllRatesToday has a free tier with real-time mid-market rates for 160+ currencies, and no credit card required to sign up.

Do I need a credit card?

No. Sign up with email, Google, or GitHub and generate a free API key immediately, without entering any payment details.

How fresh are the rates on the free plan?

The free plan uses the same real-time data as paid plans: mid-market rates aggregated from institutional foreign exchange market data, updated every 60 seconds. Most competing free tiers serve daily or hourly caches.

Can I use it commercially?

The free plan is for personal, non-commercial projects and testing. Commercial use comes with the paid plans, which start at €4.99/month.

What happens when I use up my free requests?

Requests beyond your quota are rejected with a clear error rather than billed. The free tier does not reset, so caching stretches them a long way, and paid plans give 5,000 to 100,000 requests per month.

Get your free currency API key

30 seconds to sign up. No credit card. Real-time rates from the first request.

Get Free API Key Try the Playground