GET
/fx/rates/{from}/{to}/historyList stored rate history for a pair
The tenant's stored rate history for a pair (newest first).
Parameters
| Name | In | Type | Description |
|---|---|---|---|
fromrequired | path | string | Base currency. |
torequired | path | string | Quote currency. |
limit | query | integer default: 25 · max: 100 | Items per page (max 100). |
cursor | query | string | Cursor for pagination. |
Responses
200Successful operation
{
"success": true,
"meta": {
"pagination": {
"limit": 25,
"has_more": true,
"next_cursor": "eyJpZCI6IjAxOWRjZjg3LTUwN2ItNzE5OS05ZTE1LWZhY2YxNjVlNzRjMSJ9"
}
},
"data": [
{
"id": "01997c1e-4d2a-7c3e-9a1b-2f0e8c6d4b5a",
"base_currency": "EUR",
"quote_currency": "USD",
"rate": "1.081000000000000000",
"inverse_rate": "0.925069380203515263",
"source": "manual",
"effective_at": "2026-01-15T10:30:00Z",
"created_at": "2026-01-15T10:30:00Z"
}
]
} 401Unauthenticated
{
"success": false,
"message": "Validation failed",
"code": "VALIDATION_ERROR"
} 422Invalid currency
{
"success": false,
"message": "Validation failed",
"code": "VALIDATION_ERROR"
} Examples
curl https://ledga.io/api/v1/fx/rates/{from}/{to}/history \
-H "Authorization: Bearer sk_xxxxxxxx_your_secret"