Genuine rate changes for one product, newest first. Pass sourceKey, or provider and accountName.
Market
Assistant
Cost
2 DS Credits
per request (each page)
Scope
history:read
Same data as
/api/rate-history
the DepositScout website
GET https://depositscout.com/api/developer/v1/history
| Parameter | In | Type | Example | Description |
|---|---|---|---|---|
| sourceKey | query | string | — | Stable product id from /rates. |
| provider | query | string | — | Provider name, used with accountName when there is no sourceKey. |
| accountName | query | string | — | Account name, used with provider. |
| limit | query | integer | 25 | Page size. Larger values are clamped to the maximum and the applied value is returned in meta.limit. |
| cursor | query | string | — | Opaque cursor from the previous page's meta.nextCursor. |
| fields | query | string | provider,accountName,rate | Comma-separated list of fields to include in each item. |
curl "https://depositscout.com/api/developer/v1/history" \
-H "Authorization: Bearer $DS_API_KEY"Runs against this site. A ds_test_ key is free and returns sample data in the real shape; a live key returns real data and spends credits. The key is kept in this tab only.
curl "/api/developer/v1/history" \
-H "Authorization: Bearer ds_test_…"data is an array — one item per row, with paging in meta. Every 2xx also sets X-DS-Request-Id, X-DS-Credits-Charged, X-DS-Credits-Balance, the X-RateLimit-* trio and an ETag.
{
"data": [
{
"…": "one item per row"
}
],
"meta": {
"requestId": "req_7f3a9c2d1b4e5a6f7c8d",
"generatedAt": "2026-09-21T09:00:00.000Z",
"creditsCharged": 2,
"creditsBalance": 199,
"limit": 10,
"nextCursor": "MToyNQ",
"total": 412,
"attribution": "Rates powered by DepositScout — depositscout.com"
}
}Provider logos: providerLogoUrl. An absolute, public HTTPS URL for the provider's logo that you can load directly (usually SVG; PNG or JPG for a few providers), or null when the provider has no logo.
Errors follow the shared error contract. Back to all endpoints.