Intraday exchange rate API
Pull timestamped market observations for supported pairs over REST. Use a Pro API key for this 15-minute USD/JPY request.
Try a 15-minute USD/JPY observation
curl "https://api.exchangerate.dev/v1/timeseries?base=USD&symbols=JPY&interval=15m&from=2026-09-14T12:00:00Z&to=2026-09-14T12:00:00Z" -H "Authorization: Bearer YOUR_API_KEY"{
"result": "success",
"base": "USD",
"symbols": ["JPY"],
"interval": "15m",
"from": "2026-09-14T12:00:00Z",
"to": "2026-09-14T12:00:00Z",
"data": [{
"timestamp": "2026-09-14T12:00:00Z",
"effective_at": { "JPY": "2026-09-14T12:14:58.972181Z" },
"rates": { "JPY": 154.582 },
"source": "live",
"source_type": "market",
"market_session": "open",
"derived_symbols": []
}],
"next_cursor": null,
"has_more": false,
"notice": "Indicative rates, not for settlement."
}This fixed example was observed on 2026-09-15 for the 2026-09-14 12:00 UTC bucket. The rate is indicative. timestamp is the bucket start; effective_at is the observation time.
Intervals and available history
The supported market intervals are 1m, 5m, 15m, 1h and 4h. The 1d interval reads daily reference history. Market collection began on 2026-09-14; 1m is retained for 30 days, while coarser intervals have no scheduled expiry. Retention does not mean that every pair already has that much history.
| interval | Unique pairs | Maximum request window |
|---|---|---|
1m | 221 | 7 d |
5m | 221 | 31 d |
15m | 221 | 93 d |
1h | 221 | 366 d |
4h | 209 | 1830 d |
1d | 10296 | 1830 d |
Missing observations and crosses
Intraday gaps remain gaps. Cross rates require real closing ticks from both USD legs in the same UTC interval, at most five seconds apart. effective_at is the older observation time. The current bucket can change; 1d remains daily reference history.
A supported window without observations returns HTTP 200 with data: [], has_more: false and next_cursor: null. An unknown interval returns unsupported_interval. A request containing an unsupported pair returns HTTP 400 unsupported_pair_interval with rejected_pairs; the whole request is rejected.
Authentication and commercial use
Plus: 1h and 4h for 30 days. Pro: 1m to 4h, full depth. Both need a key. Anonymous latest and 30-day daily history: 10 requests per minute, 100 per hour per IP.
| Plan | Calls per month | Commercial use |
|---|---|---|
| Free | 5,000 | Display with visible linked credit |
| Basic | 100,000 | Yes |
| Plus | 300,000 | Yes |
| Pro | 1,000,000 | Yes |