Payments & Fintech

Live exchange rates for your payment platform

Reliable FX and crypto rates for payment businesses: live bid, ask and mid for 150+ currencies and 50+ cryptocurrencies, history back to 1990, and a licence that covers your app, your checkout and your customer documents. One API, easy to integrate, no transaction fees.

Live REST rates Updated --:--:-- UTC
Pair Bid Ask Rate
EUR / USDEuro to US dollar1.112721.112731.11273
GBP / USDPound to US dollar1.331691.331701.33170
USD / SGDUS dollar to Singapore dollar1.282341.282391.28237
USD / CNHUS dollar to offshore yuan6.670996.671136.67106
USD / PHPUS dollar to peso63.861363.861363.8613
USD / MXNUS dollar to Mexican peso18.754418.755318.7548
BTC / USDBitcoin to US dollar75414.8075415.3075415.05

Preview polled every 60 s; your key can poll every second. Next refresh in 60 s.

Licence: in-app and internal use 150+ currencies, 50+ cryptos
client logos client logos client logos client logos

Trusted by top companies & institutions. Read our customer stories

SLA Uptime
99.99%
What you get

Exchange rate data sets, in one API

Everything a payments business needs from a currency data provider, on one key and one agreement.

Live rates

Bid, ask and mid for 150+ currencies, 4,000+ pairs and 50+ cryptocurrencies. Live on every call over REST: poll every minute for a customer dashboard or every second at checkout. WebSocket streaming is available as a separately priced alternative.

Historical rates and closes

Daily open, high, low and close back to 1990, hourly and minute bars, and tick data since 2016. Build averages over any period, reconcile invoices and evidence the rate you showed on any day.

Currency conversion

Convert any amount between two currencies at the live rate in one call, for checkout totals, quotes and invoices. Same symbols and the same key as the rates.

Delivery and licence

REST and WebSocket, SDKs for Python, Kotlin and Go, and a licence that covers display to your signed-in customers in your app, rates on invoices and statements, and all internal use. 99.99% availability SLA.

Why teams choose us for currency data

Built for companies that pay for currency data today and want faster rates, clearer terms and a licence that already covers the app and the back office.

Live on every call, not a top-tier feature

Elsewhere, anything fresher than daily sits behind an enterprise tier or a paid add-on. Here REST is live on every call: poll it every minute for a customer dashboard or every second at checkout, on any agreement.

See the comparison

Streaming, if you prefer pushes to polls

WebSocket pushes every bid and ask tick for quote engines that would rather not poll. It is an alternative to REST, licensed and priced separately, so you only take it if you need it.

See the stream

Bid, ask and mid on every pair

Set your own margin off a real two-way market instead of a single mid-rate. The same bid and ask come back over REST and WebSocket.

See a response

History for reconciliation on the same key

Minute, hourly and daily history back to 1990, plus tick data since 2016, to evidence the rate you showed at the time.

Explore historical data
Architecture

Your platform asks us as often as it needs. Your customers see a fresh rate every time.

You keep your rate service, your margin and your rounding. We replace the feed underneath it.

  • Stamp every rate Each response carries the time it was served, and with per_quote_ts=true every quote carries its own timestamp too, so your page can say "Updated 14:02 UTC" and your logs can prove it.
  • Customer display included Showing our rates to your signed-in customers in the app and on invoices is in the terms. No per-user fee.
  • Bid, ask and mid in one body Quote on the side you deal on and show the mid for comparison, both from the same call and the same timestamp.
TraderMade Live bid, ask and mid 150+ currencies and 50+ cryptos, filtered, one timestamp per response. REST /liveWebSocket
Your rate service Cache until the next poll Your margin and rounding, applied once. If a refresh fails, the last good rate is served with its timestamp. MarginRoundingLast good rate
  • Customer dashboardSame rate, same timestamp
  • CheckoutThe rate the customer accepts
  • Mobile appOne source for every screen
  • Invoice & receiptThe rate that was shown
10pairs per call 1,440requests a day 43,200a month, one server Unlimitedscreens served in between

One call a minute with up to 10 pairs in it: 43,200 calls a month, the equivalent of 432,000 per-currency updates on an API that meters each currency separately. That cadence already passes the 10,000-call entry tier of the request-metered APIs we compared, before a second server or a staging environment.

Getting started

Live in an afternoon

Three steps to put our rates behind your app, checkout and invoicing, with your current feed still running while you check.

Step 1

Map your currency list

ISO codes, the same ones you use today. 150+ fiat currencies plus metals and 50+ cryptos, so the exotic corridors come along.

Step 2

Swap the endpoint

One GET /live per minute, or per second at checkout, replaces your current call. Bid, ask and mid come back in one JSON body with the timestamp.

Step 3

Pick your cadence

Poll every 60 seconds for display and every second for checkout, all over REST. WebSocket streaming is available as an alternative, priced separately.

All tutorials

Compare

What a live rate costs elsewhere

Public plans of two widely used currency data APIs, October 2026, against ours. Lower price, better rate.

Daily
Entry-plan refresh, elsewhere
15min
Top self-serve plan, elsewhere ($4,499 a year)
1s
REST polling, as often as you like, TraderMade
<20ms
WebSocket p99 delivery, TraderMade
Side by side
Public plan pages, checked October 2026
Typical currency data API* TraderMade
Minute-by-minute rates Enterprise tier, or a paid add-on on self-serve plans Included on every agreement
Faster than a minute "Every five seconds" on the premium streaming tiers REST is live on every call, poll it every second. WebSocket ticks in milliseconds as a separately priced alternative
Monthly request cap 10,000 to 150,000 calls on self-serve plans Sized to your refresh, up to 10 pairs per call. Once a minute is about 43,000 calls a month, the equivalent of 432,000 per-currency updates; once a second about 2.6 million calls, whatever your traffic
Two-way prices Mid-rate; bid and ask in beta or on higher tiers Bid, ask and mid on every pair
Showing rates to your customers Internal use on standard plans; wider display by partner or enterprise programme In-app display to signed-in customers and internal use included
Users and entities 1 to 10 per plan Your company, under one agreement
Crypto A separate, higher tier 50+ cryptocurrencies included, against fiat and each other
History Daily rates Minute, hourly and daily since 1990; tick since 2016

Already paying for currency data?

Set up a trial key in a few minutes and run us next to your current feed. When you are ready, send your currency list and renewal date and we will come back with a quote.

Request a quote
Connectivity

Two endpoints and a stream

Everything a customer dashboard, a checkout or an invoicing run needs, on one key.

REST: live rates

Up to 10 pairs in one call, with bid, ask, mid and a timestamp. Poll it every minute or every second, cache the result and serve every customer from the cache.

Live rates docs

REST: convert

Convert an amount between any two currencies at the current rate, for checkout totals, quotes and invoices.

Convert docs

WebSocket streaming

Subscribe once and receive every tick, pushed rather than polled. An alternative to REST for quote engines, licensed and priced separately.

WebSocket docs

What comes back

Up to 10 pairs per request. One object per pair.

  • Bid, ask and mid for every pair you asked for, in one JSON body.
  • A Unix timestamp and a readable time per response, plus a timestamp on every quote when you add per_quote_ts=true, so you can show "Updated 14:02 UTC".
  • The same bid and ask behind the WebSocket feed, so a checkout stream and a dashboard never disagree.
  • Historical endpoints with the same field names, so reconciliation queries reuse your parser.
Field reference
# every 60 seconds, for the whole list
curl "https://marketdata.tradermade.com/api/v1/live\
  ?currency=EURUSD,GBPUSD,USDSGD,USDCNH,USDPHP,USDMXN,BTCUSD\
  &api_key=YOUR_KEY"
GET /api/v1/live · JSON Poll every minute or every second · cache between polls
Proof

Verifiable, not asserted

Customer story

How 3S Money priced cross-border payments on live FX

Live and historical FX through the API automates rate calculations, so every transaction is priced off the market.

Read the 3S Money story
Ready? Book a call, or open the playground first.
Answers

Frequently asked questions

Licence scope, refresh rates, coverage and how moving over works.

Yes, to signed-in customers in your app and at checkout, on their invoices, quotes and statements, and anywhere inside the business. Public web pages are not covered by this licence; ask us if you need one.

As often as the screen needs. A customer dashboard polls /live every 60 seconds, up to 10 pairs per call; a checkout polls every second. Cache the response and serve every customer from the cache. Each response carries the time it was served, and per_quote_ts=true adds a timestamp to every quote, so the screen can show when each rate was last updated.

No. REST is live on every call and can be polled every second, which is how most payment platforms run. WebSocket is an alternative that pushes every bid and ask tick as it happens, with p99 delivery under 20 ms, for quote engines that prefer pushes to polls. It is licensed and priced separately from REST. See the WebSocket docs.

150+ currencies, including the emerging-market corridors that remittance runs through, plus precious metals and 50+ cryptocurrencies: more than 4,000 pairs in total, each requestable directly. The full list is on the symbols page.

Bid, ask and mid on every pair, over REST and WebSocket. Price your margin off the side you deal on and show the mid to customers if that is what your product displays.

Minute, hourly and daily history back to 1990 and tick data since 2016, on the same key. Evidence the rate you showed at any moment for audits, VAT returns or a customer dispute. See historical data.

Yes. Run both feeds side by side during the trial and compare rate by rate. A trial key takes a few minutes to set up; when you are ready to move over, send your currency list and we will come back with a quote.

Need help sizing it?

Tell us your currency list, customer numbers and refresh rate. A market data engineer will come back with licence terms, pricing and a trial key.

Talk to an engineer
Get started

Request pricing & a trial key

Tell us where the rates will be shown, how many currencies you need and how often. We'll come back with licence terms, pricing and a trial key.

Licence terms agreed before launch
Replies within one business day
Please enter your name (at least 2 characters).
Please enter a valid work email address.

Replies within one business day.