Skip to main content
POST
Get a filtered aggregated portfolio snapshot

Authorizations

x-api-key
string
header
default:lhgfaslk21490FAScVPkdsb53F9dNkfHG4faZSG5vfjndfcfgdssdgsdHF4663
required

API key of the application. Only valid together with the x-user-key header — the pair is an alternative to OAuth bearer authentication, never sent alongside it. The pair is granted the same permissions the operation's OAuth scopes describe.

Demo credential for trying the API from these docs: lhgfaslk21490FAScVPkdsb53F9dNkfHG4faZSG5vfjndfcfgdssdgsdHF4663

x-user-key
string
header
default:eyJlYW4iOiJVbnJlZ2lzdGVyZWRBcHBsaWNhdGlvbiIsImVrIjoiOE5sZ2cwcW5EUVdROUFNWGpXT2lmOWktZnpidG5KcUlqWGJ3WHJZZkpZcldrbG90ZEhvLVBjSWhQaU8xU1ZtMW84aU1WZGZqN2xWNzFjLXFxLmcybXE1dnh4Q1hUT25xaWRUaTFlcEhmVk1fIn0_
required

User-specific authentication key. Only valid together with the x-api-key header — the pair is an alternative to OAuth bearer authentication, never sent alongside it.

Demo credential for trying the API from these docs: eyJlYW4iOiJVbnJlZ2lzdGVyZWRBcHBsaWNhdGlvbiIsImVrIjoiOE5sZ2cwcW5EUVdROUFNWGpXT2lmOWktZnpidG5KcUlqWGJ3WHJZZkpZcldrbG90ZEhvLVBjSWhQaU8xU1ZtMW84aU1WZGZqN2xWNzFjLXFxLmcybXE1dnh4Q1hUT25xaWRUaTFlcEhmVk1fIn0_

Headers

x-request-id
string<uuid>
required

A unique request identifier.

Example:

"f0bfaf25-1252-4a64-b06d-8ab77ceb5202"

Body

application/json

All aggregation levels are honored. Omitted properties use the same defaults as GET.

conversionMode
enum<string>
default:eToroApp
Available options:
eToroApp,
realtime
pnlLevel
enum<string>
default:pnl
Available options:
none,
pnl,
dailyPnl
accountLevel
enum<string>
default:totals

Controls accountTotals. none omits it; totals and details include full-portfolio totals.

Available options:
none,
totals,
details
instrumentLevel
enum<string>
default:totals

Controls per-instrument aggregates for both the manual (non copy-trading) portfolio and each mirror's positions — a single request-level setting, not scoped per mirror. none omits instrument-level aggregates; totals and details include them at the requested level.

Available options:
none,
totals,
details
mirrorLevel
enum<string>
default:totals

Controls copy-trading data. none omits mirrors and requires mirrorFilters to be absent; totals includes mirrors without their instrument-level aggregates; details additionally includes each mirror's instrument-level aggregates, per instrumentLevel.

Available options:
none,
totals,
details
instrumentIds
integer<int32>[]
mirrorFilters
object[] | null

Filters which copy-trading relationships to include, by mirror ID. Mirror ID 0 represents the manual (non copy-trading) part of the portfolio. When mirrorLevel is none, mirrorFilters must be absent — only the manual part of the portfolio is returned. When mirrorLevel is totals or details, an absent mirrorFilters returns all mirrors plus the manual part; an empty array returns none.

dailyCutoffUtc
string<date-time>

UTC timestamp representing the start of 'today' in the user's local timezone — normally the user's most recent local midnight, expressed in UTC. Required when pnlLevel is dailyPnl; rejected otherwise. Must not be more than 48 hours in the past or more than 5 minutes in the future.

Response

Successfully retrieved aggregated portfolio data

Complete snapshot of the authenticated user's investment portfolio, organized by asset.

cid
integer<int32>

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
object

Account-level balance and equity totals.

instrumentAggregates
object[]

Positions held directly (not via copy trading), grouped by instrument.

mirrors
object[]

Copy-trading relationships the user has active.