eToro API endpoints
51 documented eToro API endpoints, grouped by what they do. Each has its method, path, parameters and the source it was read from.
Independent and unofficialNewest check
Risk warning: CFDs and spread bets are complex instruments and come with a high risk of losing money rapidly due to leverage. You can lose money on these products, and each provider publishes its own loss figure under FCA rules. You should consider whether you understand how they work and whether you can afford to take the high risk of losing your money. Automated and API trading can amplify losses through bugs, connectivity failures and runaway orders.
Balances
Identity
Market Data
- GET/api/v1/market-data/exchangesThe exchanges eToro lists instruments from, optionally narrowed to a set of exchange IDs.
- GET/api/v1/market-data/instrument-typesThe instrument types eToro uses, optionally narrowed to a set of type IDs.
- GET/api/v1/market-data/instrumentsReturns display metadata for instruments, such as name, type, exchange, full symbol and logo images. Filter by instrument, exchange, industry or instrument type IDs.
- GET/api/v1/market-data/instruments/{instrumentId}/history/candles/{direction}/{interval}/{candlesCount}Returns open, high, low, close and volume candles for one instrument, from one minute to one week per candle.
- GET/api/v1/market-data/instruments/history/closing-priceReturns the latest official closing price for instruments plus the previous day, week and month closes.
- GET/api/v1/market-data/instruments/ratesReturns the current bid, ask and last execution price for up to 100 instruments, with conversion rates to USD.
- GET/api/v1/market-data/searchReturns a paginated list of instruments. You choose which instrument fields come back with the required fields parameter, and any field can also be used as a filter.
- GET/api/v1/market-data/stocks-industriesThe industries eToro sorts stocks into, optionally narrowed to a set of industry IDs.
- GET/api/v2/market-data/instrumentsInstrument reference data, filtered by instrument IDs or by symbols, with cursor paging. With neither filter it pages through every instrument.
- GET/api/v2/market-data/instruments/searchFree text search of instruments by name or symbol, returned in order of relevance.
- GET/api/v2/market-data/ratesCurrent bid and ask rates for up to 1000 instruments, each marked as real time or delayed. A 206 reply means only some of the instruments were found.
Trading (Demo)
- DELETE/api/v1/trading/execution/demo/market-close-orders/{orderId}Asks for a pending close order on the demo account to be cancelled before it executes. A 200 reply means the request was received, not that the order was cancelled.
- POST/api/v1/trading/execution/demo/market-close-orders/positions/{positionId}Closes a whole demo position, or part of it if you pass UnitsToDeduct, at the market rate. A 200 means the close order was submitted, not that it has completed.
- GET/api/v1/trading/info/demo/aggregate-portfolioA snapshot of the demo account portfolio grouped by asset: account totals, directly held positions per instrument and active copy trading relationships.
- POST/api/v1/trading/info/demo/aggregate-portfolioThe same demo account portfolio snapshot as the GET form, with the level of detail and the filters sent in a request body. It reads data and changes nothing.
- GET/api/v1/trading/info/demo/close-orders/{orderId}Looks up one close order on the demo account: its status and the positions it closed. This is the call that confirms a close.
- GET/api/v1/trading/info/demo/pnlReturns the demo account's credit, unrealised profit or loss, open positions, pending orders and copy relationships.
- GET/api/v1/trading/info/demo/portfolioThe demo account portfolio in detail: open positions, pending orders, copy trading details and balances, all under one clientPortfolio object.
- GET/api/v1/trading/info/trade/demo/historyReturns closed demo trades from a start date to now, with pagination.
- PATCH/api/v2/trading/demo/positions/{positionId}Sends an asynchronous request to change or clear the stop loss or take profit on an open demo position.
- POST/api/v2/trading/execution/demo/ordersPlaces an order on the demo account, by amount or units, with optional leverage, stop loss and take profit. The real account version is POST /api/v2/trading/execution/orders.
- DELETE/api/v2/trading/execution/demo/orders/{orderId}Asks eToro to cancel a demo order that is waiting for the market to open or for its trigger rate. A 200 means the request was accepted; the order may already have executed.
- POST/api/v2/trading/info/demo/costsWorks out the costs a proposed demo account order would carry if it were executed now: markup, spread, transaction fee, overnight and weekend fees and tax. Nothing is traded.
- POST/api/v2/trading/info/demo/eligibilityThe trading rules that apply to a list of instruments on the demo account: position limits, order types allowed, stop loss and take profit bounds and the leverage on offer.
- GET/api/v2/trading/info/demo/instrument-breakdownThe demo account portfolio grouped by instrument, with the positions, pending orders and profit or loss under each.
- GET/api/v2/trading/info/demo/orders:lookupReturns the status of one demo order and every position it opened or closed. Look it up by orderId or by the referenceId you sent as x-request-id.
- POST/api/v3/trading/execution/demo/ordersSubmits an order on the demo account for processing in the background. The version 3 form of the order call: a 202 reply means it was queued, not executed.
- DELETE/api/v3/trading/execution/demo/orders/{orderId}Asks for a pending order on the demo account to be cancelled. The version 3 form: a 202 reply means the request was queued, not that the order was cancelled.
Trading (Real)
- DELETE/api/v1/trading/execution/market-close-orders/{orderId}Asks for a pending close order on the real account to be cancelled before it executes. A 200 reply means the request was received, not that the order was cancelled.
- POST/api/v1/trading/execution/market-close-orders/positions/{positionId}Closes a real account position at the market rate, in full or by a number of units. A 200 reply means the close order was submitted, not that the position has closed.
- GET/api/v1/trading/info/aggregate-portfolioA snapshot of the real account portfolio grouped by asset: account totals, directly held positions per instrument and active copy trading relationships.
- POST/api/v1/trading/info/aggregate-portfolioThe same real account portfolio snapshot as the GET form, with the level of detail and the filters sent in a request body. It reads data and changes nothing.
- GET/api/v1/trading/info/portfolioThe real account portfolio in detail: open positions, pending orders, copy trading details and balances, all under one clientPortfolio object.
- GET/api/v1/trading/info/real/close-orders/{orderId}Looks up one close order on the real account: its status and the positions it closed. This is the call that confirms a close.
- GET/api/v1/trading/info/real/pnlReturns the real account's credit, unrealised profit or loss, open positions, pending orders and copy relationships.
- GET/api/v1/trading/info/trade/historyReturns closed trades on the real account from a start date to now. eToro advises keeping each request's lookback under one year and paging through longer periods.
- POST/api/v2/trading/execution/ordersPlaces an order on the real account, by amount, units or contracts, with optional leverage, stop loss and take profit. A 200 reply means the order was accepted, not that it was executed.
- DELETE/api/v2/trading/execution/orders/{orderId}Asks for an order on the real account to be cancelled before it executes. A 200 reply means the request was accepted, not that the order was cancelled.
- POST/api/v2/trading/info/costsWorks out the costs a proposed real account order would carry if it were executed now: markup, spread, transaction fee, overnight and weekend fees and tax. Nothing is traded.
- POST/api/v2/trading/info/eligibilityThe trading rules that apply to a list of instruments on the real account: position limits, order types allowed, stop loss and take profit bounds and the leverage on offer.
- GET/api/v2/trading/info/instrument-breakdownThe real account portfolio grouped by instrument, with the positions, pending orders and profit or loss under each.
- GET/api/v2/trading/info/orders:lookupLooks up one real account order by its ID or by the request ID it was sent with, and returns its status and the positions it opened or closed.
- PATCH/api/v2/trading/positions/{positionId}Changes or clears the stop loss and take profit on an open real account position. The request is queued: a 202 reply means it was accepted, not applied.
- POST/api/v3/trading/execution/ordersSubmits an order on the real account for processing in the background. The version 3 form of the order call: a 202 reply means it was queued, not executed.
- DELETE/api/v3/trading/execution/orders/{orderId}Asks for a pending order on the real account to be cancelled. The version 3 form: a 202 reply means the request was queued, not that the order was cancelled.
Users Info
Watchlists
- GET/api/v1/watchlistsReturns all of your watchlists and their items, with optional paging of items and related assets.
- POST/api/v1/watchlistsCreates a new watchlist with the name you give. The name and type go in the query string, not the body.
- POST/api/v1/watchlists/{watchlistId}/itemsAdds instruments or people to an existing watchlist. The body is a JSON array of items.