Place demo limit order (market-if-touched)
Deprecated: This endpoint is marked deprecated in the eToro Public API Swagger. Prefer the current replacement endpoints where available.
Rate limit: 20 requests per 60 seconds. This is a shared quota — the same budget is consumed by a group of related endpoints, so calling any of them reduces what is left for the others (you cannot call each at the full rate independently). Endpoints sharing this quota:
DELETE /api/v1/trading/execution/demo/limit-orders/{orderId}DELETE /api/v1/trading/execution/demo/market-close-orders/{orderId}DELETE /api/v1/trading/execution/demo/market-open-orders/{orderId}DELETE /api/v2/trading/execution/demo/orders/{orderId}POST /api/v1/trading/execution/demo/market-close-orders/positions/{positionId}POST /api/v1/trading/execution/demo/market-open-orders/by-amountPOST /api/v1/trading/execution/demo/market-open-orders/by-unitsPOST /api/v2/trading/execution/demo/orders
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. A 200 response means the order was submitted successfully, not that it was created successfully, triggered, or executed: a market-if-touched order rests until the threshold rate is reached. Confirm the outcome with GET /api/v1/trading/info/demo/orders/, using the returned orderId.
Authorizations
API key of the application. Only valid together with the x-user-key header — the pair is an alternative to OAuth bearer authentication, never sent alongside it. The pair is granted the same permissions the operation's OAuth scopes describe.
Demo credential for trying the API from these docs: lhgfaslk21490FAScVPkdsb53F9dNkfHG4faZSG5vfjndfcfgdssdgsdHF4663
User-specific authentication key. Only valid together with the x-api-key header — the pair is an alternative to OAuth bearer authentication, never sent alongside it.
Demo credential for trying the API from these docs: eyJlYW4iOiJVbnJlZ2lzdGVyZWRBcHBsaWNhdGlvbiIsImVrIjoiOE5sZ2cwcW5EUVdROUFNWGpXT2lmOWktZnpidG5KcUlqWGJ3WHJZZkpZcldrbG90ZEhvLVBjSWhQaU8xU1ZtMW84aU1WZGZqN2xWNzFjLXFxLmcybXE1dnh4Q1hUT25xaWRUaTFlcEhmVk1fIn0_
Headers
A unique request identifier.
"60758fd2-674a-4d4f-86dc-7d5792a4c2db"
Body
The unique identifier of the financial instrument.
Indicates whether the order will open a long (true) or short (false) position.
The leverage ratio for the order.
The amount of the trade in the account currency [USD]. Required if AmountInUnits is not provided.
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.
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.
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.
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.
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.
SHOULD NOT BE EXTERNALZIED
Indicates if stop-loss is disabled.
Indicates if take-profit is disabled.
SHOULD NOT BE EXTERNALIZED.
Response
Order submitted successfully. The response includes a confirmation token and the created orderId. A 200 indicates submission succeeded, not that the order was created successfully, triggered, or executed.