Toolvore

Currency Converter

Convert between 160+ world currencies at live exchange rates.

This tool sends your query through our server to look up live data. We don't store it, and no files are ever uploaded — though the upstream service answering the lookup sees the query too.

A money converter that turns an amount from one currency into another at the day's published forex rate, showing the converted figure, the pair's rate to four decimal places, and the timestamp of the feed it came from.

How to use it

  1. 1Type the amount in the left-hand box — it is a number field, so 1250.50 is accepted.
  2. 2Pick the From and To codes; the two lists are built from whichever base is currently loaded, and changing From reloads the whole table.
  3. 3Press the ⇄ button between the selects to reverse the pair, or copy the formatted result beneath.

Example

Input
1 USD → EUR
Output
The converted amount formatted as euros, the line "1 USD = …" to four decimal places under it, and an "Updated …" timestamp

The multiplication happens in the page, so editing the amount re-renders instantly, and changing To costs nothing; changing From does trigger a fetch, because every rate is quoted against the base. The figures are the once-a-day open.er-api.com feed cached for an hour — a sound reference rate, not the one a bank or card issuer will actually give you.

What happens to your data

Only the three-letter base code is sent: the request is /api/currency?base=USD, and the amount you type never leaves your tab, because the conversion is one multiplication against the rate table the route hands back. The code is tested against /^[A-Z]{3}$/ before anything upstream is called, so a malformed one is answered with "Invalid base currency code." locally. Each base's table is cached for an hour, and no record of the pair or the amount is kept.

Last updated August 2026

An invoice arrives in dollars and your accounts are kept in pounds. A supplier quotes in euros and you want to know whether that beats the quote next to it. A hotel abroad shows a price with more zeros than you are used to. All of these want the same thing — a neutral figure, quickly.

Work out which of two questions you are asking before you read any number, because they have different answers. The first is what an amount is worth: the mid-market rate, the midpoint between buying and selling prices on the wholesale market, and the figure meant whenever a news report says the pound is at 1.27. The second is what you will actually be charged, which is that rate plus whatever your bank, card issuer or payment platform takes. No converter can tell you the second, because it depends on your provider and on when the transaction settles.

You are getting the first kind here, with limits worth knowing before you rely on it. There is no date field, so it cannot tell you what a currency was worth last March; historical conversion runs on different data. Currencies are named by their three-letter ISO 4217 codes rather than by symbols or country names, so you are looking for CHF rather than Swiss franc.

The mistake that costs people money is converting an old invoice at today's rate. Bookkeeping and tax rules generally want the rate that applied on the date of the transaction, and a figure taken three weeks later will quietly disagree with the one your accountant expects.

How it works

Toolvore fetches one rate table at a time rather than one rate. Choosing a From currency sends its three-letter code to a small route on this site, which checks the code is exactly three letters, asks open.er-api.com for that currency's latest table, and hands back the whole set of rates with the feed's own last-updated timestamp. Everything after that happens in the page: the dropdowns are filled from the keys of that table sorted alphabetically, and your figure becomes a result through one multiplication, so changing the amount or the target currency needs no further request. A table is only used for a conversion when its base matches the currency currently selected, which stops a slow reply for an old base being read under a new heading. The weakness is freshness: the feed publishes once a day and each table is cached for an hour, so these are reference figures rather than live dealing rates — fine for a budget line, useless for anything turning on the price in the next few minutes. There is no history, so a past date cannot be answered at all.

Common use cases

  • Checking a supplier invoice against your own currency before you pay it
  • Sanity-checking a hotel or flight price quoted abroad
  • Comparing two quotes that arrived in different currencies
  • Putting a rough figure into a budget or an expense estimate
  • Working out what a foreign salary or freelance rate is worth
  • Reading a price on a shop that will not switch currency for you

Frequently asked questions

What is the mid-market exchange rate?

It is the midpoint between the price at which banks buy a currency and the price at which they sell it, on the wholesale market where currencies actually trade. Nobody in retail is offered it. What you are given is that midpoint with a margin added — a card issuer might take a fraction of a percent, an airport bureau several percent, and a bank transfer often buries its margin in the rate rather than showing a fee. That is why a mid-market figure is a good reference and a poor prediction of your statement. To compare providers honestly, measure each quoted rate for the same pair against the mid-market number, then add any flat fee.

A card machine abroad offers to charge me in my own currency — should I accept?

Almost always no. That offer is dynamic currency conversion: the terminal, not your card network, is choosing the rate. The margin is set by the merchant's processor and tends to be worse than your bank's, and the familiar-looking figure on screen is the sales pitch. Choose the local currency and let your card issuer convert, which is usually cheaper even after a foreign transaction fee. The same choice turns up at foreign checkouts online and on cash machines abroad. If a machine converts without asking, the receipt shows both amounts and the rate it used, which you can check afterwards.

Do exchange rates change at weekends?

The market that sets them closes late on Friday and reopens on Sunday evening, so published rates barely move across a weekend and most feeds carry Friday's figures forward. That does not make a weekend transaction predictable. Card networks apply their rate on the day the payment is processed, which can be a working day or two after you spent the money, so a Saturday purchase may settle at a rate you never saw. Some providers widen their margin over the weekend because they are carrying the risk of that gap. For a large transfer, the difference between Friday and Monday is worth waiting for.

Which exchange rate should I use for an invoice or a tax return?

Most tax authorities work from the rate in force on the date of the transaction rather than the date you do the paperwork. What counts as an acceptable source varies: several publish their own monthly or annual average rates that businesses are allowed to use for reporting, and applying one official source is usually safer than picking a favourable figure from a converter. Consistency is the part that matters — changing method between periods is what draws questions. For anything material, or where the gain or loss on the currency movement itself has to be reported, check the rule for your own jurisdiction.

Why is a currency missing from the list?

The lists are built from whatever the rate feed publishes, so a currency absent from that table cannot be picked. A few categories tend to be missing or unreliable: currencies under strict capital controls, where an official rate and a street rate differ widely and only the official one is published; currencies of very small economies; and anything recently redenominated, where old and new units circulate under similar names. Precious metals and cryptocurrencies sit outside standard forex tables altogether. The codes follow ISO 4217, which explains the odd-looking ones — CHF for the Swiss franc comes from Confoederatio Helvetica, the country's Latin name.

Does the amount I type get sent or stored anywhere?

The amount never leaves the page. The only thing sent anywhere is the three-letter code of the currency you are converting from, passed to this site's own route so it can request that base's table; the currency you are converting to is picked from a table you already hold, so it does not travel either. The conversion is one multiplication done in your browser. There is no account, nothing is written to storage, and reloading the tab returns you to the default pair. Each base's table is cached for an hour and shared between visitors, so much of the time nothing is asked upstream at all.

Why do some currencies have no decimal places?

Two decimal places is a convention rather than a rule. ISO 4217 gives each currency a number of minor units: most have two, the Japanese yen and Korean won have none, and the Kuwaiti, Bahraini and Tunisian dinars have three. Formatting here follows your browser's locale and allows up to four decimal places, so a converted figure can carry more precision than the currency is ever paid in. The extra precision matters on small amounts, where one unit converted into a currency worth far more per unit would otherwise round away to nothing. When recording a real payment, round to the currency's own minor units.

Is converting one way the same as the inverse of converting back?

On a mid-market table, near enough. Each table is quoted against a single base, so changing the From currency loads a different table rather than flipping a number, and the two directions should multiply back to roughly one — small discrepancies come from rounding at the fourth decimal place rather than from anything meaningful. The real market is not symmetric, because there are two prices, a bid and an ask, and you cross the spread whichever way you go. That is why changing money into another currency and straight back leaves you with less than you started with even when the market has not moved.