openapi: 3.0.1 info: title: Deprecated eToro Public API operations Agent Portfolios Trading - Real API version: v1.158.0 description: Snapshot of API operations that existed in the previous docs OpenAPI file and are no longer present in the current upstream Swagger. tags: - name: Trading - Real paths: /api/v1/trading/execution/limit-orders: post: tags: - Trading - Real summary: Places a Market-if-touched order (similar to Limit order) to open a position when a threshold price is reached. description: A Market-if-touched order is an order to open a new long or short position when a specific price or better appears in the Market. The price threshold is used to trigger a Market Order. This endpoint allows traders to set up Market-if-touched orders with parameters like leverage, stop-loss, and take-profit settings. operationId: openLimitOrder requestBody: content: application/json: schema: type: object properties: InstrumentID: type: integer format: int32 description: The unique identifier of the financial instrument. IsBuy: type: boolean description: Indicates whether the order will open a long (true) or short (false) position. Leverage: type: integer format: int32 description: The leverage ratio for the order. Amount: type: number format: double nullable: true description: The amount of the trade in the account currency [USD]. Required if AmountInUnits is not provided. AmountInUnits: type: number format: double nullable: true description: 'The number of units of the asset. Required if Amount is not provided. For most assets this can be a fractional number. Note that for Future Contracts this number should indicate the number of underlying units, and not the number of contracts, according to the formula: AmountInUnits = contract multiplier * number of contracts.' StopLossRate: type: number format: double description: The stop-loss trigger price at which the position will generate a Market Order to close (after it was opened). StopLoss trigger price must be worse than current price. TakeProfitRate: type: number format: double description: The take-profit trigger price at which the position will generate a Market Order to close (after it has opened). TakeProfit trigger price must be better than the current price. Rate: type: number format: double description: The trigger price at which a Market order to open the position will be sent for execution. The trigger price must be better than the current price. This means that the trigger price must be lower than current price for Long positions, and higher than current price for Short positions. IsTslEnabled: type: boolean nullable: true description: Indicates if a trailing stop loss (TSL) is enabled. This means that the stoploss rate indicated will get updated automatically whenever the asset price increases (for long positions) or decreases (for short position) effectively keeping the stoploss in a constant gap from the best price achieved so far. IsDiscounted: type: boolean nullable: true description: SHOULD NOT BE EXTERNALZIED IsNoStopLoss: type: boolean nullable: true description: Indicates if stop-loss is disabled. IsNoTakeProfit: type: boolean nullable: true description: Indicates if take-profit is disabled. CID: type: integer format: int32 description: SHOULD NOT BE EXTERNALIZED. additionalProperties: false responses: '200': description: Market-if-touched order successfully placed. The response includes a confirmation token. content: application/json: schema: type: object properties: token: type: string format: uuid description: A confirmation token indicating the order creation. required: - token example: token: 9af05785-be29-482d-a892-9d9be4fd34bc parameters: - name: x-request-id in: header required: true schema: type: string format: uuid example: 4e1e6a7c-018b-4e17-8ade-3006f9b54d2b description: A unique request identifier. - name: x-api-key in: header required: true schema: type: string format: password example: lhgfaslk21490FAScVPkdsb53F9dNkfHG4faZSG5vfjndfcfgdssdgsdHF4663 description: API key for authentication. - name: x-user-key in: header required: true schema: type: string format: password example: eyJlYW4iOiJVbnJlZ2lzdGVyZWRBcHBsaWNhdGlvbiIsImVrIjoiOE5sZ2cwcW5EUVdROUFNWGpXT2lmOWktZnpidG5KcUlqWGJ3WHJZZkpZcldrbG90ZEhvLVBjSWhQaU8xU1ZtMW84aU1WZGZqN2xWNzFjLXFxLmcybXE1dnh4Q1hUT25xaWRUaTFlcEhmVk1fIn0_ description: User-specific authentication key. /api/v1/trading/execution/limit-orders/{orderId}: delete: tags: - Trading - Real summary: Cancels a Market-if-touched order that has not yet been executed. description: This endpoint allows traders to cancel a Market-if-touched order before it is executed. Once canceled, the order will no longer be processed. operationId: cancelLimitOrder parameters: - name: x-request-id in: header required: true schema: type: string format: uuid example: c381880f-7d0c-4346-82c1-2329d468720e description: A unique request identifier. - name: x-api-key in: header required: true schema: type: string format: password example: lhgfaslk21490FAScVPkdsb53F9dNkfHG4faZSG5vfjndfcfgdssdgsdHF4663 description: API key for authentication. - name: x-user-key in: header required: true schema: type: string format: password example: eyJlYW4iOiJVbnJlZ2lzdGVyZWRBcHBsaWNhdGlvbiIsImVrIjoiOE5sZ2cwcW5EUVdROUFNWGpXT2lmOWktZnpidG5KcUlqWGJ3WHJZZkpZcldrbG90ZEhvLVBjSWhQaU8xU1ZtMW84aU1WZGZqN2xWNzFjLXFxLmcybXE1dnh4Q1hUT25xaWRUaTFlcEhmVk1fIn0_ description: User-specific authentication key. - name: orderId in: path required: true schema: type: integer format: int64 description: The unique identifier of the Market-if-touched order to be canceled. responses: '200': description: Successfully canceled the Market-if-touched order. The response includes a confirmation token. content: application/json: schema: type: object properties: token: type: string format: uuid description: A confirmation token indicating the order cancellation. required: - token example: token: 9af05785-be29-482d-a892-9d9be4fd34bc /api/v1/trading/execution/market-open-orders/by-amount: post: tags: - Trading - Real summary: Create a market order to open a position by specifying the amount of cash you would like to use in the trade. description: This endpoint allows traders to place a market order to open a position by specifying the investment amount instead of specifying the number of units. The trade will be executed at the market price, and leverage, stop-loss, and take-profit settings can be applied. operationId: openMarketPositionByAmount requestBody: content: application/json: schema: type: object properties: InstrumentID: type: integer format: int32 description: The unique identifier of the financial instrument to trade. IsBuy: type: boolean description: True for a long position, false for a short position. Leverage: type: integer format: int32 description: The leverage multiplier for the trade. Amount: type: number format: double description: The amount of money to invest in the trade. StopLossRate: type: number format: double nullable: true description: The stop-loss trigger price at which the position will generate a Market Order to close (after it was opened). StopLoss trigger price must be worse than current price. TakeProfitRate: type: number format: double nullable: true description: The take-profit trigger price at which the position will generate a Market Order to close (after it has opened). TakeProfit trigger price must be better than the current price. IsTslEnabled: type: boolean nullable: true description: Indicates if a trailing stop loss (TSL) is enabled. This means that the stoploss rate indicated will get updated automatically whenever the asset price increases (for long positions) or decreases (for short position) effectively keeping the stoploss in a constant gap from the best price achieved so far. IsNoStopLoss: type: boolean nullable: true description: True if no stop-loss is set for this order. IsNoTakeProfit: type: boolean nullable: true description: True if no take-profit is set for this order. required: - InstrumentID - IsBuy - Leverage - Amount responses: '200': description: Successfully opened a market order. content: application/json: schema: type: object properties: orderForOpen: type: object properties: instrumentID: type: integer description: The ID of the traded instrument. amount: type: integer description: The invested amount. isBuy: type: boolean description: True for a long position, false for a short position. leverage: type: integer description: The leverage applied to the trade. stopLossRate: type: integer description: The stop-loss threshold rate, if applicable. takeProfitRate: type: integer description: The take-profit thereshold rate, if applicable. isTslEnabled: type: boolean description: Indicates if trailing stop-loss is enabled. mirrorID: type: integer description: ID related to mirrored trades, if applicable. totalExternalCosts: type: integer description: Total external costs associated with opening the trade. orderID: type: integer description: The unique order identifier. orderType: type: integer description: The type of order executed. statusID: type: integer description: The status of the order. CID: type: integer description: Customer ID associated with the order. openDateTime: type: string format: date-time description: The timestamp when the order was opened. lastUpdate: type: string format: date-time description: The last update timestamp of the order. token: type: string format: uuid description: A unique confirmation token for the order. example: orderForOpen: instrumentID: 100000 amount: 150 isBuy: true leverage: 1 stopLossRate: 0 takeProfitRate: 0 isTslEnabled: false mirrorID: 0 totalExternalCosts: 0 orderID: 13902598 orderType: 17 statusID: 1 CID: 7765437 openDateTime: '2025-04-02T15:47:15.9370502Z' lastUpdate: '2025-04-02T15:47:15.9370502Z' token: 066faaee-e1e9-49d2-a568-c6e1cc336ad8 parameters: - name: x-request-id in: header required: true schema: type: string format: uuid example: 7a83a55e-139d-4e88-9450-baa64cf75715 description: A unique request identifier. - name: x-api-key in: header required: true schema: type: string format: password example: lhgfaslk21490FAScVPkdsb53F9dNkfHG4faZSG5vfjndfcfgdssdgsdHF4663 description: API key for authentication. - name: x-user-key in: header required: true schema: type: string format: password example: eyJlYW4iOiJVbnJlZ2lzdGVyZWRBcHBsaWNhdGlvbiIsImVrIjoiOE5sZ2cwcW5EUVdROUFNWGpXT2lmOWktZnpidG5KcUlqWGJ3WHJZZkpZcldrbG90ZEhvLVBjSWhQaU8xU1ZtMW84aU1WZGZqN2xWNzFjLXFxLmcybXE1dnh4Q1hUT25xaWRUaTFlcEhmVk1fIn0_ description: User-specific authentication key. /api/v1/trading/execution/market-open-orders/by-units: post: tags: - Trading - Real summary: Places a Market Order to open a position by specifying the number of units you would like to trade. description: This endpoint allows traders to place a market order to open a position by specifying the number of units (rather than an amount in cash). The trade is executed at the current market price, and optional settings like leverage, stop-loss, and take-profit can be applied. operationId: openMarketPositionByUnits requestBody: content: application/json: schema: type: object properties: InstrumentID: type: integer format: int32 description: The unique identifier of the financial instrument to trade. IsBuy: type: boolean description: True for a long position, false for a short position. Leverage: type: integer format: int32 description: The leverage multiplier for the trade. AmountInUnits: type: number format: double description: 'The number of units of the asset. Required if Amount is not provided. For most assets this can be a fractional number. Note that for Future Contracts this number should indicate the number of underlying units, and not the number of contracts, according to the formula: AmountInUnits = contract multiplier * number of contracts.' StopLossRate: type: number format: double nullable: true description: The stop-loss trigger price at which the position will generate a Market Order to close (after it was opened). StopLoss trigger price must be worse than current price. TakeProfitRate: type: number format: double nullable: true description: The take-profit trigger price at which the position will generate a Market Order to close (after it has opened). TakeProfit trigger price must be better than the current price. IsTslEnabled: type: boolean nullable: true description: Indicates if a trailing stop loss (TSL) is enabled. This means that the stoploss rate indicated will get updated automatically whenever the asset price increases (for long positions) or decreases (for short position) effectively keeping the stoploss in a constant gap from the best price achieved so far. IsNoStopLoss: type: boolean nullable: true description: True if no stop-loss is set for this order. IsNoTakeProfit: type: boolean nullable: true description: True if no take-profit is set for this order. required: - InstrumentID - IsBuy - Leverage - AmountInUnits responses: '200': description: Successfully opened a market order. content: application/json: schema: type: object properties: orderForOpen: type: object properties: instrumentID: type: integer description: The ID of the traded instrument. amount: type: integer description: The amount invested in the trade. amountInUnits: type: number format: double description: The number of units traded. isBuy: type: boolean description: True for a long position, false for a short position. leverage: type: integer description: The leverage applied to the trade. stopLossRate: type: integer description: The stop-loss threshold rate, if applicable. takeProfitRate: type: integer description: The take-profit thereshold rate, if applicable. isTslEnabled: type: boolean description: Indicates if trailing stop-loss is enabled. mirrorID: type: integer description: ID related to mirrored trades, if applicable. totalExternalCosts: type: integer description: Total external costs associated with the trade. lotCount: type: integer description: The number of lots in the order. orderID: type: integer description: The unique order identifier. orderType: type: integer description: The type of order executed. statusID: type: integer description: The status of the order. CID: type: integer description: Customer Account ID associated with the order. openDateTime: type: string format: date-time description: The timestamp when the order was opened. lastUpdate: type: string format: date-time description: The last update timestamp of the order. token: type: string format: uuid description: A unique confirmation token for the order. example: orderForOpen: instrumentID: 100000 amount: 0 amountInUnits: 0.001 isBuy: true leverage: 1 stopLossRate: 0 takeProfitRate: 0 isTslEnabled: false mirrorID: 0 totalExternalCosts: 0 lotCount: 0 orderID: 13906629 orderType: 18 statusID: 1 CID: 7765437 openDateTime: '2025-04-02T15:56:50.7496838Z' lastUpdate: '2025-04-02T15:56:50.7496838Z' token: 43ceb769-cff6-45ec-8ad7-292b7401353f parameters: - name: x-request-id in: header required: true schema: type: string format: uuid example: 44c91841-9144-46bc-8320-957315279427 description: A unique request identifier. - name: x-api-key in: header required: true schema: type: string format: password example: lhgfaslk21490FAScVPkdsb53F9dNkfHG4faZSG5vfjndfcfgdssdgsdHF4663 description: API key for authentication. - name: x-user-key in: header required: true schema: type: string format: password example: eyJlYW4iOiJVbnJlZ2lzdGVyZWRBcHBsaWNhdGlvbiIsImVrIjoiOE5sZ2cwcW5EUVdROUFNWGpXT2lmOWktZnpidG5KcUlqWGJ3WHJZZkpZcldrbG90ZEhvLVBjSWhQaU8xU1ZtMW84aU1WZGZqN2xWNzFjLXFxLmcybXE1dnh4Q1hUT25xaWRUaTFlcEhmVk1fIn0_ description: User-specific authentication key. /api/v1/trading/execution/market-open-orders/{orderId}: delete: tags: - Trading - Real summary: Cancels a market order for open before it is executed. description: This endpoint allows traders to cancel a market order for open before execution. If the order has already been processed, cancellation will not be possible. operationId: cancelOpenMarketOrder parameters: - name: x-request-id in: header required: true schema: type: string format: uuid example: 99871678-c1cc-4c89-9a72-903e0e6529d1 description: A unique request identifier. - name: x-api-key in: header required: true schema: type: string format: password example: lhgfaslk21490FAScVPkdsb53F9dNkfHG4faZSG5vfjndfcfgdssdgsdHF4663 description: API key for authentication. - name: x-user-key in: header required: true schema: type: string format: password example: eyJlYW4iOiJVbnJlZ2lzdGVyZWRBcHBsaWNhdGlvbiIsImVrIjoiOE5sZ2cwcW5EUVdROUFNWGpXT2lmOWktZnpidG5KcUlqWGJ3WHJZZkpZcldrbG90ZEhvLVBjSWhQaU8xU1ZtMW84aU1WZGZqN2xWNzFjLXFxLmcybXE1dnh4Q1hUT25xaWRUaTFlcEhmVk1fIn0_ description: User-specific authentication key. - name: orderId in: path required: true schema: type: integer format: int64 description: The unique identifier of the market order for open to be canceled. responses: '200': description: Successfully canceled the pending market order. The response includes a confirmation token. content: application/json: schema: type: object properties: token: type: string format: uuid description: A confirmation token indicating the order cancellation. required: - token example: token: 9af05785-be29-482d-a892-9d9be4fd34bc /api/v1/trading/info/real/orders/{orderId}: get: tags: - Trading - Real summary: Get Order Information and Position Details for Real Account description: Retrieves comprehensive information about a specific order for opening a position, including the order status, execution details, and all positions that were opened from this order. This endpoint is essential for tracking order execution and identifying which positions were created as a result of a specific order request. The response includes detailed position information with PositionID values that can be used to query position-specific details. operationId: getRealOrderForOpenInfo security: - bearerAuth: [] parameters: - name: x-request-id in: header required: true schema: type: string format: uuid example: 67a6927c-4349-40a3-9c31-c98b26f4b863 description: A unique request identifier. - name: x-api-key in: header required: true schema: type: string format: password example: lhgfaslk21490FAScVPkdsb53F9dNkfHG4faZSG5vfjndfcfgdssdgsdHF4663 description: API key for authentication. - name: x-user-key in: header required: true schema: type: string format: password example: eyJlYW4iOiJVbnJlZ2lzdGVyZWRBcHBsaWNhdGlvbiIsImVrIjoiOE5sZ2cwcW5EUVdROUFNWGpXT2lmOWktZnpidG5KcUlqWGJ3WHJZZkpZcldrbG90ZEhvLVBjSWhQaU8xU1ZtMW84aU1WZGZqN2xWNzFjLXFxLmcybXE1dnh4Q1hUT25xaWRUaTFlcEhmVk1fIn0_ description: User-specific authentication key. - name: orderId in: path required: true description: The unique identifier of the order for opening a position. This is the OrderID that was returned when the order was initially created. schema: type: integer format: int64 example: 123456789 responses: '200': description: Successfully retrieved order information and associated position details. content: application/json: schema: $ref: '#/components/schemas/OrderForOpenInfoResponse' example: token: 550e8400-e29b-41d4-a716-446655440000 orderID: 123456789 cid: 987654321 statusID: 1 orderType: 1 openActionType: 1 errorCode: null errorMessage: null instrumentID: 67890 amount: 1000.0 units: 10.5 requestOccurred: '2024-01-15T10:30:00Z' positions: - positionID: 9876543210 orderType: 1 occurred: '2024-01-15T10:30:15Z' rate: 1.2345 units: 10.5 conversionRate: 1.0 amount: 1000.0 isOpen: true '400': description: Bad Request - Invalid orderId format, or validation error occurred. '404': description: Not Found - The specified order was not found for the provided OrderID. '500': description: Internal Server Error - An unexpected error occurred while processing the request. /api/v1/trading/info/eligibility: post: tags: - Trading - Real summary: Check trading permissions, limits, and available leverage for one or more instruments description: Returns per-instrument trading configuration for the authenticated account - position limits, permitted order types, stop-loss and take-profit boundaries, and available leverage by settlement type and direction. Instruments not found are listed in notFoundInstrumentIds and notFoundSymbols. At least one of instrumentIds or symbols must be supplied; the combined length must not exceed 100 instruments. operationId: getInstrumentEligibility security: - bearerAuth: [] parameters: - name: x-request-id in: header required: true schema: type: string format: uuid example: b8990cdd-54f3-4a3b-89c1-7a9486f6fdc9 description: A unique request identifier. - name: x-api-key in: header required: true schema: type: string format: password example: lhgfaslk21490FAScVPkdsb53F9dNkfHG4faZSG5vfjndfcfgdssdgsdHF4663 description: API key for authentication. - name: x-user-key in: header required: true schema: type: string format: password example: eyJlYW4iOiJVbnJlZ2lzdGVyZWRBcHBsaWNhdGlvbiIsImVrIjoiOE5sZ2cwcW5EUVdROUFNWGpXT2lmOWktZnpidG5KcUlqWGJ3WHJZZkpZcldrbG90ZEhvLVBjSWhQaU8xU1ZtMW84aU1WZGZqN2xWNzFjLXFxLmcybXE1dnh4Q1hUT25xaWRUaTFlcEhmVk1fIn0_ description: User-specific authentication key. requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/InstrumentEligibilityRequest' example: instrumentIds: - 1001 symbols: - AAPL currency: USD responses: '200': description: Eligibility resolved successfully content: application/json: schema: $ref: '#/components/schemas/InstrumentEligibilityResponse' example: currency: USD eligibilities: - instrumentId: 1001 symbol: AAPL minPositionExposure: 50.0 maxUnitsPerOrder: 10000.0 allowOpenPosition: true allowClosePosition: true allowPartialClosePosition: true allowMitOrders: true allowEntryOrders: false allowExitOrders: false allowTrailingStopLoss: true requiresW8Ben: null unitsQuantityType: FractionalUnits orderFillBehaviorType: BestEffort allowedOrderQuantityType: Both tradeUnitType: Units initialMarginInAssetCurrency: null stopLossMarginInAssetCurrency: null additionalBufferPercent: null leverageConfigs: - settlementType: CFD direction: LONG leverageValues: - 1 - 2 - 5 isPotential: false minPositionAmount: 50.0 allowEditStopLoss: true minStopLossPercentage: 5.0 maxStopLossPercentage: 50.0 defaultStopLossPercentage: 50.0 allowEditTakeProfit: true minTakeProfitPercentage: 5.0 maxTakeProfitPercentage: 1000.0 defaultTakeProfitPercentage: 1000.0 allowStopLossTakeProfit: true notFoundInstrumentIds: [] notFoundSymbols: [] '400': description: Invalid request. Validation failed. content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' '401': description: Unauthorized. Invalid or missing authentication. content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' '500': description: Internal server error. /api/v1/trading/execution/market-close-orders/positions/{positionId}: post: tags: - Trading - Real summary: Creates a market order to close a position or partially close it by specifying the number of units to deduct. description: This endpoint allows traders to close an entire position or a portion of it at the current market rate. If `UnitsToDeduct` is provided, only the specified portion will be closed. If `UnitsToDeduct` is omitted or set to null, the full position will be closed. operationId: closePositionByMarketRate parameters: - name: x-request-id in: header required: true schema: type: string format: uuid example: 23d44159-76e2-45b8-abc7-451d1e4ca8ea description: A unique request identifier. - name: x-api-key in: header required: true schema: type: string format: password example: lhgfaslk21490FAScVPkdsb53F9dNkfHG4faZSG5vfjndfcfgdssdgsdHF4663 description: API key for authentication. - name: x-user-key in: header required: true schema: type: string format: password example: eyJlYW4iOiJVbnJlZ2lzdGVyZWRBcHBsaWNhdGlvbiIsImVrIjoiOE5sZ2cwcW5EUVdROUFNWGpXT2lmOWktZnpidG5KcUlqWGJ3WHJZZkpZcldrbG90ZEhvLVBjSWhQaU8xU1ZtMW84aU1WZGZqN2xWNzFjLXFxLmcybXE1dnh4Q1hUT25xaWRUaTFlcEhmVk1fIn0_ description: User-specific authentication key. - name: positionId in: path description: The unique identifier of the position to close. required: true schema: type: integer format: int64 requestBody: content: application/json: schema: type: object properties: InstrumentId: type: integer format: int32 description: The ID of the financial instrument associated with the position. UnitsToDeduct: type: number format: double nullable: true description: The number of units to close. If omitted or null, the entire position will be closed. required: - InstrumentId responses: '200': description: Successfully closed a position or a part of it. content: application/json: schema: type: object properties: orderForClose: type: object properties: positionID: type: integer description: The ID of the closed position. instrumentID: type: integer description: The ID of the instrument traded. unitsToDeduct: type: number format: double description: The number of units closed in this order. orderID: type: integer description: The unique identifier of the closing order. orderType: type: integer description: The type of order executed. statusID: type: integer description: The status of the closing order. CID: type: integer description: Customer Account ID associated with the order. openDateTime: type: string format: date-time description: The timestamp when the order was placed. lastUpdate: type: string format: date-time description: The timestamp of the last update to this order. token: type: string format: uuid description: A unique confirmation token for the closing order. example: orderForClose: positionID: 2150941015 instrumentID: 1111 unitsToDeduct: 2 orderID: 13904638 orderType: 19 statusID: 1 CID: 7765437 openDateTime: '2025-04-02T16:07:54.0880338Z' lastUpdate: '2025-04-02T16:07:54.0880338Z' token: 5fe065bc-f6f9-4897-a2ce-c4fccef73ff8 /api/v1/trading/execution/market-close-orders/{orderId}: delete: tags: - Trading - Real summary: Cancels a pending market order for close for the specified order ID. description: This endpoint allows traders to cancel a previously placed market order for close before execution. If the order has already been processed, cancellation will not be possible. operationId: cancelCloseOrder parameters: - name: x-request-id in: header required: true schema: type: string format: uuid example: 2d1cf916-8d85-4657-b6bb-61fe60102f9a description: A unique request identifier. - name: x-api-key in: header required: true schema: type: string format: password example: lhgfaslk21490FAScVPkdsb53F9dNkfHG4faZSG5vfjndfcfgdssdgsdHF4663 description: API key for authentication. - name: x-user-key in: header required: true schema: type: string format: password example: eyJlYW4iOiJVbnJlZ2lzdGVyZWRBcHBsaWNhdGlvbiIsImVrIjoiOE5sZ2cwcW5EUVdROUFNWGpXT2lmOWktZnpidG5KcUlqWGJ3WHJZZkpZcldrbG90ZEhvLVBjSWhQaU8xU1ZtMW84aU1WZGZqN2xWNzFjLXFxLmcybXE1dnh4Q1hUT25xaWRUaTFlcEhmVk1fIn0_ description: User-specific authentication key. - name: orderId in: path required: true schema: type: integer format: int64 description: The unique identifier of the market order for close to be canceled. responses: '200': description: Successfully canceled the market order for close. The response includes a confirmation token. content: application/json: schema: type: object properties: token: type: string format: uuid description: A confirmation token indicating the order cancellation. required: - token example: token: 7f1da128-f516-4710-8474-915566c4b22e /api/v1/trading/info/aggregate-portfolio: get: tags: - Trading - Real summary: Get aggregated portfolio snapshot — account totals, positions aggregated by instrument, and copy trading description: Returns a complete snapshot of the authenticated user's 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. operationId: getAggregatedPortfolio security: - bearerAuth: [] parameters: - name: x-request-id in: header required: true schema: type: string format: uuid example: 9bbc76ea-49b5-41ac-b271-fe1a091822e2 description: A unique request identifier. - name: x-api-key in: header required: true schema: type: string format: password example: lhgfaslk21490FAScVPkdsb53F9dNkfHG4faZSG5vfjndfcfgdssdgsdHF4663 description: API key for authentication. - name: x-user-key in: header required: true schema: type: string format: password example: eyJlYW4iOiJVbnJlZ2lzdGVyZWRBcHBsaWNhdGlvbiIsImVrIjoiOE5sZ2cwcW5EUVdROUFNWGpXT2lmOWktZnpidG5KcUlqWGJ3WHJZZkpZcldrbG90ZEhvLVBjSWhQaU8xU1ZtMW84aU1WZGZqN2xWNzFjLXFxLmcybXE1dnh4Q1hUT25xaWRUaTFlcEhmVk1fIn0_ description: User-specific authentication key. - name: conversionMode in: query required: false schema: type: string enum: - eToroApp - Realtime default: eToroApp description: Determines which conversion to use for non-USD assets when the market is closed. 'Realtime' uses the realtime conversion rate. 'eToroApp' uses the last conversion rate at market close time. Default is 'eToroApp'. - name: instrumentIds in: query required: false style: form explode: false schema: type: array items: type: integer format: int32 description: Scope the response to a specific list of assets by their eToro instrument ID. When omitted, all held assets are returned. Does not affect account-level totals. - name: mirrorIds in: query required: false style: form explode: false schema: type: array items: type: integer format: int32 description: Scope copy-trading data to specific relationships by their mirror ID. A mirrorId of 0 refers to positions held directly (not via copy trading). When omitted, all copy-trading relationships are included. responses: '200': description: Successfully retrieved aggregated portfolio data content: application/json: schema: $ref: '#/components/schemas/AggregatedPortfolioResponse' example: cid: 4498 timestamp: '2026-05-26T15:24:25.267Z' accountCurrency: USD accountTotals: accountAvailableCash: 4320.84 accountFrozenCash: 0 accountCurrentPnl: -300.35 accountTotalValue: 5154.48 accountTotalUsedMargin: 1133.99 accountBalance: 4320.84 instrumentAggregates: - instrumentId: 100000 assetCurrency: USD totalMarginAccountCurrency: 849.86 totalFees: 0 totalFeesAcctCcy: 0 totalTaxes: 0 totalTaxesAcctCcy: 0 totalMarginAssetCurrency: 849.86 pnlAssetCurrency: -225.3 accountCurrencyRoePercent: -26.51 netContracts: 0.008076 netUnits: 0.008076 netCurrentExposureAssetCurrency: 624.57 netCurrentExposureAccountCurrency: 624.57 netInitialExposureAccountCurrency: 849.87 accountCurrencyReturn: -225.3 liquidationValueAccountCurrency: 624.56 liquidationValueAssetCurrency: 624.56 avgLeverage: 1 avgOpenRate: 105233.5041183754 netAvgOpenRate: 105233.5041183754 avgConversionRate: 1 mirrors: - mirrorId: 1869651 mirrorAvailableCash: 0.04 mirrorDepositTotal: 290 mirrorWithdrawalTotal: 0 mirrorStopLossPercentage: 5 mirrorStopLoss: 14.5 mirrorClosedPositionsPnl: -0.26 mirrorTotals: mirrorNetFunding: 290 mirrorPositionsPnl: -75.05 mirrorLiquidationValue: 209.08 mirrorPositionsPnlPercent: -0.35 mirrorMarginPercent: 25.06 mirrorValuePercent: 4.06 mirrorActiveMargin: 284.13 instrumentAggregates: [] '400': description: Invalid request parameters '404': description: User not found /api/v1/trading/info/portfolio: get: tags: - Trading - Real summary: Retrieve comprehensive portfolio information including positions, orders, and account status description: Returns detailed portfolio information including active positions, pending orders, mirror trading details, and account balances. This endpoint provides a complete overview of the user's trading activity and current market exposure. operationId: getPortfolio security: - bearerAuth: [] responses: '200': description: Successfully retrieved portfolio information content: application/json: schema: $ref: '#/components/schemas/PortfolioResponse' example: clientPortfolio: positions: - positionID: 2150896073 CID: 7765437 openDateTime: '2024-08-01T07:44:26.103Z' openRate: 2020.7784 instrumentID: 1002 isBuy: true takeProfitRate: 0 stopLossRate: 0.0001 mirrorID: 0 parentPositionID: 0 amount: 100 leverage: 1 orderID: 12402059 orderType: 17 units: 0.049485 totalFees: 0 initialAmountInDollars: 100 isTslEnabled: false stopLossVersion: 3 isSettled: true redeemStatusID: 0 initialUnits: 0.049485 isPartiallyAltered: false unitsBaseValueDollars: 100 isDiscounted: true openPositionActionType: 0 settlementTypeID: 1 isDetached: false openConversionRate: 1 pnlVersion: 1 totalExternalFees: 0 totalExternalTaxes: 0 isNoTakeProfit: true isNoStopLoss: true lotCount: 0.049485 credit: 280.35 mirrors: - mirrorID: 1841334 CID: 7765437 parentCID: 14370798 stopLossPercentage: 5 isPaused: false copyExistingPositions: true availableAmount: 560 stopLossAmount: 28 initialInvestment: 560 depositSummary: 0 withdrawalSummary: 0 positions: [] entryOrders: [] exitOrders: [] parentUsername: Deposit158990700 closedPositionsNetProfit: 0 startedCopyDate: '2024-05-23T13:31:57.007Z' pendingForClosure: false parentMirrors: [] mirrorCalculationType: 1 ordersForOpen: [] ordersForClose: [] ordersForCloseMultiple: [] delayedOrderForClose: [] delayedOrderForOpen: [] mirrorStatusId: 0 orders: - orderID: 5669649 CID: 7765437 openDateTime: '2024-06-06T08:07:25.083Z' instrumentID: 100043 isBuy: true takeProfitRate: 0 stopLossRate: 1e-05 rate: 0.1453 amount: 100 leverage: 1 units: 688.231246 isTslEnabled: false executionType: 0 isDiscounted: false stockOrders: [] entryOrders: [] exitOrders: [] ordersForOpen: [] ordersForClose: [] ordersForCloseMultiple: [] bonusCredit: 0 parameters: - name: x-request-id in: header required: true schema: type: string format: uuid example: 411a35fa-50b9-44c2-a7a5-e1d34fd35bf9 description: A unique request identifier. - name: x-api-key in: header required: true schema: type: string format: password example: lhgfaslk21490FAScVPkdsb53F9dNkfHG4faZSG5vfjndfcfgdssdgsdHF4663 description: API key for authentication. - name: x-user-key in: header required: true schema: type: string format: password example: eyJlYW4iOiJVbnJlZ2lzdGVyZWRBcHBsaWNhdGlvbiIsImVrIjoiOE5sZ2cwcW5EUVdROUFNWGpXT2lmOWktZnpidG5KcUlqWGJ3WHJZZkpZcldrbG90ZEhvLVBjSWhQaU8xU1ZtMW84aU1WZGZqN2xWNzFjLXFxLmcybXE1dnh4Q1hUT25xaWRUaTFlcEhmVk1fIn0_ description: User-specific authentication key. /api/v1/trading/info/real/pnl: get: tags: - Trading - Real summary: Get Real Account PnL and Portfolio Details description: Retrieves the real account's current portfolio, including credit, open positions, orders, mirrors, and PnL details. operationId: getRealAccountPnl security: - bearerAuth: [] responses: '200': description: Successfully retrieved real account PnL and portfolio information. content: application/json: schema: $ref: '#/components/schemas/PortfolioResponseWithPnl' example: clientPortfolio: credit: 10000.5 unrealizedPnL: 251.0 mirrors: - mirrorId: 1 cid: 123 parentCid: 456 stopLossPercentage: 15.5 isPaused: false copyExistingPositions: true availableAmount: 5000.0 stopLossAmount: 750.0 initialInvestment: 10000.0 depositSummary: 12000.0 withdrawalSummary: 2000.0 positions: - positionId: 9002 cid: 124 openDateTime: '2024-01-02T09:00:00Z' openRate: 1.2346 instrumentId: 102 isBuy: false takeProfitRate: 1.6 stopLossRate: 1.1 mirrorId: 1 parentPositionId: 8002 amount: 2000.0 leverage: 3 orderId: 5002 orderType: 2 units: 20.5 totalFees: 3.5 initialAmountInDollars: 2000.0 isTslEnabled: true stopLossVersion: 2 isSettled: false redeemStatusId: 1 initialUnits: 20.5 isPartiallyAltered: true unitsBaseValueDollars: 2000.0 isDiscounted: true openPositionActionType: 2 settlementTypeId: 2 isDetached: true openConversionRate: 1.2 pnlVersion: 2 totalExternalFees: 1.0 totalExternalTaxes: 0.5 isNoTakeProfit: true isNoStopLoss: false lotCount: 2.0 externalOperation: null pnL: 150.75 closeRate: 1.3 closeConversionRate: 1.15 timestamp: '2024-01-02T12:00:00Z' parentUsername: parent_user closedPositionsNetProfit: 350.75 startedCopyDate: '2024-01-01T09:00:00Z' pendingForClosure: false parentMirrors: [] mirrorCalculationType: 2 ordersForOpen: - orderId: 1001 orderType: 1 statusId: 1 cid: 123 openDateTime: '2024-01-01T09:00:00Z' lastUpdate: '2024-01-02T10:00:00Z' instrumentId: 101 amount: 1000.0 amountInUnits: 10.5 isBuy: true leverage: 2 stopLossRate: 1.2345 takeProfitRate: 1.3456 isTslEnabled: false isDiscounted: true mirrorId: 1 frozenAmount: 0.0 totalExternalCosts: 5.0 isNoTakeProfit: false isNoStopLoss: false lotCount: 1.0 openPositionActionType: 1 externalOperation: null ordersForClose: - orderId: 2001 orderType: 2 statusId: 1 cid: 123 openDateTime: '2024-01-01T09:00:00Z' lastUpdate: '2024-01-02T10:00:00Z' instrumentId: 101 unitsToDeduct: 5.0 lotsToDeduct: 0.5 positionId: 3001 ordersForCloseMultiple: - orderId: 3001 orderType: 3 statusId: 1 cid: 123 openDateTime: '2024-01-01T09:00:00Z' lastUpdate: '2024-01-02T10:00:00Z' instrumentId: 101 unitsToDeduct: 10.0 lotsToDeduct: 1.0 pendingClosePositionIds: - 3001 - 3002 mirrorStatusId: 1 orders: - orderId: 5001 cid: 123 openDateTime: '2024-01-01T09:00:00Z' instrumentId: 101 isBuy: true takeProfitRate: 1.5 stopLossRate: 1.2 rate: 1.3 amount: 1000.0 leverage: 2 units: 10.5 isTslEnabled: false executionType: 1 isDiscounted: false isNoTakeProfit: false isNoStopLoss: false ordersForOpen: - orderId: 1001 orderType: 1 statusId: 1 cid: 123 openDateTime: '2024-01-01T09:00:00Z' lastUpdate: '2024-01-02T10:00:00Z' instrumentId: 101 amount: 1000.0 amountInUnits: 10.5 isBuy: true leverage: 2 stopLossRate: 1.2345 takeProfitRate: 1.3456 isTslEnabled: false isDiscounted: true mirrorId: 1 frozenAmount: 0.0 totalExternalCosts: 5.0 isNoTakeProfit: false isNoStopLoss: false lotCount: 1.0 openPositionActionType: 1 externalOperation: null ordersForClose: - orderId: 2001 orderType: 2 statusId: 1 cid: 123 openDateTime: '2024-01-01T09:00:00Z' lastUpdate: '2024-01-02T10:00:00Z' instrumentId: 101 unitsToDeduct: 5.0 lotsToDeduct: 0.5 positionId: 3001 ordersForCloseMultiple: - orderId: 3001 orderType: 3 statusId: 1 cid: 123 openDateTime: '2024-01-01T09:00:00Z' lastUpdate: '2024-01-02T10:00:00Z' instrumentId: 101 unitsToDeduct: 10.0 lotsToDeduct: 1.0 pendingClosePositionIds: - 3001 - 3002 bonusCredit: 500.0 positions: - positionId: 9001 cid: 123 openDateTime: '2024-01-01T09:00:00Z' openRate: 1.2345 instrumentId: 101 isBuy: true takeProfitRate: 1.5 stopLossRate: 1.2 mirrorId: 1 parentPositionId: 8001 amount: 1000.0 leverage: 2 orderId: 5001 orderType: 1 units: 10.5 totalFees: 2.5 initialAmountInDollars: 1000.0 isTslEnabled: false stopLossVersion: 1 isSettled: true redeemStatusId: 0 initialUnits: 10.5 isPartiallyAltered: false unitsBaseValueDollars: 1000.0 isDiscounted: false openPositionActionType: 1 settlementTypeId: 1 isDetached: false openConversionRate: 1.0 pnlVersion: 1 totalExternalFees: 0.0 totalExternalTaxes: 0.0 isNoTakeProfit: false isNoStopLoss: false lotCount: 1.0 externalOperation: null pnL: 100.25 closeRate: 1.25 closeConversionRate: 1.1 timestamp: '2024-01-01T12:00:00Z' parameters: - name: x-request-id in: header required: true schema: type: string format: uuid example: c7b394a1-971b-4d59-9e54-44ab178a69a4 description: A unique request identifier. - name: x-api-key in: header required: true schema: type: string format: password example: lhgfaslk21490FAScVPkdsb53F9dNkfHG4faZSG5vfjndfcfgdssdgsdHF4663 description: API key for authentication. - name: x-user-key in: header required: true schema: type: string format: password example: eyJlYW4iOiJVbnJlZ2lzdGVyZWRBcHBsaWNhdGlvbiIsImVrIjoiOE5sZ2cwcW5EUVdROUFNWGpXT2lmOWktZnpidG5KcUlqWGJ3WHJZZkpZcldrbG90ZEhvLVBjSWhQaU8xU1ZtMW84aU1WZGZqN2xWNzFjLXFxLmcybXE1dnh4Q1hUT25xaWRUaTFlcEhmVk1fIn0_ description: User-specific authentication key. /api/v1/trading/info/trade/history: get: tags: - Trading - Real summary: List trading history parameters: - name: x-request-id in: header required: true schema: type: string format: uuid example: 0b67e6fb-a932-46af-84c1-87e3fb730a3e description: A unique request identifier. - name: x-api-key in: header required: true schema: type: string format: password example: lhgfaslk21490FAScVPkdsb53F9dNkfHG4faZSG5vfjndfcfgdssdgsdHF4663 description: API key for authentication. - name: x-user-key in: header required: true schema: type: string format: password example: eyJlYW4iOiJVbnJlZ2lzdGVyZWRBcHBsaWNhdGlvbiIsImVrIjoiOE5sZ2cwcW5EUVdROUFNWGpXT2lmOWktZnpidG5KcUlqWGJ3WHJZZkpZcldrbG90ZEhvLVBjSWhQaU8xU1ZtMW84aU1WZGZqN2xWNzFjLXFxLmcybXE1dnh4Q1hUT25xaWRUaTFlcEhmVk1fIn0_ description: User-specific authentication key. - name: minDate description: The start date of the period you would like to view. in: query schema: type: string format: date required: true - name: page description: The page number. in: query schema: type: integer required: false - name: pageSize description: The amount of trades in each page. in: query schema: type: integer required: false responses: '200': description: OK content: application/json: schema: type: array items: type: object properties: netProfit: type: number format: float description: The net profit of the trade closeRate: type: number format: float description: The closing rate of the trade closeTimestamp: type: string format: date-time description: The closing timestamp of the trade positionId: type: integer format: int64 description: The position ID of the trade instrumentId: type: integer format: int32 description: The instrument ID of the instrument that was traded isBuy: type: boolean description: Indicates if the trade was a buy or sell leverage: type: integer format: int32 description: The leverage used in the trade openRate: type: number format: float description: The opening rate of the trade openTimestamp: type: string format: date-time description: The opening timestamp of the trade stopLossRate: type: number format: float description: The stop loss rate of the trade takeProfitRate: type: number format: float description: The take profit rate of the trade trailingStopLoss: type: boolean description: Indicates if the trade had a trailing stop loss orderId: type: integer format: int64 description: The order ID of the trade socialTradeId: type: integer format: int64 description: The social trade ID of the trade parentPositionId: type: integer format: int64 description: The parent position ID of the trade investment: type: number format: float description: The investment amount of the trade initialInvestment: type: number format: float description: The initial investment amount of the trade fees: type: number format: float description: The fees of the trade units: type: number format: float description: The number of units traded operationId: listTradingHistory2 /api/v2/trading/execution/orders: post: tags: - Trading - Real summary: Create an order description: This endpoint allows traders to place an order. Leverage, stop-loss, and take-profit settings can be applied. Order size must use exactly one of amount, units, or contracts. A unique X-Request-Id header (GUID) is required for idempotency. Currently only orders to open a position are supported. operationId: createRealOrder security: - bearerAuth: [] parameters: - name: x-request-id in: header required: true schema: type: string format: uuid example: 86d5b1d1-846e-44d6-b1c9-0b1991dbabb7 description: A unique request identifier. - name: x-api-key in: header required: true schema: type: string format: password example: lhgfaslk21490FAScVPkdsb53F9dNkfHG4faZSG5vfjndfcfgdssdgsdHF4663 description: API key for authentication. - name: x-user-key in: header required: true schema: type: string format: password example: eyJlYW4iOiJVbnJlZ2lzdGVyZWRBcHBsaWNhdGlvbiIsImVrIjoiOE5sZ2cwcW5EUVdROUFNWGpXT2lmOWktZnpidG5KcUlqWGJ3WHJZZkpZcldrbG90ZEhvLVBjSWhQaU8xU1ZtMW84aU1WZGZqN2xWNzFjLXFxLmcybXE1dnh4Q1hUT25xaWRUaTFlcEhmVk1fIn0_ description: User-specific authentication key. requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/UnifiedOrderRequestForRealCreateOrderDocs' example: action: open transaction: buy symbol: AAPL instrumentId: 101 orderType: mkt triggerRate: null leverage: 2 amount: 1000.0 orderCurrency: usd units: null contracts: null stopLossRate: 1.2 takeProfitRate: 1.5 stopLossType: fixed additionalMargin: null positionIds: null responses: '200': description: Order submitted successfully. Returns the created order details. content: application/json: schema: $ref: '#/components/schemas/UnifiedOrderResponse' example: token: 066faaee-e1e9-49d2-a568-c6e1cc336ad8 orderId: 13902598 referenceId: 1c94300c-90aa-4303-9d00-dec376d74efb '400': description: Invalid request. Validation failed. content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' '401': description: Unauthorized. Invalid or missing authentication. content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' '404': description: Resource not found. content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' '500': description: Internal server error. /api/v2/trading/execution/orders/{orderId}: delete: tags: - Trading - Real summary: Cancels an order before it is executed description: This endpoint allows traders to cancel an order before execution. If the order has already been processed, cancellation will not be possible. This operation is idempotent when the order is already closed or cancelled. operationId: cancelRealOrder security: - bearerAuth: [] parameters: - name: x-request-id in: header required: true schema: type: string format: uuid example: ba62ef26-e833-45cc-9cbe-7eaace601999 description: A unique request identifier. - name: x-api-key in: header required: true schema: type: string format: password example: lhgfaslk21490FAScVPkdsb53F9dNkfHG4faZSG5vfjndfcfgdssdgsdHF4663 description: API key for authentication. - name: x-user-key in: header required: true schema: type: string format: password example: eyJlYW4iOiJVbnJlZ2lzdGVyZWRBcHBsaWNhdGlvbiIsImVrIjoiOE5sZ2cwcW5EUVdROUFNWGpXT2lmOWktZnpidG5KcUlqWGJ3WHJZZkpZcldrbG90ZEhvLVBjSWhQaU8xU1ZtMW84aU1WZGZqN2xWNzFjLXFxLmcybXE1dnh4Q1hUT25xaWRUaTFlcEhmVk1fIn0_ description: User-specific authentication key. - name: orderId in: path required: true description: The ID of the order to cancel. schema: type: integer format: int64 example: 13902598 responses: '200': description: Order cancellation request submitted successfully. content: application/json: schema: type: object description: Acknowledgment when the service returns a confirmation payload. properties: token: type: string format: uuid description: Optional confirmation token for the cancellation request. example: token: 7f1da128-f516-4710-8474-915566c4b22e '400': description: Invalid request. Validation failed or unsupported order type. content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' '401': description: Unauthorized. Invalid or missing authentication. content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' '404': description: Order not found. content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' '500': description: Internal server error. /api/v2/trading/info/costs: post: tags: - Trading - Real summary: Get a what-if cost breakdown for opening or closing a position description: 'Returns the markup, market spread, transaction fee, overnight fee, over-weekend fee, and SDRT that would apply if the supplied order were executed now. For `action: open`, exactly one of `symbol` or `instrumentId` must be provided and `leverage` must be at least 1. For `action: close`, `positionIds` must be non-empty.' operationId: getCost security: - bearerAuth: [] parameters: - name: x-request-id in: header required: true schema: type: string format: uuid example: a3da1c20-5040-4f37-aa49-5bab12627d0b description: A unique request identifier. - name: x-api-key in: header required: true schema: type: string format: password example: lhgfaslk21490FAScVPkdsb53F9dNkfHG4faZSG5vfjndfcfgdssdgsdHF4663 description: API key for authentication. - name: x-user-key in: header required: true schema: type: string format: password example: eyJlYW4iOiJVbnJlZ2lzdGVyZWRBcHBsaWNhdGlvbiIsImVrIjoiOE5sZ2cwcW5EUVdROUFNWGpXT2lmOWktZnpidG5KcUlqWGJ3WHJZZkpZcldrbG90ZEhvLVBjSWhQaU8xU1ZtMW84aU1WZGZqN2xWNzFjLXFxLmcybXE1dnh4Q1hUT25xaWRUaTFlcEhmVk1fIn0_ description: User-specific authentication key. requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/UnifiedOrderRequest' examples: open: summary: Cost for opening a position value: action: open transaction: buy instrumentId: 101 settlementType: cfd orderType: mkt leverage: 2 amount: 1000.0 orderCurrency: usd close: summary: Cost for closing one or more positions value: action: close transaction: sell positionIds: - 13902598 - 13902599 responses: '200': description: Cost breakdown resolved successfully. content: application/json: schema: $ref: '#/components/schemas/GetCostResponse' example: instrumentId: 101 symbol: AAPL costs: - costType: markup amount: 0.15 currency: USD - costType: marketSpread amount: 0.03 currency: USD - costType: transactionFee amount: 1.0 currency: USD - costType: overnightFee amount: 0.25 currency: USD - costType: overWeekendFee amount: 0.75 currency: USD - costType: sdrt amount: 0.5 currency: USD lastUpdated: '2026-05-25T08:30:00Z' '400': description: Invalid request. Validation failed. content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' '401': description: Unauthorized. Invalid or missing authentication. content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' '404': description: Instrument or position not found. '500': description: Internal server error. /api/v2/trading/info/eligibility: post: tags: - Trading - Real summary: Check trading permissions, limits, and available leverage for one or more instruments description: Returns per-instrument trading configuration for the authenticated account - position limits, permitted order types, stop-loss and take-profit boundaries, and available leverage by settlement type and direction. Instruments not found are listed in notFoundInstrumentIds and notFoundSymbols. At least one of instrumentIds or symbols must be supplied; the combined length must not exceed 100 instruments. operationId: getInstrumentEligibility security: - bearerAuth: [] parameters: - name: x-request-id in: header required: true schema: type: string format: uuid example: 31ce2517-9c7f-4592-9621-c022bc40c76b description: A unique request identifier. - name: x-api-key in: header required: true schema: type: string format: password example: lhgfaslk21490FAScVPkdsb53F9dNkfHG4faZSG5vfjndfcfgdssdgsdHF4663 description: API key for authentication. - name: x-user-key in: header required: true schema: type: string format: password example: eyJlYW4iOiJVbnJlZ2lzdGVyZWRBcHBsaWNhdGlvbiIsImVrIjoiOE5sZ2cwcW5EUVdROUFNWGpXT2lmOWktZnpidG5KcUlqWGJ3WHJZZkpZcldrbG90ZEhvLVBjSWhQaU8xU1ZtMW84aU1WZGZqN2xWNzFjLXFxLmcybXE1dnh4Q1hUT25xaWRUaTFlcEhmVk1fIn0_ description: User-specific authentication key. requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/InstrumentEligibilityRequest' example: instrumentIds: - 1001 symbols: - AAPL currency: USD responses: '200': description: Eligibility resolved successfully content: application/json: schema: $ref: '#/components/schemas/InstrumentEligibilityResponse' example: currency: USD eligibilities: - instrumentId: 1001 symbol: AAPL minPositionExposure: 50.0 maxUnitsPerOrder: 10000.0 allowOpenPosition: true allowClosePosition: true allowPartialClosePosition: true allowMitOrders: true allowEntryOrders: false allowExitOrders: false allowTrailingStopLoss: true requiresW8Ben: null unitsQuantityType: FractionalUnits orderFillBehaviorType: BestEffort allowedOrderQuantityType: Both tradeUnitType: Units initialMarginInAssetCurrency: null stopLossMarginInAssetCurrency: null additionalBufferPercent: null leverageConfigs: - settlementType: CFD direction: LONG leverageValues: - 1 - 2 - 5 isPotential: false minPositionAmount: 50.0 allowEditStopLoss: true minStopLossPercentage: 5.0 maxStopLossPercentage: 50.0 defaultStopLossPercentage: 50.0 allowEditTakeProfit: true minTakeProfitPercentage: 5.0 maxTakeProfitPercentage: 1000.0 defaultTakeProfitPercentage: 1000.0 allowStopLossTakeProfit: true notFoundInstrumentIds: [] notFoundSymbols: [] '400': description: Invalid request. Validation failed. content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' '401': description: Unauthorized. Invalid or missing authentication. content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' '500': description: Internal server error. /api/v2/trading/info/orders:lookup: get: tags: - Trading - Real summary: Get Order Information and Position Details for Real Account description: Retrieves comprehensive information about a specific order, including the order status, execution details, and all positions that were opened or closed from this order. This endpoint is essential for tracking order execution and identifying which positions were created as a result of a specific order request. The response includes detailed position information with PositionID values that can be used to query position-specific details. Provide exactly one of orderId or referenceId. operationId: lookupRealOrder security: - bearerAuth: [] parameters: - name: x-request-id in: header required: true schema: type: string format: uuid example: 7e94ff5d-a987-4e52-991d-72b95b90b3d1 description: A unique request identifier. - name: x-api-key in: header required: true schema: type: string format: password example: lhgfaslk21490FAScVPkdsb53F9dNkfHG4faZSG5vfjndfcfgdssdgsdHF4663 description: API key for authentication. - name: x-user-key in: header required: true schema: type: string format: password example: eyJlYW4iOiJVbnJlZ2lzdGVyZWRBcHBsaWNhdGlvbiIsImVrIjoiOE5sZ2cwcW5EUVdROUFNWGpXT2lmOWktZnpidG5KcUlqWGJ3WHJZZkpZcldrbG90ZEhvLVBjSWhQaU8xU1ZtMW84aU1WZGZqN2xWNzFjLXFxLmcybXE1dnh4Q1hUT25xaWRUaTFlcEhmVk1fIn0_ description: User-specific authentication key. - name: orderId in: query description: Numeric order identifier. Mutually exclusive with referenceId. schema: type: integer format: int64 - name: referenceId in: query description: Request ID header sent during order submission. Mutually exclusive with orderId. schema: type: string responses: '200': description: Order information retrieved successfully. content: application/json: schema: $ref: '#/components/schemas/GetOrderInfoResponse' example: accountId: 7765437 gcid: 987654321 portfolioId: 1 orderId: 13902598 action: open transaction: buy type: mkt etoroOrderTypeId: 17 status: id: 1 name: Executed errorCode: 0 errorMessage: null asset: symbol: AAPL instrumentId: 101 currency: USD settlementType: cfd leverage: 2 side: long orderCurrency: usd requestedAmount: 1000.0 requestedUnits: null requestedContracts: null frozenAmount: 1002.5 requestedTriggerRate: null openStopLossRate: 1.2 openTakeProfitRate: 1.5 stopLossType: fixed totalCosts: 2.5 positionsToClose: [] positionExecutions: - positionId: 9001 state: open investedAmountCurrency: 1000 initialExposureAccountCurrency: 1000.0 initialExposureAssetCurrency: 1000.0 addedFunds: 0.0 marginAccountCurrency: 1000.0 marginAssetCurrency: 1000.0 remainingUnits: 10.5 remainingContracts: 10.5 stopLossRate: 1.2 takeProfitRate: 1.5 openingData: openTime: '2024-01-01T09:00:00Z' orderId: 5001 executionTime: '2024-01-01T09:00:01Z' units: 10.5 contracts: null avgPrice: 95.238095 avgConversionRate: 1.0 marketSpread: 0.0002 markup: 0.0 priceId: 9876543210 fees: 2.5 taxes: 0.0 requestTime: '2024-01-01T09:00:00Z' lastUpdate: '2024-01-01T09:00:01Z' openActionType: customer requestType: byUnits '400': description: Invalid request. Validation failed. content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' '401': description: Unauthorized. Invalid or missing authentication. content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' '404': description: Order not found. content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' '500': description: Internal server error. components: schemas: AggregatedPortfolioAccountTotals: type: object description: Account-level balance and equity totals. properties: accountAvailableCash: type: number format: double description: 'Cash available for new trades: accountBalance minus accountFrozenCash.' accountFrozenCash: type: number format: double description: Cash reserved for pending open orders. accountCurrentPnl: type: number format: double description: Unrealized P&L across all manual positions and copy-trading mirrors in account currency. accountTotalValue: type: number format: double description: 'Total portfolio value: accountAvailableCash + accountTotalUsedMargin + accountCurrentPnl.' accountTotalUsedMargin: type: number format: double description: 'Total margin in use: manual position margins + frozen order amounts + mirror active margins.' accountBalance: type: number format: double description: Total cash balance (available + frozen), excluding invested amounts. OrderForOpen: type: object properties: orderId: type: integer description: Unique identifier for the order orderType: type: integer description: Type of order executed statusId: type: integer description: Status of the order cid: type: integer description: Customer ID associated with the order openDateTime: type: string format: date-time description: The timestamp when the order was opened. lastUpdate: type: string format: date-time description: The last update timestamp of the order. instrumentId: type: integer description: The unique identifier of the financial instrument to trade. amount: type: number format: float description: The amount of money to invest in the trade. amountInUnits: type: number format: float description: The number of units to trade. isBuy: type: boolean description: True for a buy (long) order, false for a sell (short) order. leverage: type: integer description: The leverage multiplier for the trade. stopLossRate: type: number format: float description: The stop-loss rate at which the trade will automatically close to limit losses. takeProfitRate: type: number format: float description: The take-profit rate at which the trade will automatically close to secure profits. isTslEnabled: type: boolean description: Indicates whether a trailing stop-loss is enabled. isDiscounted: type: boolean description: Indicates if the order is eligible for a discount. mirrorId: type: integer description: ID related to mirrored trades, if applicable. frozenAmount: type: number format: float description: Amount frozen for the order. totalExternalCosts: type: number format: float description: Total external costs associated with the trade. isNoTakeProfit: type: boolean description: True if no take-profit is set for this order. isNoStopLoss: type: boolean description: True if no stop-loss is set for this order. lotCount: type: number format: float description: The number of lots in the order. openPositionActionType: type: integer description: Position open reason. externalOperation: type: object description: External operation details, if any. nullable: true InstrumentEligibility: type: object description: Full trading configuration for a single instrument, including position limits, trading permissions, order configuration, margin settings, and available leverage. properties: instrumentId: type: integer format: int32 description: Unique identifier for the instrument. symbol: type: string description: Trading symbol of the instrument (e.g. AAPL, EURUSD). minPositionExposure: type: number format: decimal description: Minimum exposure value required to open a position on this instrument. maxUnitsPerOrder: type: number format: decimal description: Maximum number of units allowed per single order. allowOpenPosition: type: boolean description: Whether opening new positions is currently permitted. allowClosePosition: type: boolean description: Whether closing existing positions is currently permitted. allowPartialClosePosition: type: boolean description: Whether partially closing an existing position is permitted. allowMitOrders: type: boolean description: Whether Market-if-Touched (limit) orders are supported. allowEntryOrders: type: boolean description: Whether submitting open orders when the market is closed is allowed. allowExitOrders: type: boolean description: Whether submitting close orders when the market is closed is allowed. allowTrailingStopLoss: type: boolean description: Whether a trailing stop-loss can be set on positions for this instrument. requiresW8Ben: type: boolean nullable: true description: Whether a W-8BEN tax form is required to trade this instrument. Null if not applicable. unitsQuantityType: type: string description: 'What trade quantity type is allowed. Possible values: `WholeUnits`, `FractionalUnits`.' orderFillBehaviorType: type: string description: 'How orders are filled for this instrument. Possible values: `BestEffort`, `FillOrKill`.' allowedOrderQuantityType: type: string description: 'How order size can be specified. Possible values: `Units`, `Amount`, `Both`.' tradeUnitType: type: string description: 'Unit type used to express trade size. Possible values: `Units`, `Lots`.' initialMarginInAssetCurrency: type: number format: decimal nullable: true description: Initial margin expressed in the asset currency. Null if not applicable. stopLossMarginInAssetCurrency: type: number format: decimal nullable: true description: Stop-loss margin expressed in the asset currency. Null if not applicable. additionalBufferPercent: type: number format: decimal nullable: true description: Additional buffer applied to the current rate to limit the order execution price - usually for low-liquidity assets. This also causes additional funds to be reserved for the order. Null if no buffer. leverageConfigs: type: array items: $ref: '#/components/schemas/LeverageConfiguration' description: Available leverage configurations, each specific to a settlement type and direction. Mirror: type: object properties: mirrorID: type: integer description: Unique identifier for the mirror CID: type: integer description: Customer ID associated with the mirror parentCID: type: integer description: Customer ID of the trader being copied stopLossPercentage: type: number format: float description: The precentage of the mirror value that the StopLossAmount represented at the time of the last edit. Adding or removing funds from the mirror will trigger recalculation of StopLossAmount based on this value compared to the current mirror value isPaused: type: boolean description: Indication if the mirror is currently paused, restricting open of additional positions inside the mirror copyExistingPositions: type: boolean description: Indication if mirror originally copied all parent existing position on mirror registration availableAmount: type: number format: float description: Available to trade USD balance in the mirror. This balance is reserved for mirror operations stopLossAmount: type: number format: float description: USD value of the mirror at which MirrorStopLoss will be triggered and cause liquidation of the mirror. Adding or removing funds from the mirror will trigger recalculation of this value based on StopLossPercentage compared to the current mirror value initialInvestment: type: number format: float description: USD amount initially invested in the mirror depositSummary: type: number format: float description: Total USD amount deposited into the mirror after initial investment withdrawalSummary: type: number format: float description: Total USD amount withdrawn from the mirror positions: type: array items: $ref: '#/components/schemas/Position' description: List of currently open trading positions in the mirror parentUsername: type: string description: Username of the trader being copied closedPositionsNetProfit: type: number format: float description: Total USD net profit of all positions that closed in the mirror startedCopyDate: type: string format: date-time description: Date and time when the mirror trading was initiated pendingForClosure: type: boolean description: Indication if the mirror is in closure process parentMirrors: type: array items: type: object description: Parent mirrors for this mirror (if any) mirrorCalculationType: type: integer description: (Obsolete) Mirror positions weights calculation methodology ordersForOpen: type: array items: $ref: '#/components/schemas/OrderForOpen' description: Active orders in the mirror to open positions ordersForClose: type: array items: $ref: '#/components/schemas/OrderForClose' description: Active orders in the mirror to close positions ordersForCloseMultiple: type: array items: $ref: '#/components/schemas/OrderForCloseMultiple' description: Active orders in the mirror to close positions mirrorStatusID: type: integer description: Current status of the mirror. 0 - Active, 1 - Paused, 2 - Pending Closure, 3 - In Alignment Process delayedOrderForClose: type: array items: type: object description: Delayed orders for closing positions delayedOrderForOpen: type: array items: type: object description: Delayed orders for opening positions entryOrders: type: array items: type: object description: Entry orders awaiting execution in the mirror exitOrders: type: array items: type: object description: Exit orders awaiting execution in the mirror GetOrderInfoStatus: type: object description: Status information for the order. properties: id: type: integer format: int32 description: 'Status identifier. Common values: 1 = Executed, 2 = Cancelled, 3 = Rejected.' name: type: string description: Human-readable status name. errorCode: type: integer format: int32 description: Error code if the order failed. Zero indicates no error. errorMessage: type: string nullable: true description: Human-readable error message if the order failed. CostBreakdown: type: object description: Individual cost component (markup, fees, SDRT) in the requested order currency. properties: costType: type: string description: Identifies which cost component this entry represents. enum: - markup - marketSpread - transactionFee - overnightFee - overWeekendFee - sdrt amount: type: number format: double description: The monetary value of this cost component, expressed in `currency`. currency: type: string description: ISO 4217 currency code in which `amount` is denominated. OrderForOpenInfoResponse: type: object description: Comprehensive order information response containing order details and all positions opened from this order. required: - orderID - CID - statusID - orderType - instrumentID - requestOccurred properties: token: type: string description: Tracking token for the request, used for correlation and debugging purposes. This token is generated by the system and can be used to track the request through various system components. example: 550e8400-e29b-41d4-a716-446655440000 orderID: type: integer format: int64 description: The unique identifier of the order. This is the same OrderID that was provided in the request path parameter. example: 123456789 CID: type: integer format: int64 description: Customer ID (CID) associated with the order. This identifies the user account that created the order. example: 987654321 referenceID: type: string description: Reference tracking ID for the order request. example: 00000000-0000-0000-0000-000000000000 statusID: type: integer description: 'Current status of the order. Common values: 0 = Pending, 1 = Executed, 2 = Cancelled, 3 = Rejected, 4 = Partially Executed. The exact meaning of status codes may vary based on order type and system configuration.' example: 1 orderType: type: integer description: 'Type of the order. Common values: 1 = Market Order, 2 = Limit Order, 3 = Stop Order. The exact order types depend on the trading system configuration.' example: 1 openActionType: type: integer description: The action type that triggered the order creation. This indicates the reason or context for opening the position, such as manual trade, copy trading, automated strategy, etc. example: 1 errorCode: type: integer format: nullable description: Error code if the order execution failed or encountered an error. This field is null if the order was successful. Error codes are system-specific and should be referenced against the system's error code documentation. example: null errorMessage: type: string format: nullable description: Human-readable error message describing any error that occurred during order processing. This field is null if the order was successful. Provides additional context beyond the errorCode. example: null instrumentID: type: integer description: The unique identifier of the financial instrument that the order was placed for. This corresponds to the instrument being traded (e.g., stock, currency pair, commodity). example: 67890 amount: type: number format: decimal description: The USD amount that was requested to be invested in the position. This represents the monetary value allocated to the order. example: 1000.0 units: type: number format: decimal description: The number of units that were requested to be traded. If the order was placed by units rather than amount, this value represents the requested quantity. example: 10.5 requestOccurred: type: string format: date-time description: The timestamp when the order request was initially created and submitted to the system. This is in ISO 8601 format (UTC). example: '2024-01-15T10:30:00Z' positions: type: array description: List of all positions that were opened as a result of this order. Each position in this array represents a successfully executed position created from the order. This array is empty if the order has not yet been executed or if execution failed. items: $ref: '#/components/schemas/OrderForOpenPositionInfo' LeverageConfiguration: type: object description: Leverage configuration for a specific settlement type and trade direction combination. properties: settlementType: type: string description: 'The settlement type this configuration applies to. Possible values: CFD, REAL, REAL_FUTURES, MARGIN_TRADE.' direction: type: string description: 'The trade direction. Possible values: LONG, SHORT.' leverageValues: type: array items: type: integer format: int32 description: Available leverage multipliers for this settlement type and direction. isPotential: type: boolean description: Additional user questionnaire may be required to allow the user to trade with this setup of settlement and leverages. minPositionAmount: type: number format: decimal description: Minimum monetary collateral required to open a position under this leverage configuration. allowEditStopLoss: type: boolean description: Whether the stop-loss can be edited for positions under this configuration. minStopLossPercentage: type: number format: decimal description: Minimum stop-loss percentage allowed from the allocated margin of the position. maxStopLossPercentage: type: number format: decimal description: Maximum stop-loss percentage allowed from the allocated margin of the position. defaultStopLossPercentage: type: number format: decimal description: Default stop-loss percentage applied when no explicit value is provided. allowEditTakeProfit: type: boolean description: Whether the take-profit can be edited. minTakeProfitPercentage: type: number format: decimal description: Minimum take-profit percentage allowed from the allocated margin of the position. maxTakeProfitPercentage: type: number format: decimal description: Maximum take-profit percentage allowed from the allocated margin of the position. defaultTakeProfitPercentage: type: number format: decimal description: Default take-profit percentage applied when no explicit value is provided. allowStopLossTakeProfit: type: boolean description: Whether stop-loss and take-profit can be set on a position. GetOrderInfoResponse: type: object description: Detailed information about a specific order retrieved via the orders lookup endpoint. properties: accountId: type: integer format: int64 description: The account identifier associated with this order. gcid: type: integer format: int64 description: The global customer identifier. portfolioId: type: integer format: int32 description: The portfolio identifier. orderId: type: integer format: int64 description: The unique identifier of the order. action: type: string description: 'The order action. Possible values: open, close.' transaction: type: string description: 'The transaction direction. Possible values: buy, sell, sellShort, buyToCover.' type: type: string description: 'The order type. Possible values: mkt, mit.' etoroOrderTypeId: type: integer format: int32 description: The internal eToro order type identifier. status: $ref: '#/components/schemas/GetOrderInfoStatus' asset: $ref: '#/components/schemas/GetOrderInfoAsset' orderCurrency: type: string description: The currency used for the order. requestedAmount: type: number format: double nullable: true description: The requested monetary amount for the order. requestedUnits: type: number format: double nullable: true description: The requested number of units for the order. requestedContracts: type: number format: double nullable: true description: The requested number of contracts for the order. frozenAmount: type: number format: double nullable: true description: The amount frozen/reserved for the order including costs. requestedTriggerRate: type: number format: double nullable: true description: The trigger rate for limit or stop orders. openStopLossRate: type: number format: double nullable: true description: The stop-loss rate at order open. openTakeProfitRate: type: number format: double nullable: true description: The take-profit rate at order open. stopLossType: type: string nullable: true description: 'The stop-loss type. Possible values: fixed, trailing.' totalCosts: type: number format: double description: Total costs associated with the order. positionsToClose: type: array items: type: integer format: int64 description: List of position IDs to close as part of a close order. positionExecutions: type: array items: $ref: '#/components/schemas/GetOrderInfoPositionExecution' description: List of position executions resulting from this order. requestTime: type: string format: date-time description: The timestamp when the order was requested. lastUpdate: type: string format: date-time description: The timestamp of the last update to the order. openActionType: type: string description: The action type that initiated the order. requestType: type: string description: 'The request sizing type. Possible values: byAmount, byUnits, byContracts.' OrderForOpenPositionInfo: type: object description: Detailed information about a position that was opened from an order. This object contains all the essential details needed to identify and track the position. required: - positionID - orderType - occurred - rate - units - amount - isOpen properties: positionID: type: integer format: int64 description: The unique identifier of the position that was opened from this order. This PositionID is the key property that can be used to query detailed position information, track position status, and perform position-specific operations. This is the primary identifier for the position in the trading system. example: 9876543210 orderType: type: integer description: The type of order that was used to open this position. This matches the orderType from the parent order and indicates the execution method (e.g., Market Order, Limit Order). example: 1 occurred: type: string format: date-time description: The exact timestamp when this position was opened and executed. This is in ISO 8601 format (UTC) and represents when the position became active in the trading system. example: '2024-01-15T10:30:15Z' rate: type: number format: decimal description: The execution rate (price) at which the position was opened. This is the actual price at which the trade was executed, which may differ from the requested rate depending on market conditions and order type. example: 1.2345 units: type: number format: decimal description: The number of units in the position. This represents the quantity of the instrument that was acquired when the position was opened. example: 10.5 conversionRate: type: number format: decimal description: The currency conversion rate that was applied when opening the position. This rate is used to convert between the instrument's base currency and the account currency (typically USD) at the time of execution. example: 1.0 amount: type: number format: decimal description: The USD amount that was invested in this position. This represents the monetary value allocated to this specific position. example: 1000.0 isOpen: type: boolean description: Indicates whether the position is currently open (true) or has been closed (false). This status reflects the current state of the position at the time the order information was retrieved. example: true InstrumentEligibilityResponse: type: object description: Response containing trading configuration for all requested instruments. properties: currency: type: string description: The currency used for all monetary values in this response. eligibilities: type: array items: $ref: '#/components/schemas/InstrumentEligibility' description: Trading configuration for each resolved instrument. notFoundInstrumentIds: type: array items: type: integer format: int32 description: Instrument IDs that were requested but could not be found. notFoundSymbols: type: array items: type: string description: Symbols that were requested but could not be found. OrderForCloseMultiple: type: object properties: orderId: type: integer description: Unique identifier for the closing order. orderType: type: integer description: Type of order executed. statusId: type: integer description: Status of the closing order. cid: type: integer description: Customer ID associated with the order. openDateTime: type: string format: date-time description: The timestamp when the order was placed. lastUpdate: type: string format: date-time description: The timestamp of the last update to this order. instrumentId: type: integer description: The ID of the instrument traded. unitsToDeduct: type: number format: float description: The number of units closed in this order. lotsToDeduct: type: number format: float description: The number of lots closed in this order. pendingClosePositionIds: type: array items: type: integer description: IDs of positions pending close in this order. AggregatedPortfolioInstrumentAggregate: type: object description: Aggregated data across all positions for a single instrument. properties: instrumentId: type: integer format: int32 description: eToro instrument identifier. assetCurrency: type: string description: ISO 4217 code of the instrument's base currency (e.g. 'USD', 'EUR'). totalMarginAccountCurrency: type: number format: double description: Sum of margins across all positions for this instrument, in account currency. totalFees: type: number format: double description: Sum of transaction fees taken on positions of this instrument, in asset currency. totalFeesAcctCcy: type: number format: double description: Sum of transaction fees taken on positions of this instrument, in account currency. totalTaxes: type: number format: double description: Sum of taxes for this instrument, in asset currency. totalTaxesAcctCcy: type: number format: double description: Sum of taxes for this instrument, in account currency. totalMarginAssetCurrency: type: number format: double description: Sum of margins across all positions for this instrument, in asset currency. pnlAssetCurrency: type: number format: double nullable: true description: Unrealized P&L for this instrument in asset currency. Null when P&L calculation is not requested. accountCurrencyRoePercent: type: number format: double description: 'Return on equity in account currency: accountCurrencyReturn / totalMarginAccountCurrency.' netContracts: type: number format: double description: Net contracts across all positions (positive = net long, negative = net short). netUnits: type: number format: double description: Net units across all positions (positive = net long, negative = net short). netCurrentExposureAssetCurrency: type: number format: double description: Net current market exposure in asset currency. netCurrentExposureAccountCurrency: type: number format: double description: Net current market exposure in account currency. netInitialExposureAccountCurrency: type: number format: double description: Net initial exposure at open in account currency. accountCurrencyReturn: type: number format: double description: Unrealized P&L for this instrument in account currency. liquidationValueAccountCurrency: type: number format: double description: 'Current liquidation value in account currency: totalMarginAccountCurrency + accountCurrencyReturn.' liquidationValueAssetCurrency: type: number format: double description: Current liquidation value in asset currency. avgLeverage: type: number format: double description: Average leverage across all positions for this instrument. avgOpenRate: type: number format: double description: Weighted average open rate across all positions for this instrument. netAvgOpenRate: type: number format: double description: Direction-aware weighted average open rate (long contributions minus short). avgConversionRate: type: number format: double description: Weighted average asset-to-account-currency conversion rate at position open. UnifiedOrderRequestForRealCreateOrderDocs: type: object description: Request payload for creating an order to open or close a position. required: - action - transaction properties: action: type: string description: 'The order action type. Possible values: open, close.' enum: - open - close example: open transaction: type: string description: 'The transaction direction. Possible values: buy, sell, sellShort, buyToCover.' enum: - buy - sell - sellShort - buyToCover example: buy symbol: type: string description: The asset ticker symbol. Required for open orders. nullable: true example: AAPL instrumentId: type: integer format: int32 description: The eToro instrument identifier. Required for open orders. nullable: true example: 101 orderType: type: string description: 'The order execution type. Possible values: mkt (market), mit (market if touched).' enum: - mkt - mit example: mkt triggerRate: type: number format: double nullable: true description: The trigger rate for mit orders. Required for mit orders. leverage: type: integer format: int32 description: The leverage multiplier to apply. Required for open orders. nullable: true example: 2 amount: type: number format: double nullable: true description: The monetary amount to invest in the order currency. Mutually exclusive with units and contracts. example: 1000.0 orderCurrency: type: string description: The currency for the order amount. Typically usd. nullable: true example: usd units: type: number format: double nullable: true description: The number of units to trade. Mutually exclusive with amount and contracts. contracts: type: number format: double nullable: true description: The number of contracts to trade. Mutually exclusive with amount and units. stopLossRate: type: number format: double nullable: true description: The stop-loss rate at which the position will automatically close. example: 1.2 takeProfitRate: type: number format: double nullable: true description: The take-profit rate at which the position will automatically close. example: 1.5 stopLossType: type: string nullable: true description: 'The stop-loss type. Possible values: fixed, trailing.' enum: - fixed - trailing example: fixed additionalMargin: type: number format: double nullable: true description: Additional margin to allocate to the position. positionIds: type: array items: type: integer format: int64 nullable: true description: List of position IDs to close. Required for close orders. PortfolioResponseWithPnl: type: object description: Comprehensive portfolio information including positions, orders, and account status properties: clientPortfolio: $ref: '#/components/schemas/ClientPortfolio' description: Container for all portfolio-related information AggregatedPortfolioResponse: type: object description: Complete snapshot of the authenticated user's investment portfolio, organized by asset. properties: cid: type: integer format: int32 description: Customer ID. timestamp: type: string format: date-time description: Time at which this portfolio snapshot was calculated. accountCurrency: type: string description: ISO 4217 code of the account's base currency (e.g. 'USD'). accountTotals: $ref: '#/components/schemas/AggregatedPortfolioAccountTotals' instrumentAggregates: type: array description: Positions held directly (not via copy trading), grouped by instrument. items: $ref: '#/components/schemas/AggregatedPortfolioInstrumentAggregate' mirrors: type: array description: Copy-trading relationships the user has active. items: $ref: '#/components/schemas/AggregatedPortfolioMirrorAggregate' Position: type: object properties: positionID: type: integer description: Unique identifier for the position CID: type: integer description: Customer ID associated with the position openDateTime: type: string format: date-time description: Timestamp when the position was opened in ISO 8601 format openRate: type: number format: float description: Entry price of the position in the instrument's currency instrumentID: type: integer description: Identifier of the traded instrument mirrorID: type: integer description: Mirror ID if the position is part of copy trading, 0 otherwise parentPositionID: type: integer description: Parent position ID for mirrored positions, 0 otherwise isBuy: type: boolean description: 'Position direction: true for long (buy) positions, false for short (sell) positions' takeProfitRate: type: number format: float description: Rate at which TakeProfit will trigger and send MarketOrder to close the position stopLossRate: type: number format: float description: Rate at which StopLoss will trigger and send MarketOrder to close the position amount: type: number format: float description: USD amount allocated to the position. This amount includes both the initial investment, and additional margin allocated to the position as collateral leverage: type: integer description: Leverage multiplier applied to the position orderID: type: integer description: Original orderID the position was opened by. Need to match together with orderType orderType: type: integer description: Original orderType of the order the position was opened by. Need to match together with orderId units: type: number format: float description: Number of units in the position totalFees: type: number format: float description: Total overnight fees and dividends charged/paid on the position in USD. Negative amount represents refund initialAmountInDollars: type: number format: float description: Initial investment USD amount in the position. This value does not change in case the position was partially closed isTslEnabled: type: boolean description: Indication if TrailingStopLoss feature is active on this position stopLossVersion: type: integer description: Manual stop loss edit version. Each time StopLossRate is manually update this value is incremented isSettled: type: boolean description: Obsolete redeemStatusID: type: integer description: If the position is currently in redeem process, this value represents the current status initialUnits: type: number format: float description: Initial invested units in the position. This value does not change in case the position was partially closed isPartiallyAltered: type: boolean description: Indication whether this position was partially closed unitsBaseValueDollars: type: number format: float description: USD value of the current units in the position, based on the initial investment. If the position was not partially altered, this value equals initialAmountInDollars isDiscounted: type: boolean description: Obsolete. This value is used to indicate if the relevant prices for the position are Ask/Bid or AskDiscounted/BidDiscounted openPositionActionType: type: integer description: Position open reason settlementTypeID: type: integer description: Position investment type. 0 - CFD, 1 - Real Asset, 2 - SWAP, 3 - Crypto MarginTrade, 4 - Future Contract isDetached: type: boolean description: Indication if the position was originally opened inside a mirror and detached from it openConversionRate: type: number format: float description: Conversion rate from the asset currency to USD at the time the position was opened pnlVersion: type: integer description: Pnl formula used for calculating profit and loss totalExternalFees: type: number format: float description: Total fees in USD charged on the position. Example - TicketFee. This value does not include overnight fees and dividends totalExternalTaxes: type: number format: float description: Total taxes in USD charged on the position. Example - SDRT isNoTakeProfit: type: boolean description: Indication if TakeProfit is enabled for the position. false = enabled, true = disabled isNoStopLoss: type: boolean description: Indication if StopLoss is enabled for the position. false = enabled, true = disabled lotCount: type: number format: float description: Number of lots the position represents. For FutureContracts, this value represents the number of contracts acquired. This property is not relevant for instruments that are not futures instruments unrealizedPnL: type: object nullable: true description: Unrealized profit/loss details for the position (only present in PnL endpoints) properties: pnL: type: number format: float description: Unrealized P&L in account currency pnlAssetCurrency: type: number format: float description: Unrealized P&L in asset currency exposureInAccountCurrency: type: number format: float description: Current exposure in account currency exposureInAssetCurrency: type: number format: float description: Current exposure in asset currency marginInAccountCurrency: type: number format: float description: Margin in account currency marginInAssetCurrency: type: number format: float description: Margin in asset currency marginCurrencyId: type: integer description: Currency ID for margin assetCurrencyId: type: integer description: Currency ID for the asset closeRate: type: number format: float description: Current close rate closeConversionRate: type: number format: float description: Current close conversion rate timestamp: type: string format: date-time description: Timestamp of the PnL calculation AggregatedPortfolioMirrorAggregate: type: object description: Aggregated data for a single copy-trading relationship. properties: mirrorId: type: integer format: int32 description: Mirror identifier. A value of 0 represents manually held positions. mirrorAvailableCash: type: number format: double description: Cash available within this mirror for new copy positions. mirrorDepositTotal: type: number format: double description: 'Total amount ever deposited into this mirror: initialInvestment + depositSummary.' mirrorWithdrawalTotal: type: number format: double description: Total amount ever withdrawn from this mirror. mirrorStopLossPercentage: type: number format: double description: Stop-loss threshold as a percentage of the mirror's current value. mirrorStopLoss: type: number format: double description: Stop-loss threshold in account currency. The mirror liquidates when its value falls to this level. mirrorClosedPositionsPnl: type: number format: double description: Accumulated net profit from all closed positions within this mirror. mirrorTotals: $ref: '#/components/schemas/AggregatedPortfolioMirrorTotals' instrumentAggregates: type: array description: Positions held within this copy-trading mirror, grouped by instrument. items: $ref: '#/components/schemas/AggregatedPortfolioInstrumentAggregate' GetOrderInfoOpeningData: type: object description: Execution data recorded when the position was opened. properties: openTime: type: string format: date-time description: The timestamp when the position was opened. orderId: type: integer format: int64 description: The order identifier that opened the position. executionTime: type: string format: date-time description: The execution timestamp. units: type: number format: double nullable: true description: Number of units executed. contracts: type: number format: double nullable: true description: Number of contracts executed. avgPrice: type: number format: double description: The average execution price. avgConversionRate: type: number format: double description: The average currency conversion rate applied. marketSpread: type: number format: double description: The market spread at execution time. markup: type: number format: double description: The markup applied to the spread. priceId: type: integer format: int64 description: The price snapshot identifier used for execution. fees: type: number format: double description: Fees charged for the execution. taxes: type: number format: double description: Taxes applied to the execution. GetCostResponse: type: object description: Cost breakdown for a hypothetical open or close order. properties: instrumentId: type: integer format: int32 description: Identifier of the instrument the cost breakdown applies to. symbol: type: string nullable: true description: Symbol of the instrument costs: type: array items: $ref: '#/components/schemas/CostBreakdown' description: Cost components that would apply to the proposed order. lastUpdated: type: string format: date-time description: Timestamp (ISO 8601) at which the cost figures were generated. OrderForClose: type: object properties: orderId: type: integer description: Unique identifier for the closing order. orderType: type: integer description: Type of order executed. statusId: type: integer description: Status of the closing order. cid: type: integer description: Customer ID associated with the order. openDateTime: type: string format: date-time description: The timestamp when the order was placed. lastUpdate: type: string format: date-time description: The timestamp of the last update to this order. instrumentId: type: integer description: The ID of the instrument traded. unitsToDeduct: type: number format: float description: The number of units closed in this order. lotsToDeduct: type: number format: float description: The number of lots closed in this order. positionId: type: integer description: The ID of the closed position. GetOrderInfoAsset: type: object description: Asset information associated with the order. properties: symbol: type: string description: The asset ticker symbol. instrumentId: type: integer format: int32 description: The eToro instrument identifier. currency: type: string description: The asset's base currency. settlementType: type: string description: 'Settlement type. Possible values: cfd, real, realFutures, marginTrade.' leverage: type: integer format: int32 description: The leverage applied to the order. side: type: string description: 'The position side. Possible values: long, short.' UnifiedOrderRequest: type: object description: Request payload for creating an order to open or close a position. required: - action - transaction properties: action: type: string description: 'The order action type. Possible values: open, close.' enum: - open - close example: open transaction: type: string description: 'The transaction direction. Possible values: buy, sell, sellShort, buyToCover.' enum: - buy - sell - sellShort - buyToCover example: buy symbol: type: string description: The asset ticker symbol. Required for open orders. nullable: true example: AAPL instrumentId: type: integer format: int32 description: The eToro instrument identifier. Required for open orders. nullable: true example: 101 settlementType: type: string description: 'The settlement type. Possible values: cfd, real, realFutures, marginTrade. Required for open orders.' nullable: true enum: - cfd - real - realFutures - marginTrade example: cfd orderType: type: string description: 'The order execution type. Possible values: mkt (market), mit (market if touched).' enum: - mkt - mit example: mkt triggerRate: type: number format: double nullable: true description: The trigger rate for mit orders. Required for mit orders. leverage: type: integer format: int32 description: The leverage multiplier to apply. Required for open orders. nullable: true example: 2 amount: type: number format: double nullable: true description: The monetary amount to invest in the order currency. Mutually exclusive with units and contracts. example: 1000.0 orderCurrency: type: string description: The currency for the order amount. Typically usd. nullable: true example: usd units: type: number format: double nullable: true description: The number of units to trade. Mutually exclusive with amount and contracts. contracts: type: number format: double nullable: true description: The number of contracts to trade. Mutually exclusive with amount and units. stopLossRate: type: number format: double nullable: true description: The stop-loss rate at which the position will automatically close. example: 1.2 takeProfitRate: type: number format: double nullable: true description: The take-profit rate at which the position will automatically close. example: 1.5 stopLossType: type: string nullable: true description: 'The stop-loss type. Possible values: fixed, trailing.' enum: - fixed - trailing example: fixed additionalMargin: type: number format: double nullable: true description: Additional margin to allocate to the position. positionIds: type: array items: type: integer format: int64 nullable: true description: List of position IDs to close. Required for close orders. UnifiedOrderResponse: type: object description: Response payload after successfully submitting an order. properties: token: type: string format: uuid description: A tracking token for the order request, used for correlation and debugging. example: 066faaee-e1e9-49d2-a568-c6e1cc336ad8 orderId: type: integer format: int64 description: The unique identifier of the created order. example: 13902598 referenceId: type: string format: uuid description: The client reference identifier for the order, matching the X-Request-Id header if provided. example: 1c94300c-90aa-4303-9d00-dec376d74efb ProblemDetails: type: object properties: type: type: string nullable: true title: type: string nullable: true status: type: integer format: int32 nullable: true detail: type: string nullable: true instance: type: string nullable: true additionalProperties: {} Order: type: object properties: orderId: type: integer description: Unique identifier for the order cid: type: integer description: Customer ID associated with the order openDateTime: type: string format: date-time description: Date and time when the order was created instrumentId: type: integer description: Identifier of the instrument being traded isBuy: type: boolean description: Direction of the position. true - Long, false - Short takeProfitRate: type: number format: float description: Rate at which TakeProfit will trigger and send MarketOrder to close the position once it is open stopLossRate: type: number format: float description: Rate at which StopLoss will trigger and send MarketOrder to close the position once it is open rate: type: number format: float description: Asset rate at which to send market order to the market amount: type: number format: float description: USD amount to invest in the position leverage: type: integer description: Leverage multiplier to apply to the position units: type: number format: float description: Units to open the position. If this value is greater than zero the position will open on the requested units, and not amount isTslEnabled: type: boolean description: Indication if to enable TSL feature on the position once it is open executionType: type: integer description: Type of order execution isDiscounted: type: boolean description: Obsolete isNoTakeProfit: type: boolean description: Indication if TakeProfit is enabled for the order. false = enabled, true = disabled isNoStopLoss: type: boolean description: Indication if StopLoss is enabled for the order. false = enabled, true = disabled GetOrderInfoPositionExecution: type: object description: Details of a position execution resulting from the order. properties: positionId: type: integer format: int64 description: The unique identifier of the executed position. state: type: string description: 'The current state of the position. Possible values: open, closed.' investedAmountCurrency: type: number format: double description: The invested amount in the account currency. initialExposureAccountCurrency: type: number format: double description: The initial exposure in the account currency. initialExposureAssetCurrency: type: number format: double description: The initial exposure in the asset currency. addedFunds: type: number format: double description: Additional funds added to the position. marginAccountCurrency: type: number format: double description: Margin held in the account currency. marginAssetCurrency: type: number format: double description: Margin held in the asset currency. remainingUnits: type: number format: double description: Remaining units in the position. remainingContracts: type: number format: double nullable: true description: Remaining contracts in the position. stopLossRate: type: number format: double nullable: true description: The stop-loss rate for the position. takeProfitRate: type: number format: double nullable: true description: The take-profit rate for the position. openingData: $ref: '#/components/schemas/GetOrderInfoOpeningData' InstrumentEligibilityRequest: type: object description: Request payload for checking instrument eligibility. At least one of `instrumentIds` or `symbols` must be provided; combined length must not exceed 100 instruments. properties: instrumentIds: type: array items: type: integer format: int32 nullable: true description: Optional list of instrument IDs to check. symbols: type: array items: type: string nullable: true description: Optional list of instrument symbols to check. currency: type: string default: USD description: Requested currency for financial amounts in the eligibility response (e.g. minimum position size). Currently only USD is supported. PortfolioResponse: type: object description: Comprehensive portfolio information including positions, orders, and account status properties: clientPortfolio: type: object description: Container for all portfolio-related information properties: positions: type: array description: List of currently open trading positions items: $ref: '#/components/schemas/Position' credit: type: number format: float description: Available trading balance in USD, representing funds available for new positions mirrors: type: array description: Copy trading configurations and positions items: type: object description: Individual mirror trading setup properties: mirrorID: type: integer description: Unique identifier for the mirror trading configuration CID: type: integer description: Customer ID associated with the mirror parentCID: type: integer description: Customer ID of the trader being copied stopLossPercentage: type: number format: float description: The precentage of the mirror value that the StopLossAmount represented at the time of the last edit. Adding or removing funds from the mirror will trigger recalculation of StopLossAmount based on this value compared to the current mirror value isPaused: type: boolean description: Indication if the mirror is currently paused, restricting open of additional positions inside the mirror copyExistingPositions: type: boolean description: Indication if mirror originally copied all parent existing position on mirror registration availableAmount: type: number format: float description: Available to trade USD balance in the mirror. This balance is reserved for mirror operations stopLossAmount: type: number format: float description: USD value of the mirror at which MirrorStopLoss will be triggered and cause liquidation of the mirror. Adding or removing funds from the mirror will trigger recalculation of this value based on StopLossPercentage compared to the current mirror value initialInvestment: type: number format: float description: USD amount initially invested in the mirror depositSummary: type: number format: float description: Total USD amount deposited into the mirror after initial investment withdrawalSummary: type: number format: float description: Total USD amount withdrawn from the mirror positions: type: array description: Positions within this copy trading mirror items: $ref: '#/components/schemas/Position' entryOrders: type: array description: Obsolete items: type: object exitOrders: type: array description: Obsolete items: type: object parentUsername: type: string description: Username of the trader being copied closedPositionsNetProfit: type: number format: float description: Total USD net profit of all positions that closed in the mirror startedCopyDate: type: string format: date-time description: Date and time when the mirror trading was initiated pendingForClosure: type: boolean description: Indication if the mirror is in closure process parentMirrors: type: array items: type: object mirrorCalculationType: type: integer description: (Obsolete) Mirror positions weights calculation methodology ordersForOpen: type: array description: Active orders in the mirror to open positions items: type: object ordersForClose: type: array description: Active orders in the mirror to close positions items: type: object ordersForCloseMultiple: type: array description: Active orders in the mirror to close positions items: type: object delayedOrderForClose: type: array description: Obsolete items: type: object delayedOrderForOpen: type: array description: Obsolete items: type: object mirrorStatusID: type: integer description: Current status of the mirror. 0 - Active, 1 - Paused, 2 - Pending Closure, 3 - In Alignment Process orders: type: array description: List of pending orders items: type: object description: Individual order details properties: orderID: type: integer description: Unique identifier for the order CID: type: integer description: Customer ID associated with the order openDateTime: type: string format: date-time description: Date and time when the order was created instrumentID: type: integer description: Identifier of the instrument being traded isBuy: type: boolean description: Direction of the position. true - Long, false - Short takeProfitRate: type: number format: float description: The take-profit trigger price at which the position will generate a Market Order to close (after it has opened). TakeProfit trigger price must be better than the current price. stopLossRate: type: number format: float description: The stop-loss trigger price at which the position will generate a Market Order to close (after it was opened). StopLoss trigger price must be worse than current price. rate: type: number format: float description: Asset rate at which to send market order to the market amount: type: number format: float description: USD amount to invest in the position leverage: type: number format: float description: Leverage multiplier to apply to the position units: type: number format: float description: Units to open the position. If this value is greater than zero the position will open on the requested units, and not amount isTslEnabled: type: boolean description: Indicates if a trailing stop loss (TSL) is enabled. This means that the stoploss rate indicated will get updated automatically whenever the asset price increases (for long positions) or decreases (for short position) effectively keeping the stoploss in a constant gap from the best price achieved so far. executionType: type: integer description: Type of order execution isDiscounted: type: boolean description: Obsolete stockOrders: type: array description: Obsolete items: type: object entryOrders: type: array description: Obsolete items: type: object exitOrders: type: array description: Obsolete items: type: object ordersForOpen: type: array description: Active orders to open positions items: type: object ordersForClose: type: array description: Active orders to close positions items: type: object ordersForCloseMultiple: type: array description: Active orders to close multiple positions items: type: object bonusCredit: type: number format: float description: Bonus credit amount in USD available for trading ClientPortfolio: type: object properties: positions: type: array items: $ref: '#/components/schemas/Position' description: List of currently open trading positions credit: type: number format: float description: Available trading balance in USD, representing funds available for new actions mirrors: type: array items: $ref: '#/components/schemas/Mirror' description: Copy trading configurations and positions orders: type: array items: $ref: '#/components/schemas/Order' description: List of pending orders ordersForOpen: type: array items: $ref: '#/components/schemas/OrderForOpen' description: Active orders to open positions ordersForClose: type: array items: $ref: '#/components/schemas/OrderForClose' description: Active orders to close positions ordersForCloseMultiple: type: array items: $ref: '#/components/schemas/OrderForCloseMultiple' description: Active orders to close multiple positions bonusCredit: type: number format: float description: Bonus credit amount in USD in the account unrealizedPnL: type: number format: float description: Total unrealized profit and loss across all open positions in the portfolio accountCurrencyId: type: integer description: Currency ID of the account (1 = USD) stockOrders: type: array items: type: object description: Stock-specific pending orders entryOrders: type: array items: type: object description: Entry orders awaiting execution exitOrders: type: array items: type: object description: Exit orders awaiting execution AggregatedPortfolioMirrorTotals: type: object description: Aggregated totals for a copy-trading mirror. properties: mirrorNetFunding: type: number format: double description: 'Net amount funded into the mirror: mirrorDepositTotal minus mirrorWithdrawalTotal.' mirrorPositionsPnl: type: number format: double description: Total P&L from open and closed positions within the mirror, in account currency. mirrorLiquidationValue: type: number format: double description: 'Current mirror value: mirrorActiveMargin + mirrorPositionsPnl.' mirrorPositionsPnlPercent: type: number format: double description: mirrorPositionsPnl as a percentage of mirrorLiquidationValue. mirrorMarginPercent: type: number format: double description: This mirror's active margin as a percentage of the account's total used margin. mirrorValuePercent: type: number format: double description: This mirror's liquidation value as a percentage of the account's total value. mirrorActiveMargin: type: number format: double description: 'Total margin in active use within this mirror: mirrorAvailableCash + sum of position margins minus closed positions P&L.'