v1
latestOpenAPI 3.0.12026-07-26171200932.8 KBCreate Agent Portfolio (v2)
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.
Creates a new agent-portfolio using scope names. Scopes are specified by name (scopeNames); scope ids are not supported in v2. IMPORTANT: investmentAmountInUsd is the amount deducted from YOUR (the caller's) account balance to copy-trade this agent-portfolio — it is NOT the agent-portfolio's own balance. Positions are mirrored proportionally: e.g. if you invest $2,000 and agentPortfolioVirtualBalance is $10,000, each position is copied at 20% of its size into your account.
Headers
A unique request identifier.
API key for authentication.
User-specific authentication key.
Request body
Example request
{
"investmentAmountInUsd": 2000,
"agentPortfolioName": "MyPort1",
"agentPortfolioDescription": "My trading portfolio",
"userTokenName": "my-trading-token",
"scopeNames": [
"etoro-public:trade.real:read",
"etoro-public:trade.real:write"
],
"ipsWhitelist": [
"192.168.1.1"
],
"expiresAt": "2026-12-31T23:59:59Z"
}Response
Agent-portfolio and user token created successfully
Example response
{
"agentPortfolioId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"agentPortfolioName": "MyPort1",
"agentPortfolioGcid": 12345678,
"agentPortfolioVirtualBalance": 10000,
"mirrorId": 12345,
"userTokens": [
{
"userTokenId": "f9e8d7c6-b5a4-3210-fedc-ba9876543210",
"userToken": "sk_live_a1b2c3d4e5f6...",
"userTokenName": "my-trading-token",
"clientId": "c1d2e3f4-a5b6-7890-cdef-123456789abc",
"ipsWhitelist": [
"192.168.1.1"
],
"scopes": [
{
"name": "etoro-public:trade.real:read"
}
],
"expiresAt": "2026-12-31T23:59:59Z"
}
]
}