---
title: "Get aggregated portfolio snapshot"
method: GET
path: "/api/v1/trading/info/demo/aggregate-portfolio"
tags: ["Trading - Demo"]
---

# Get aggregated portfolio snapshot

`GET /api/v1/trading/info/demo/aggregate-portfolio`

**Rate limit:** 60 requests per 60 seconds. This is a **shared quota** — the same budget is consumed by a group of related endpoints, so calling any of them reduces what is left for the others (you cannot call each at the full rate independently). Endpoints sharing this quota:
- `GET /api/v1/trading/info/demo/pnl`
- `GET /api/v1/trading/info/demo/portfolio`

---

Returns a complete snapshot of the authenticated user's demo account investment portfolio, organized by asset. The response includes account-level balances and equity, individually held positions grouped by asset, and any copy-trading relationships the user has active. Use the instrumentIds filter to scope results to a specific set of assets, or mirrorIds to isolate specific copy-trading relationships. Account totals always reflect the full portfolio regardless of filters applied.

## Query parameters

- `conversionMode` 'eToroApp' | 'Realtime'
- `instrumentIds` integer[]
- `mirrorIds` integer[]

## Headers

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

## Response `200`

Successfully retrieved aggregated portfolio data

- AggregatedPortfolioResponse — Complete snapshot of the authenticated user's investment portfolio, organized by asset.
  - `cid` integer — Customer ID.
  - `timestamp` string, date-time — Time at which this portfolio snapshot was calculated.
  - `accountCurrency` string — ISO 4217 code of the account's base currency (e.g. 'USD').
  - `accountTotals` AggregatedPortfolioAccountTotals — Account-level balance and equity totals.
    - `accountAvailableCash` number, double — Cash available for new trades: accountBalance minus accountFrozenCash.
    - `accountFrozenCash` number, double — Cash reserved for pending open orders.
    - `accountCurrentPnl` number, double — Unrealized P&L across all manual positions and copy-trading mirrors in account currency.
    - `accountTotalValue` number, double — Total portfolio value: accountAvailableCash + accountTotalUsedMargin + accountCurrentPnl.
    - `accountTotalUsedMargin` number, double — Total margin in use: manual position margins + frozen order amounts + mirror active margins.
    - `accountBalance` number, double — Total cash balance (available + frozen), excluding invested amounts.
  - `instrumentAggregates` AggregatedPortfolioInstrumentAggregate[] — Positions held directly (not via copy trading), grouped by instrument.
    - `instrumentId` integer — eToro instrument identifier.
    - `assetCurrency` string — ISO 4217 code of the instrument's base currency (e.g. 'USD', 'EUR').
    - `totalMarginAccountCurrency` number, double — Sum of margins across all positions for this instrument, in account currency.
    - `totalFees` number, double — Sum of transaction fees taken on positions of this instrument, in asset currency.
    - `totalFeesAcctCcy` number, double — Sum of transaction fees taken on positions of this instrument, in account currency.
    - `totalTaxes` number, double — Sum of taxes for this instrument, in asset currency.
    - `totalTaxesAcctCcy` number, double — Sum of taxes for this instrument, in account currency.
    - `totalMarginAssetCurrency` number, double — Sum of margins across all positions for this instrument, in asset currency.
    - `pnlAssetCurrency` number, double, nullable — Unrealized P&L for this instrument in asset currency. Null when P&L calculation is not requested.
    - `accountCurrencyRoePercent` number, double — Return on equity in account currency: accountCurrencyReturn / totalMarginAccountCurrency.
    - `netContracts` number, double — Net contracts across all positions (positive = net long, negative = net short).
    - `netUnits` number, double — Net units across all positions (positive = net long, negative = net short).
    - `netCurrentExposureAssetCurrency` number, double — Net current market exposure in asset currency.
    - `netCurrentExposureAccountCurrency` number, double — Net current market exposure in account currency.
    - `netInitialExposureAccountCurrency` number, double — Net initial exposure at open in account currency.
    - `accountCurrencyReturn` number, double — Unrealized P&L for this instrument in account currency.
    - `liquidationValueAccountCurrency` number, double — Current liquidation value in account currency: totalMarginAccountCurrency + accountCurrencyReturn.
    - `liquidationValueAssetCurrency` number, double — Current liquidation value in asset currency.
    - `avgLeverage` number, double — Average leverage across all positions for this instrument.
    - `avgOpenRate` number, double — Weighted average open rate across all positions for this instrument.
    - `netAvgOpenRate` number, double — Direction-aware weighted average open rate (long contributions minus short).
    - `avgConversionRate` number, double — Weighted average asset-to-account-currency conversion rate at position open.
  - `mirrors` AggregatedPortfolioMirrorAggregate[] — Copy-trading relationships the user has active.
    - `mirrorId` integer — Mirror identifier. A value of 0 represents manually held positions.
    - `mirrorAvailableCash` number, double — Cash available within this mirror for new copy positions.
    - `mirrorDepositTotal` number, double — Total amount ever deposited into this mirror: initialInvestment + depositSummary.
    - `mirrorWithdrawalTotal` number, double — Total amount ever withdrawn from this mirror.
    - `mirrorStopLossPercentage` number, double — Stop-loss threshold as a percentage of the mirror's current value.
    - `mirrorStopLoss` number, double — Stop-loss threshold in account currency. The mirror liquidates when its value falls to this level.
    - `mirrorClosedPositionsPnl` number, double — Accumulated net profit from all closed positions within this mirror.
    - `mirrorTotals` AggregatedPortfolioMirrorTotals — Aggregated totals for a copy-trading mirror.
      - `mirrorNetFunding` number, double — Net amount funded into the mirror: mirrorDepositTotal minus mirrorWithdrawalTotal.
      - `mirrorPositionsPnl` number, double — Total P&L from open and closed positions within the mirror, in account currency.
      - `mirrorLiquidationValue` number, double — Current mirror value: mirrorActiveMargin + mirrorPositionsPnl.
      - `mirrorPositionsPnlPercent` number, double — mirrorPositionsPnl as a percentage of mirrorLiquidationValue.
      - `mirrorMarginPercent` number, double — This mirror's active margin as a percentage of the account's total used margin.
      - `mirrorValuePercent` number, double — This mirror's liquidation value as a percentage of the account's total value.
      - `mirrorActiveMargin` number, double — Total margin in active use within this mirror: mirrorAvailableCash + sum of position margins minus closed positions P&L.
    - `instrumentAggregates` AggregatedPortfolioInstrumentAggregate[] — Positions held within this copy-trading mirror, grouped by instrument.
      - `instrumentId` integer — eToro instrument identifier.
      - `assetCurrency` string — ISO 4217 code of the instrument's base currency (e.g. 'USD', 'EUR').
      - `totalMarginAccountCurrency` number, double — Sum of margins across all positions for this instrument, in account currency.
      - `totalFees` number, double — Sum of transaction fees taken on positions of this instrument, in asset currency.
      - `totalFeesAcctCcy` number, double — Sum of transaction fees taken on positions of this instrument, in account currency.
      - `totalTaxes` number, double — Sum of taxes for this instrument, in asset currency.
      - `totalTaxesAcctCcy` number, double — Sum of taxes for this instrument, in account currency.
      - `totalMarginAssetCurrency` number, double — Sum of margins across all positions for this instrument, in asset currency.
      - `pnlAssetCurrency` number, double, nullable — Unrealized P&L for this instrument in asset currency. Null when P&L calculation is not requested.
      - `accountCurrencyRoePercent` number, double — Return on equity in account currency: accountCurrencyReturn / totalMarginAccountCurrency.
      - `netContracts` number, double — Net contracts across all positions (positive = net long, negative = net short).
      - `netUnits` number, double — Net units across all positions (positive = net long, negative = net short).
      - `netCurrentExposureAssetCurrency` number, double — Net current market exposure in asset currency.
      - `netCurrentExposureAccountCurrency` number, double — Net current market exposure in account currency.
      - `netInitialExposureAccountCurrency` number, double — Net initial exposure at open in account currency.
      - `accountCurrencyReturn` number, double — Unrealized P&L for this instrument in account currency.
      - `liquidationValueAccountCurrency` number, double — Current liquidation value in account currency: totalMarginAccountCurrency + accountCurrencyReturn.
      - `liquidationValueAssetCurrency` number, double — Current liquidation value in asset currency.
      - `avgLeverage` number, double — Average leverage across all positions for this instrument.
      - `avgOpenRate` number, double — Weighted average open rate across all positions for this instrument.
      - `netAvgOpenRate` number, double — Direction-aware weighted average open rate (long contributions minus short).
      - `avgConversionRate` number, double — Weighted average asset-to-account-currency conversion rate at position open.

## Other responses

- `400` — Invalid request parameters
- `404` — User not found
- `429` — Too Many Requests — the shared rate limit (60 requests / 60s) was exceeded.

---

[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/versions/69c1fb266c35/schema)
