Real-Time Currency Exchange Rate API: 628 Pairs, 127 Currencies
Query live exchange rates for majors, crosses and exotics: 628 currency pairs across 127 currencies in one consistent JSON API. Every response includes the current rate plus bid/ask, daily high/low and change, ready to power trading tools, dashboards and multi-currency checkout.
Get Your API Key Discover Docs← All financial data endpoints
Why Use FinanceFlowAPI’s Currency Exchange Rate API?
Most currency data providers either cap you to a handful of major pairs or split majors, crosses and exotics across different plans. The Currency Exchange Rate API normalizes 628 pairs, both directions of every pair (e.g. EUR/USD and USD/EUR independently), into one schema and one authentication method, so a new market or currency corridor is a parameter change, not a new integration.
- One JSON schema for every pair, no per-source parsing.
- 628 pairs across 127 currencies verified live against production, majors through exotics.
- A dedicated catalog endpoint to discover the exact pairs available for a currency, instead of guessing symbols.
- Same account, API key and billing as the rest of FinanceFlowAPI: Commodities, Bonds, Economic Calendar and Economic Indicators data.
Key Capabilities
- Full quote data: every response includes
price,bid,ask,open,high,low,chgandchg_percent, so you get a tradeable spread and daily range in one call. - Trading-session awareness: a
trading_statusfield (open/close) tells you whether the quote reflects a live session or the last close, useful since FX trades roughly 24/5 and goes quiet on weekends. - Query by exact pair or by currency: request one specific pair (
pair=EUR/USD) or every pair involving a currency (currency=USD) from the same endpoint. - Built-in discovery:
currency-cataloglists every supported pair, optionally filtered by currency, so you never have to guess a symbol.
Data Coverage & Trust
| Metric | Value |
|---|---|
| Currency pairs covered | 628 (verified live via currency-catalog, 2026-08-23) |
| Unique currencies | 127, spanning majors (USD, EUR, GBP, JPY…) through regional and exotic currencies |
| Pair directions | Both directions of a pair are separate catalog entries where available (e.g. EUR/USD and USD/EUR), each independently queryable |
| Response format | JSON |
| Historical / time-series data | Not available. This API currently has no historical/date-range endpoint for currency data; currency-spot returns only the latest quote plus intraday high/low/change |
| Authentication | API key, passed as an api_key query parameter |
| Rate limit | Per-minute request limit, varies by subscription plan. See Pricing & Access below |
| Update frequency | Near real-time per the site’s API documentation; currency-spot is served without server-side caching, so freshness tracks the upstream data source directly |
Data Methodology
Currency Exchange Rate API data is aggregated from market data sources and normalized into one consistent quote schema (price, bid/ask, open/high/low, change and trading status) for every supported pair, so your integration doesn’t need a different parser per currency. Sourced from aggregated third-party market and statistical data providers; the specific vendor and full per-pair methodology are not published.
Live API Playground Coming Soon
An interactive API Playground for this endpoint is planned. Until it ships, use the request and response examples below, or your own HTTP client, to try the API live with your key.
Request Example
GET https://financeflowapi.com/api/v1/currency-spot?api_key=YOUR_API_KEY&pair=EUR/USD
Response Example
{
"success": true,
"code": 200,
"message": "OK",
"meta": {
"timestamp": 1787483995,
"request_id": "6a8ad75b71af0"
},
"data": [
{
"pair": "EUR/USD",
"price": "1.1677",
"open": "1.1678",
"bid": "1.1675",
"ask": "1.1678",
"high": "1.1712",
"low": "1.1669",
"chg": "-0.0001",
"chg_percent": "-0.01",
"trading_status": "close",
"last_update": "2026-08-21"
}
]
}
Note: this sample was captured over a weekend, when FX markets are closed, hence trading_status: "close" and a date-only last_update. During an active session, trading_status reads open and last_update includes a time, e.g. 2026-08-21 23:59:51.
API Parameters
currency-spot. Live quote for one pair, or every pair involving one currency:
| Parameter | Required | Description |
|---|---|---|
api_key | Yes | Your FinanceFlowAPI key |
pair | One of pair or currency | Exact pair as returned by currency-catalog, e.g. EUR/USD |
currency | One of pair or currency | A currency code, e.g. USD. Returns every pair where it appears as either side. Cannot be combined with pair in the same request |
currency-catalog. Discover available pairs:
| Parameter | Required | Description |
|---|---|---|
api_key | Yes | Your FinanceFlowAPI key |
currency | No | Filter to pairs involving this currency, e.g. USD. Omit to list all 628 pairs |
Response Schema
currency-spot. Each item in data:
| Field | Type | Description |
|---|---|---|
pair | string | Currency pair, matches catalog spelling |
price | string (numeric) | Latest traded price |
open | string (numeric) | Opening price for the current session |
bid | string (numeric) | Current bid price |
ask | string (numeric) | Current ask price |
high | string (numeric) | Session high |
low | string (numeric) | Session low |
chg | string (numeric) | Absolute price change vs. the session open |
chg_percent | string (numeric) | Percent change vs. the session open: a plain number, no % character |
trading_status | string | open or close: whether the pair is in a live trading session |
last_update | string | When the quote was last updated. Full datetime (YYYY-MM-DD HH:MM:SS) if it happened earlier the same day; falls back to date-only (YYYY-MM-DD) once the last update is more than a day old, e.g. over a weekend, when FX trading is closed |
currency-catalog. Each item in data:
| Field | Type | Description |
|---|---|---|
pair | string | Currency pair, e.g. EUR/USD |
HTTP Status & Errors
| HTTP code | Meaning | When it happens |
|---|---|---|
200 | OK | Request succeeded, data returned |
400 | Bad request | On currency-spot: neither pair nor currency supplied |
400 | Bad request | On currency-spot: pair and currency supplied together: they are mutually exclusive, use only one per request |
403 | Invalid API key or subscription expired | api_key missing, invalid, or your subscription has expired |
404 | Data not found | Unknown or misspelled pair or currency on either endpoint |
429 | Rate limit exceeded | You exceeded the per-minute request limit for your subscription plan |
500 | Internal error | Unexpected server-side failure (rare) |
Code Examples
curl "https://financeflowapi.com/api/v1/currency-spot?api_key=YOUR_API_KEY&pair=EUR/USD"
import requests
url = "https://financeflowapi.com/api/v1/currency-spot"
params = {
"api_key": "YOUR_API_KEY",
"pair": "EUR/USD"
}
response = requests.get(url, params=params)
data = response.json()
print(data)
const params = new URLSearchParams({
api_key: "YOUR_API_KEY",
pair: "EUR/USD"
});
fetch(`https://financeflowapi.com/api/v1/currency-spot?${params}`)
.then(res => res.json())
.then(data => console.log(data));
<?php
$params = http_build_query([
'api_key' => 'YOUR_API_KEY',
'pair' => 'EUR/USD',
]);
$response = file_get_contents("https://financeflowapi.com/api/v1/currency-spot?{$params}");
$data = json_decode($response, true);
print_r($data);
package main
import (
"encoding/json"
"fmt"
"io"
"net/http"
"net/url"
)
func main() {
params := url.Values{}
params.Add("api_key", "YOUR_API_KEY")
params.Add("pair", "EUR/USD")
resp, err := http.Get("https://financeflowapi.com/api/v1/currency-spot?" + params.Encode())
if err != nil {
panic(err)
}
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
var data map[string]interface{}
json.Unmarshal(body, &data)
fmt.Println(data)
}
Use Cases
- Forex trading platforms. Power live rate widgets and trading signals with bid/ask spreads across 628 pairs.
- Multi-currency checkout & invoicing. Convert prices for international customers using real-time exchange rates instead of a stale daily fixing.
- Financial dashboards. Display exchange rates alongside Commodity Price API data for macro/FX context.
- Rate alert bots. Trigger notifications when a pair’s
chg_percentcrosses a threshold.
Who Is This API For?
- Forex traders and trading-bot developers who need live bid/ask quotes across majors and exotics
- Fintech and e-commerce platforms that need real-time currency conversion for global transactions
- Fintech dashboards pairing live FX rates with bond yields or commodity prices via the same api_key: one integration, multiple asset classes
- Publishers and content platforms that need sourced currency rate data
Market Data API
Test Plan
$5.00/month
Historical data, days: 60
Requests limit: 200
Requests Speed limit(per minute): 20
Standard Subscription
$25.00/month
Historical data, years: 5
Requests limit: 10000
Requests Speed limit(per minute): 60
Premium Subscription
$50.00/month
Historical data, years: 20+
Requests limit: 100000
Requests Speed limit(per minute): 120
Limitations
- No historical/time-series data on this API for currencies:
currency-spotreturns only the latest quote plus intraday high/low/change, not a date-range history. pairandcurrencyare mutually exclusive oncurrency-spot: supplying both returns a400.pair/currencymust match the catalog spelling exactly; there is no free-text or fuzzy search.- Endpoint access and your per-minute rate limit depend on your subscription plan.
FAQ
What is a Currency Exchange Rate API?
A Currency Exchange Rate API gives you programmatic access to live foreign exchange quotes (price, bid, ask, daily range and change) for currency pairs, in one machine-readable format instead of scraping a rates page or integrating a broker feed.
How many currency pairs are supported?
628 pairs across 127 currencies, verified live against our production API, covering majors, crosses and exotic/regional currencies. Use currency-catalog to see the full list, optionally filtered by currency.
Is this the same as a forex API?
It covers the same underlying exchange-rate data that forex-focused APIs provide, delivered as simple JSON quotes rather than a full trading/broker platform. This is a good fit if you need rate data, not order execution.
How do I get the rate for both directions of a pair, e.g. EUR/USD and USD/EUR?
Both directions are separate catalog entries where available: query pair=EUR/USD and pair=USD/EUR as two independent requests, or use currency=EUR to get every pair involving EUR in one call.
Do you provide historical exchange rate data?
Not currently. This API has no historical/date-range endpoint for currency data. currency-spot only returns the latest quote plus intraday high/low/change.
How do I get started?
Create a FinanceFlowAPI account and choose a plan: see Pricing & Access above for current plans and limits.
Related APIs
- Commodity Price API: live commodity prices alongside currency rates for cross-asset dashboards.
- Economic Indicators API: see how currency moves relate to inflation and other macro indicators.