Skip to main content
POST
Create Agent Portfolio (v2)

Authorizations

Authorization
string
header
required

eToro OAuth2. Each operation lists the scopes that grant access as separate security requirements (OpenAPI OR semantics): the caller's token only needs ONE of them — you do NOT need all of them. The same scopes back the x-api-key/x-user-key credential pair.

Headers

x-request-id
string<uuid>
required

A unique request identifier.

Example:

"63b556bf-c9e3-4052-96b8-405bef86f72e"

x-api-key
string<password>
required

API key for authentication.

Example:

"lhgfaslk21490FAScVPkdsb53F9dNkfHG4faZSG5vfjndfcfgdssdgsdHF4663"

x-user-key
string<password>
required

User-specific authentication key.

Example:

"eyJlYW4iOiJVbnJlZ2lzdGVyZWRBcHBsaWNhdGlvbiIsImVrIjoiOE5sZ2cwcW5EUVdROUFNWGpXT2lmOWktZnpidG5KcUlqWGJ3WHJZZkpZcldrbG90ZEhvLVBjSWhQaU8xU1ZtMW84aU1WZGZqN2xWNzFjLXFxLmcybXE1dnh4Q1hUT25xaWRUaTFlcEhmVk1fIn0_"

Body

application/json
investmentAmountInUsd
number
required

The amount in USD deducted from the CALLER's account balance to copy-trade this agent-portfolio. This is NOT the agent-portfolio's own balance — the agent-portfolio receives a separate fixed virtual balance (returned as agentPortfolioVirtualBalance). Positions are mirrored proportionally: e.g. $2,000 with a $10,000 virtual balance = 20% position sizing.

Example:

2000

agentPortfolioName
string
required

A unique display name for the agent-portfolio (6-10 characters).

Example:

"MyPort1"

userTokenName
string
required

A human-readable name for the user token provisioned with the agent-portfolio.

Example:

"my-trading-token"

scopeNames
string[]
required

The set of permission scope names to grant to the provisioned user token. Available scopes: etoro-public:trade.real:read, etoro-public:trade.real:write, etoro-public:trade.demo:read, etoro-public:trade.demo:write.

Example:
agentPortfolioDescription
string

An optional description of the agent-portfolio's purpose or strategy.

Example:

"My trading portfolio"

ipsWhitelist
string[]

An optional set of IPv4 addresses allowed to use the provisioned user token.

Example:
expiresAt
string<date-time>

An optional expiration date and time (UTC) for the provisioned user token.

Example:

"2026-12-31T23:59:59Z"

Response

Agent-portfolio and user token created successfully

agentPortfolioId
string<uuid>

The unique identifier of the newly created agent-portfolio.

Example:

"a1b2c3d4-e5f6-7890-abcd-ef1234567890"

agentPortfolioName
string

The display name assigned to the agent-portfolio.

Example:

"MyPort1"

agentPortfolioGcid
integer

The GCID associated with the agent-portfolio.

Example:

12345678

agentPortfolioVirtualBalance
number

The fixed virtual balance (in USD) that the agent-portfolio was funded with. The investmentAmountInUsd used to copy is proportional to this balance.

Example:

10000

mirrorId
integer

The Trading API mirror ID for this agent-portfolio's copy trade.

Example:

12345

userTokens
object[]

The user tokens generated during agent-portfolio creation.