Currency Converter — Live Exchange Rates for 30+ Currencies
Convert USD, EUR, GBP, CAD, AUD, INR and 26 more currencies using ECB rates. Cached 12 hours, works offline.
Popular Pairs
Quick Reference — USD → EUR
1 USD → All Currencies
Live rates for all 32 currencies
A free online currency converter that shows the real reference rate
Convert between 32 currencies — USD, EUR, GBP, CAD, AUD, INR, JPY, CHF, SGD, AED and more — using live exchange rates. Type an amount, pick the two currencies, and the result updates instantly; the swap button reverses the pair and the popular-pairs shortcuts jump straight to common conversions. The exchange rates are fetched once from the European Central Bank (via the Frankfurter API), then every conversion runs in your browser: the amounts you type never touch a server, there’s no signup, and it’s free.
That makes it handy for a lot of everyday jobs — a freelancer invoicing international clients, a traveller planning a budget in the destination currency, a shopper comparing prices on a foreign online store, or a finance team converting foreign-currency revenue for reporting or an overseas property valuation. Check the rate here, then generate the invoice in the right currency.
The rate you see here vs the rate you actually get
This is the single most useful thing to understand about any currency converter, and it’s something the tool itself can’t show you. The number here is the mid-market rate — also called the interbank rate. It’s the midpoint between the price at which currency is bought and the price at which it’s sold on the wholesale market, and it’s the rate you’ll see quoted on Google, Reuters, or the ECB.
The catch: almost nobody actually exchanges money at the mid-market rate. Your bank, your card issuer, PayPal, and the kiosk at the airport all quote you a slightly worse rate and pocket the difference — a “spread” that the mid-market number never reveals. So if this converter says 1,000 USD is worth a certain amount in EUR, the euros that land in your account after a card payment or a wire will be a little less. That isn’t the tool being wrong; it’s the retail markup doing exactly what it always does.
Why show the mid-market rate at all, then? Because it’s the fair benchmark. It’s the honest reference point for setting an invoice line item, sanity-checking a foreign price, or judging whether the rate your provider offered is competitive. Treat the figure here as the ceiling — the best you could theoretically get — and assume your real-world exchange will cost a bit more.
Where the spread hides: typical markup by exchange channel
Markups vary by provider, currency pair, and amount, so treat these as rough, typical ranges rather than fixed numbers. They’re measured against the mid-market rate this converter displays:
| Where you exchange | Typical markup over mid-market | What to watch |
|---|---|---|
| Interbank / ECB mid-market | 0% (the benchmark) | What this converter shows; almost no one retail-trades at exactly this |
| Specialist money-transfer apps | ~0.3%–1% | Often near mid-market plus one small, visible fee |
| Bank wire / SWIFT transfer | ~1%–3% | Usually adds a fixed wire fee on top of the spread |
| Debit or credit card abroad | ~1%–3% | Decline dynamic currency conversion (DCC) at the terminal |
| PayPal / marketplace payout | ~2.5%–4% | Markup is baked into the rate, not shown as a separate fee |
| Airport or hotel exchange desk | ~5%–12% | The widest spread — a last resort, not a plan |
The practical takeaway: for a small amount the spread is pocket change, but on a large transfer even one percentage point is real money, so it pays to compare providers against the mid-market rate shown here before you commit.
How the live rates update — and the honest limits
The rates come from the European Central Bank through the Frankfurter API — the same reference source many financial apps use. The ECB publishes its reference rates once per business day, usually around 16:00 CET. This tool fetches them on your first visit of the day and caches the result in your browser’s localStorage for 12 hours, which is why the converter keeps working offline after the first load and why there’s a Refresh button to force a fresh pull. If the API can’t be reached on that first load, the tool falls back to a set of built-in approximate rates and flags them as approximate so you know not to trust them to the last decimal.
A couple of honest limits follow from that design. First, this is an indicative reference rate, not a live dealing rate — it moves once a day, not by the second, so it’s perfect for estimates and invoices but not for timing a trade. Second, the ECB doesn’t publish on weekends or holidays, so a Saturday figure is really Friday’s close. And AED is a special case: the UAE Dirham is officially pegged to the US Dollar at 3.6725, so the tool sets it to that fixed value rather than reading it from ECB data.
A worked example: 100 GBP to INR, and what the spread costs
Under the hood every rate is stored relative to the US Dollar, and any pair is cross-converted through that base. Here’s the exact math, using the tool’s built-in fallback rates purely as a stand-in for live ones (the real numbers shift daily, so treat these as illustrative):
// Every rate is stored relative to USD (base = 1),
// then any pair is cross-converted:
converted = (amount / rate[from]) * rate[to]
// 100 GBP -> INR, illustrative rates only:
// rate[GBP] = 0.79 // 0.79 GBP per 1 USD
// rate[INR] = 83.5 // 83.5 INR per 1 USD
//
// 100 GBP = (100 / 0.79) * 83.5
// = 126.58 USD * 83.5
// ~= 10,570 INR (mid-market)That ~10,570 INR is the mid-market figure the converter would display. Now apply a realistic retail spread: if your card added a 2.5% markup, you’d actually receive about 2.5% less — roughly 10,306 INR — a gap of around 264 INR on a single 100 GBP conversion. Scale the same 2.5% up to a 5,000 GBP invoice and the spread is worth well over a hundred pounds. Same benchmark rate, very different outcome depending on where you exchange.
Common mistakes when converting money
- Assuming the displayed number is what you’ll receive
- It’s the mid-market benchmark. Your bank, card, or app applies a spread on top, so the money that actually lands is a little less.
- Accepting dynamic currency conversion (DCC)
- When a foreign terminal offers to charge you in your home currency, decline it and pay in the local currency — letting your own bank convert is almost always cheaper.
- Reaching for an airport or hotel kiosk
- These carry the widest markup of any channel. A local ATM withdrawal or a low-markup travel card usually beats them handily.
- Trusting a weekend rate as current
- The ECB doesn’t publish on weekends or holidays, so a Saturday or Sunday figure is really Friday’s close, not a fresh quote.
- Reading a cached rate as real-time
- Rates refresh once per business day and are cached for 12 hours. If you need the very latest ECB value, hit Refresh to force a new fetch.
When the reference rate is plenty — and when it isn’t. For estimating a travel budget, sense-checking a price on a foreign store, or setting an invoice line item, the mid-market number here is exactly what you want. But when you’re executing a large FX transfer, hedging, or booking a transaction at a precise settlement rate, don’t treat this as an executable price — get a live quote from your provider. This is a reference, not a trading platform.
Frequently asked questions
From the European Central Bank, delivered through the Frankfurter API — the standard mid-market reference rate. USD is used as the base currency, and AED is pegged to the US Dollar at 3.6725, so it is set to that fixed value rather than fetched.
The ECB publishes its reference rates once per business day, around 16:00 CET. This converter fetches fresh rates on your first visit of the day and caches them in your browser for 12 hours. Click Refresh to force an immediate update. No new rates appear on weekends or holidays.
No. This is the mid-market (interbank) rate — the fair midpoint between buy and sell. Banks, cards, and exchange desks add a margin, often around 1–4% for everyday channels and much more at airport kiosks, so you will usually receive a little less than the figure shown here.
Yes, after the first load. Rates are stored in your browser's localStorage for 12 hours, so revisiting within that window needs no connection. If the rate API is unreachable on a first load, the tool falls back to built-in approximate rates and marks them as approximate.
No. Every conversion runs in your browser in JavaScript. Only the exchange-rate list is fetched once and then cached — the amounts you type never leave your device.
32 currencies, including USD, EUR, GBP, CAD, AUD, INR, JPY, CHF, SGD, AED, NZD, HKD, CNY, KRW, BRL, ZAR and more. Use the search box in the all-currencies table to filter the full list by code or name.