---
title: "Forex API: Real-Time FX Rates for 160+ Currencies"
description: "Forex API with real-time mid-market FX rates for 160+ currencies, refreshed every 60 seconds, plus daily history and official central-bank fixings. REST + JSON/CSV/XML/XLSX, SDKs for JavaScript, Python, PHP, Go and Rust. Free key, no card."
canonical: https://allratestoday.com/forex-api/
source: AllRatesToday (https://allratestoday.com/) — Markdown mirror of the page above; index of all pages at https://allratestoday.com/llms.txt
generated: 2026-10-24T03:07:45.072Z
---

# Forex API: Real-Time FX Rates for 160+ Currencies

Forex API with real-time mid-market FX rates for 160+ currencies, refreshed every 60 seconds, plus daily history and official central-bank fixings. REST + JSON/CSV/XML/XLSX, SDKs for JavaScript, Python, PHP, Go and Rust. Free key, no card.

By [Madhushan](https://allratestoday.com/authors/madhushan/), Founder & Lead Developer

   **In one line:** one REST endpoint for live mid-market FX rates on 160+ currencies, refreshed every 60 seconds and timestamped, with daily history on paid plans and the official central-bank fixings keyless. [Get a free key](https://allratestoday.com/register) — no card.

# Forex API — Real-Time FX Rates, History and Official Fixings

The AllRatesToday forex API returns the mid-market rate for any pair of 160+ currencies, the rate on a past date, a daily time series, and the rate a central bank published for a given day. The responses are flat JSON, or CSV, XML and Excel on the same URL, and there are official SDKs for [JavaScript, Python, PHP, Go and Rust](https://allratestoday.com/docs/sdks/).

## What the forex API returns, and what it does not

| You get | You do not get |
| --- | --- |
| Mid-market rates for 160+ currencies, any pair, any direction | Bid/ask spreads or dealable quotes |
| A refresh every 60 seconds with a `time` field on every rate | Tick-by-tick streaming or a WebSocket feed |
| Rates on a date and daily series over the last 365 days (paid) | Intraday OHLC candles |
| Official fixings from [122 central banks and 4 tax authorities](https://allratestoday.com/central-bank-rates-api/institutions/), keyless | Order books, volumes or futures |
| JSON, CSV, XML and XLSX from the same endpoints | Execution — this is data, not a broker |

That makes it the right fit for pricing, conversion, invoicing, reporting, dashboards and analytics on daily data. If you are building a trading engine that needs dealable quotes or sub-second ticks, you need a broker or market-data vendor instead, and this page will not pretend otherwise.

## Quick start

1. [Create a free account](https://allratestoday.com/register/) and copy the key that begins with `art_live_`.
2. Request one or several pairs in a single call:

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

```
[
  { "rate": 1.12145,  "source": "EUR", "target": "USD", "time": "2026-10-19T14:27:01+0000" },
  { "rate": 0.84215,  "source": "EUR", "target": "GBP", "time": "2026-10-19T14:27:01+0000" },
  { "rate": 177.675,  "source": "EUR", "target": "JPY", "time": "2026-10-19T14:27:01+0000" }
]
```

One row per target, each with the rate and the minute it belongs to. Add `&amount=10000` to have the API return the converted figure as well, and `&format=csv` for a file.

With the SDKs:

```
import AllRatesToday from '@allratestoday/sdk';

const fx = new AllRatesToday({ apiKey: process.env.ALLRATES_API_KEY });

// Latest FX rates, several pairs in one call
const { rates } = await fx.latest({ base: 'EUR', symbols: ['USD', 'GBP', 'JPY'] });

// Convert an amount at the live rate
const { result } = await fx.convert('EUR', 'USD', 10_000);
```

```
from allratestoday import AllRatesToday

fx = AllRatesToday(api_key="art_live_your_key")

data = fx.latest(base="EUR", symbols=["USD", "GBP", "JPY"])
print(data["rates"])            # {'USD': 1.12145, 'GBP': 0.84215, 'JPY': 177.675}

quote = fx.convert("EUR", "USD", 10_000)
print(quote["result"], quote["rate"])
```

## FX history and time series

A dated lookup returns the mid-market rate for that day; a range returns one row per day, ready for a chart or a month-end revaluation. History is on the [paid plans](https://allratestoday.com/pricing/) and is metered by volume (one unit per currency per month of data), so a year of EUR/USD is twelve units, not 365 calls.

```
# One pair, one row per day (paid plans)
curl "https://allratestoday.com/api/v1/rates?source=EUR&target=USD&from=2026-09-01&to=2026-09-30" \
  -H "Authorization: Bearer art_live_your_key"

# Or as a spreadsheet
curl "https://allratestoday.com/api/v1/rates?source=EUR&target=USD&from=2026-09-01&to=2026-09-30&format=xlsx" \
  -H "Authorization: Bearer art_live_your_key" -o eurusd-september.xlsx
```

## Official fixings next to the market rate

Most forex APIs stop at the market rate. Finance teams also need the number a central bank published for the day, because that is the one tax, customs and audit rules cite. The same API serves the latest table from [122 central banks and 4 tax authorities](https://allratestoday.com/central-bank-rates-api/institutions/) with no key, and dated tables and history on the [Official Rates plan](https://allratestoday.com/pricing/#official).

```
# The ECB's daily fixing — no key
curl "https://allratestoday.com/api/open/central-bank/ecb"
```

Swap `ecb` for `fed`, `boe`, `rbi`, `boj` or any code on the [central bank rates API](https://allratestoday.com/central-bank-rates-api/) page. The difference between the two numbers, and when each applies, is explained in [official vs market rate](https://allratestoday.com/blog/official-exchange-rate-vs-market-rate/).

## Endpoints

| Endpoint | Returns | Key |
| --- | --- | --- |
| `/api/v1/rates?source=&target=` | Live mid-market rate for one or many pairs; add `amount` to convert | Free |
| `/api/v1/rates?…&time=YYYY-MM-DD` | The rate on a past date | Paid |
| `/api/v1/rates?…&from=&to=` | Daily time series for one pair | Paid |
| `/api/v1/symbols` | The 160+ supported currencies with names and symbols | Free |
| `/api/open/central-bank/{bank}` | Latest official table from a central bank or tax authority | None |
| `/api/v1/central-bank/{bank}/history` | Official rates back to the bank's first table | Official plan |
| `/api/open/geo` | The caller's country and currency from their IP | None |

Every table endpoint accepts `&format=json|csv|xml|xlsx`. The full reference is in the [documentation](https://allratestoday.com/docs/) and the [OpenAPI spec](https://allratestoday.com/api-reference/); the [playground](https://allratestoday.com/playground/) runs any of these in the browser with your key.

## Free tier and plans

- **Free:** no card. Live rates, conversion and symbols. Personal and evaluation use.
- **Small to Large:** from €4.99 a month for 5,000 requests, commercial use, dated history and time series. See [pricing](https://allratestoday.com/pricing/).
- **Official Rates:** dated central-bank tables and full history for finance teams.
- **Trial key for agents and scripts:** `POST /api/agent/keys` issues a 100-call, 7-day key without a signup form.

Uptime and latency are published on the [status page](https://status.allratestoday.com/) and measured hourly on the [live benchmark](https://allratestoday.com/benchmarks/exchange-rate-api/).

## Choosing a forex API

The honest comparisons are on their own pages: [what each free forex API tier really gives you](https://allratestoday.com/best/best-free-forex-api/), the [real-time forex API ranking](https://allratestoday.com/blog/best-realtime-forex-api-2026/), and the [best exchange rate APIs](https://allratestoday.com/best/best-exchange-rate-api/) roundup across ten providers. Our own fit is above; if you need ticks or spreads, those pages name who does.

## Frequently asked questions

### Is this a real-time forex API?

Rates are mid-market and refresh every 60 seconds, and every response carries the time the rate belongs to. That is real-time for pricing, conversion, dashboards and reporting. It is not a tick feed: there is no streaming connection and no bid/ask or order-book data.

### Is there a free forex API tier?

Yes. A free key is non-commercial and needs no credit card. Live rates and conversion work on the free plan; dated history and time series need a paid plan, from €4.99 a month.

### Which currencies does the forex API cover?

Over 160 currencies, every pair in either direction, with the list available from /api/v1/symbols. Official central-bank tables add the currencies each bank publishes, including some that have no liquid market quote.

### How far back does FX history go?

Market-rate history is available by date or as a daily series over the last 365 days on paid plans. Official central-bank history goes much further: the ECB reference rate back to 1999, for example.

### What is the difference between the forex rate and the official rate?

The forex rate is what the market trades at now; it moves all day. The official rate is the figure a central bank publishes once a day and never revises. Pricing uses the first; tax, customs, accounting and contracts usually cite the second. The API returns both.

### Can I use the forex API from a browser?

The keyed market-rate endpoints do not send CORS headers, so call them from your server. The keyless official-rate endpoints are CORS-open and can be fetched directly from a web page.

## Start with the forex API

Free key in 30 seconds. 160+ currencies, 60-second refresh, no credit card.

 [Get a free API key](https://allratestoday.com/register) [Read the docs](https://allratestoday.com/docs/)

## Related

  [Exchange rate APILive table, endpoints and pricing](https://allratestoday.com/exchange-rate-api/) [Free currency APIGet a key and make the first call](https://allratestoday.com/free-currency-api/) [Central bank rates APIOfficial fixings from 122 banks](https://allratestoday.com/central-bank-rates-api/) [Free forex APIs comparedWhat each free tier gives you](https://allratestoday.com/best/best-free-forex-api/) [Real-time forex APIs 2026Ranked, with refresh rates](https://allratestoday.com/blog/best-realtime-forex-api-2026/) [Official SDKsJavaScript, Python, PHP, Go, Rust, React](https://allratestoday.com/docs/sdks/) [Currency fluctuation APIHow far a pair moved over a period](https://allratestoday.com/currency-fluctuation-api/) [API documentationEvery endpoint and parameter](https://allratestoday.com/docs/)
