# after 22:00 UTC: the day that has just closed, for the whole list
curl "https://marketdata.tradermade.com/api/v1/historical\
?currency=EURUSD,USDJPY,USDCHF,USDCNY,USDINR\
&date=2026-09-30&api_key=YOUR_KEY"
# or your own cut-off: the minute bar at 16:00 London (15:00 UTC in summer time)
curl "https://marketdata.tradermade.com/api/v1/minute_historical\
?currency=EURUSD&date_time=2026-09-30-15:00\
&api_key=YOUR_KEY"
{
"date": "2026-09-30",
"endpoint": "historical",
"quotes": [
{ "base_currency": "EUR", "quote_currency": "USD",
"open": 1.13442, "high": 1.13804, "low": 1.13222, "close": 1.13314 },
{ "base_currency": "USD", "quote_currency": "JPY",
"open": 157.28101, "high": 157.53599, "low": 156.3775, "close": 157.3465 }
...
],
"request_time": "Thu, 01 Oct 2026 16:04:00 GMT"
}
# a quarter of daily closes for a restatement or a period average
curl "https://marketdata.tradermade.com/api/v1/timeseries\
?currency=EURUSD&start_date=2026-07-01&end_date=2026-09-30\
&interval=daily&api_key=YOUR_KEY"
{ "quotes": [
{ "date": "2026-07-01", "open": 1.17210, "high": 1.17694, "low": 1.16982, "close": 1.17380 },
... one row per trading day ...
] }
# an hourly revaluation run: the bar for 15:00 UTC on the day
curl "https://marketdata.tradermade.com/api/v1/hour_historical\
?currency=EURUSD&date_time=2026-09-30-15:00\
&api_key=YOUR_KEY"
# every hourly bar of the day for one pair, in one request
curl "https://marketdata.tradermade.com/api/v1/timeseries\
?currency=EURUSD&start_date=2026-09-30-00:00&end_date=2026-09-30-23:00\
&interval=hourly&api_key=YOUR_KEY"
# swap hour_historical for minute_historical, or interval=minute, for the minute bar
# nightly, from the S/4HANA Cloud tutorial: fetch the close, upload to Market Rates Management
quotes = get("https://marketdata.tradermade.com/api/v1/historical",
currency=PAIRS, date=last_closed_day(), api_key=KEY)["quotes"]
records = [{ "fromCurrency": q["base_currency"], "toCurrency": q["quote_currency"],
"rateType": "M", "value": q["close"],
"effectiveTime": "22:00:00" } for q in quotes]
post(MRM_UPLOAD_URL, token=oauth_token(), json=records)
# S/4HANA's import job collects them on its schedule
GET /api/v1/historical · JSON
Close at 22:00 UTC · same value forever