Rate history
Read one asset and source across a bounded date window for charts, analysis and reconciliation.
GET
/v1/rates/historyReturns newest records first. The compatibility alias /v1/rates/historical resolves to the same contract.
Parameters
| Parameter | Type | Description |
|---|---|---|
currency required | string | One uppercase asset code, for example EUR. |
source optional | string | Rate family: parallel, official or transfer. Default:parallel |
from optional | date | Inclusive start date in YYYY-MM-DD format. Defaults to 30 days before the request. |
to optional | date | Inclusive end date in YYYY-MM-DD format. Defaults to the current date. |
limit optional | integer | Page size from 1 to 1,000 records. Default:250 |
cursor optional | string | Opaque continuation cursor returned as meta.nextCursor. |
Pagination
When meta.nextCursor is non-null, repeat the same request parameters and add that value as cursor.
curlNext page
curl "https://api.exchangedz.com/v1/rates/history?currency=EUR&source=parallel&from=2026-07-01&to=2026-08-24&limit=250&cursor=eyJkYXRlIjoi..." \
-H "Authorization: Bearer $EXDZ_API_KEY" Cursors are opaque. Do not decode, modify or reuse one with different filters.
Example request
curlEUR parallel history
curl "https://api.exchangedz.com/v1/rates/history?currency=EUR&source=parallel&from=2026-07-01&to=2026-08-24&limit=250" \
-H "Authorization: Bearer $EXDZ_API_KEY" Response
json200 OK
{
"data": [
{
"currency": "EUR",
"source": "parallel",
"quote": "DZD",
"buy": 274.67,
"sell": 277.17,
"updatedAt": "2026-08-24T00:00:00.000Z"
}
],
"meta": {
"requestId": "req_01J6EXDZ...",
"count": 1,
"currency": "EUR",
"source": "parallel",
"quote": "DZD",
"from": "2026-07-01T00:00:00.000Z",
"to": "2026-08-24T23:59:59.999Z",
"limit": 250,
"nextCursor": null
}
}