Public API v1 Beta
BetaA small, stable surface for FX and reference data. All endpoints return a consistent JSON envelope with data and meta.source / meta.last_updated / meta.disclaimer. CORS is open to all origins. A soft per-IP rate limit (60 req/min/instance) returns 429 with Retry-After.
/api/v1/ratesLatest exchange rates for a base currency. Pass an optional `quote` to return a single pair.
| Parameter | Type | Required | Description |
|---|---|---|---|
| base | string | Yes | ISO 4217 base currency code (e.g. USD). |
| quote | string | No | ISO 4217 quote currency code (e.g. EUR). |
{
"data": {
"base": "USD",
"quote": "EUR",
"rate": 0.92,
"as_of": "2026-04-25T06:00:00.000Z"
},
"meta": {
"source": "European Central Bank (via Frankfurter), aggregated by fxmap.app",
"last_updated": "2026-04-25T06:00:00.000Z",
"disclaimer": "Reference data only. Not for financial transactions...",
"attribution": "Required for free use: \"Powered by fxmap.app\"."
}
}/api/v1/currenciesList of ISO 4217 currencies with display names, symbols, and the countries that use them.
{
"data": [
{
"code": "EUR",
"name": "Euro",
"symbol": "€",
"countries": ["AD", "AT", "BE", "..."]
}
],
"meta": {
"source": "ISO 3166-1 / ISO 4217, ...",
"last_updated": "2026-02-27",
"count": 168,
"disclaimer": "...",
"attribution": "..."
}
}/api/v1/countriesList of ISO 3166-1 countries with their primary currency.
{
"data": [
{
"iso2": "JP",
"iso3": "JPN",
"name": "Japan",
"currency_code": "JPY",
"currency_name": "Yen",
"currency_symbol": "¥"
}
],
"meta": { "source": "...", "last_updated": "2026-02-27", "count": 249 }
}/api/v1/country-currencyLookup the primary currency for a single country.
| Parameter | Type | Required | Description |
|---|---|---|---|
| country | string | Yes | ISO 3166-1 alpha-2 or alpha-3 country code (e.g. JP or JPN). |
{
"data": {
"country": { "iso2": "JP", "iso3": "JPN", "name": "Japan" },
"currency": { "code": "JPY", "name": "Yen", "symbol": "¥" }
},
"meta": { "source": "...", "last_updated": "2026-02-27" }
}/api/v1/money-strengthRanks countries by purchasing power for a given base currency. Combines latest FX rates with a PPP-style affordability index.
| Parameter | Type | Required | Description |
|---|---|---|---|
| base | string | Yes | ISO 4217 base currency code (e.g. USD). |
| period | string | No | Change window: day1 | day7 (default) | day30. |
| region | string | No | Filter to one region: Africa | Asia | Europe | North America | South America | Oceania. |
| limit | number | No | Cap the number of countries returned (1–250). |
{
"data": [
{
"country": { "iso2": "VN", "name": "Vietnam", "region": "Asia" },
"currency": { "code": "VND", "name": "Vietnamese Dong" },
"rate": 25400.5,
"affordability": 2.1,
"change_pct": 0.45,
"score": 2.1
}
],
"meta": {
"source": "European Central Bank (via Frankfurter), aggregated by fxmap.app",
"last_updated": "2026-04-25T06:00:00.000Z",
"base": "USD",
"period": "day7",
"region": null,
"count": 174
}
}Code Examples
Fetching the latest USD→EUR rate from the v1 beta:
curl "https://fxmap.app/api/v1/rates?base=USD"e=EUR"const res = await fetch(
"https://fxmap.app/api/v1/rates?base=USD"e=EUR",
);
if (!res.ok) throw new Error(`HTTP ${res.status}`);
const { data, meta } = await res.json();
console.log(`1 ${data.base} = ${data.rate} ${data.quote}`);
console.log("source:", meta.source);import requests
res = requests.get(
"https://fxmap.app/api/v1/rates",
params={"base": "USD", "quote": "EUR"},
timeout=10,
)
res.raise_for_status()
payload = res.json()
print(f"1 {payload['data']['base']} = {payload['data']['rate']} {payload['data']['quote']}")
print("source:", payload["meta"]["source"])Attribution Requirement
Free use of the v1 API requires a visible attribution link to fxmap.app. Acceptable formats include “Powered by fxmap.app”, “FX data: fxmap.app”, or an equivalent link near the data. Exchange rates ultimately come from the European Central Bank via Frankfurter — please credit them where appropriate.
Quick Start
# Get latest USD exchange rates
curl https://fxmap.app/api/rates?base=USD
# Get 30-day EUR/GBP history
curl "https://fxmap.app/api/rates/history?base=EUR&target=GBP&days=30"
# Get crypto prices in EUR
curl https://fxmap.app/api/crypto?vs=eur
# Get purchasing power indexes
curl https://fxmap.app/api/bigmacRate Limits
| Tier | Limit | Auth | Features |
|---|---|---|---|
| Free | 100 requests/day | No key required | All endpoints, 1-hour cache |
| Pro | 1,000 requests/day | API key | Priority access, extended history |
Exceeding the limit returns 429 Too Many Requests with a Retry-After header. All responses include Cache-Control headers for client-side caching.
API Endpoints
/api/ratesGet latest exchange rates for a base currency. Returns rates for 161 currencies sourced from the European Central Bank.
| Parameter | Type | Required | Description |
|---|---|---|---|
| base | string | No | Base currency code (default: USD). Example: EUR, GBP, JPY |
{
"base": "USD",
"asOf": "2026-04-08T06:00:00.000Z",
"rates": {
"EUR": 0.92,
"GBP": 0.79,
"JPY": 151.25,
...
}
}/api/rates/historyGet historical exchange rates for a currency pair over the past 30 days. Returns daily data points for sparkline charts.
| Parameter | Type | Required | Description |
|---|---|---|---|
| base | string | Yes | Base currency code. Example: USD |
| target | string | Yes | Target currency code. Example: EUR |
| days | number | No | Number of days (default: 30, max: 30) |
{
"base": "USD",
"target": "EUR",
"history": [
{ "date": "2026-03-09", "rate": 0.9185 },
{ "date": "2026-03-10", "rate": 0.9201 },
...
]
}/api/rates/moversGet the top gaining and losing currencies over recent periods. Useful for market overview dashboards.
| Parameter | Type | Required | Description |
|---|---|---|---|
| base | string | No | Base currency (default: USD) |
| limit | number | No | Number of results per category (default: 5) |
{
"base": "USD",
"gainers": [
{ "currency": "TRY", "change": 2.15, "rate": 32.45 },
...
],
"losers": [
{ "currency": "JPY", "change": -1.82, "rate": 151.25 },
...
]
}/api/rates/changesGet percentage changes for currencies over 1-day, 7-day, and 30-day periods. Supports multi-period data in a single request.
| Parameter | Type | Required | Description |
|---|---|---|---|
| base | string | No | Base currency (default: USD) |
| multi | boolean | No | Return 1d, 7d, 30d changes (default: false) |
{
"base": "USD",
"changes": {
"EUR": { "day1": 0.12, "day7": -0.45, "day30": 1.23 },
"GBP": { "day1": -0.08, "day7": 0.31, "day30": 0.67 },
...
}
}/api/cryptoGet cryptocurrency prices in any fiat currency. Covers major coins including Bitcoin, Ethereum, and more.
| Parameter | Type | Required | Description |
|---|---|---|---|
| vs | string | No | Fiat currency for prices (default: usd) |
{
"vs_currency": "usd",
"prices": {
"BTC": { "price": 67500.00, "change_24h": 2.15 },
"ETH": { "price": 3450.00, "change_24h": -0.82 },
...
}
}/api/metalsGet precious metal prices (Gold, Silver, Platinum, Palladium) per troy ounce.
| Parameter | Type | Required | Description |
|---|---|---|---|
| vs | string | No | Fiat currency (default: USD) |
{
"vs_currency": "USD",
"metals": {
"XAU": { "price_per_oz": 2345.67, "name": "Gold" },
"XAG": { "price_per_oz": 27.89, "name": "Silver" },
...
}
}/api/oilGet crude oil prices (WTI and Brent) per barrel.
{
"prices": {
"WTI": { "price_per_barrel": 78.50, "name": "WTI Crude" },
"BRENT": { "price_per_barrel": 82.30, "name": "Brent Crude" }
}
}/api/bigmacGet Big Mac Index data — burger prices in local currencies across 30+ countries for purchasing power comparison.
{
"indexes": [
{
"unit": "Big Macs",
"label": "Big Mac Index",
"icon": "🍔",
"prices": { "USD": 5.69, "EUR": 5.28, "JPY": 450, ... }
},
...
]
}Use Cases
🛒 E-commerce
Display local prices for international customers. Convert product prices to the visitor's currency in real time.
✈️ Travel Apps
Show exchange rates and purchasing power for travel destinations. Help users budget their trips with real price data.
📈 Financial Dashboards
Build portfolio trackers with reference forex, crypto, and commodity data. Track 161 currencies, metals, and oil prices.
📰 Content & Media
Auto-generate financial content from market data. Show daily movers, trends, and purchasing power comparisons.
Ready to Build?
Start using the API immediately — no signup required for the free tier. Need more requests? The Pro tier is coming soon with API key access and extended historical data.