---
title: "Get historical balance snapshots"
method: GET
path: "/api/v1/balances/history"
tags: ["Balances"]
---

# Get historical balance snapshots

`GET /api/v1/balances/history`

**Rate limit:** 60 requests per 60 seconds. This is the **default shared quota** — it is shared with every other endpoint that has no dedicated limit, so requests across those endpoints all draw from the same budget.

---

Returns end-of-day balance snapshots across all account types for the authenticated user. History is available for the last 12 months. The maximum date range per request is 365 days.

## Query parameters

- `displayCurrency` string
- `fromDate` string, date
- `toDate` string, date
- `accountTypes` string

## Headers

- `x-request-id` string, uuid, required
- `x-api-key` string, password, required
- `x-user-key` string, password, required

## Response `200`

Historical balance snapshots retrieved successfully.

- GetHistoricalBalancesResponse — Historical end-of-day balance snapshots for the authenticated user.
  - `gcid` integer — The user's global customer ID.
  - `displayCurrency` string, nullable — ISO 4217 currency code used for display values.
  - `fromDate` string, date — Start of the returned date range (inclusive, ISO 8601).
  - `toDate` string, date — End of the returned date range (inclusive, ISO 8601).
  - `snapshots` HistoricalDailySnapshotData[], nullable — End-of-day balance snapshots, one entry per day in the requested range.
    - `date` string, date — The snapshot date (ISO 8601).
    - `totalCurrencyIso` string, nullable — ISO 4217 currency code for the total figures in native currency.
    - `totalCash` number, double — Total cash across all accounts in native currency.
    - `totalInvestedAmount` number, double — Total invested amount across all accounts in native currency.
    - `totalPnl` number, double — Total profit and loss across all accounts in native currency.
    - `totalBalance` number, double — Total balance across all accounts in native currency.
    - `displayTotalCash` number, double — Total cash converted to the requested display currency.
    - `displayTotalInvestedAmount` number, double — Total invested amount converted to the requested display currency.
    - `displayTotalPnl` number, double — Total profit and loss converted to the requested display currency.
    - `displayTotalBalance` number, double — Total balance converted to the requested display currency.
    - `totalExchangeRate` number, double — Exchange rate applied to convert totals to displayCurrency.
    - `accountSnapshots` HistoricalAccountData[], nullable — Individual account breakdowns within this snapshot.
      - `accountId` string, nullable — Unique identifier of the account.
      - `accountType` 'Trading' | 'Cash' | 'Options' | 'Crypto' | 'MoneyFarm' | 'Spaceship' — The type of eToro account.
      - `currency` string, nullable — The account's native currency (ISO 4217).
      - `cash` number, double — Cash balance in the account's native currency.
      - `investedAmount` number, double — Invested amount in the account's native currency.
      - `pnl` number, double — Profit and loss in the account's native currency.
      - `total` number, double — Total balance in the account's native currency.
      - `usdRate` number, double — Exchange rate to USD.
      - `displayCash` number, double — Cash balance converted to the requested display currency.
      - `displayInvestedAmount` number, double — Invested amount converted to the requested display currency.
      - `displayPnl` number, double — Profit and loss converted to the requested display currency.
      - `displayTotal` number, double — Total balance converted to the requested display currency.
      - `exchangeRate` number, double — Exchange rate applied to convert to displayCurrency.

## Other responses

- `400` — Bad Request — invalid date range or query parameter value.
- `401` — Unauthorized — missing or invalid authentication credentials.
- `403` — Forbidden — the token does not include the etoro-public:money.balance:read scope.
- `404` — Not Found — no historical data found for the specified date range.
- `429` — Too Many Requests — rate limit exceeded.
- `500` — Internal Server Error.

---

[API](https://skmtc.net/etoro/apis/etoro-api.md) · [All operations](https://skmtc.net/etoro/apis/etoro-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/etoro/etoro-api/revisions/69c1fb266c35/schema)
