# eToro API: limits, auth and errors

Independent and unofficial. Not affiliated with or endorsed by any broker or platform named here. Educational only: nothing here is advice, and nothing here recommends a broker or a trade.

This is the markdown version of https://openbrokerapi.com/brokers/etoro, written from the same records as that page.

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.

Public REST API and WebSocket for verified eToro users, with demo trading endpoints.

- Kind: Broker API
- Newest reading: 2026-10-12
- Official documentation: [api-portal.etoro.com](https://api-portal.etoro.com/)
- Everything recorded for eToro, as one JSON file: https://openbrokerapi.com/data/brokers/etoro.json
- Quickstart, key to first call: https://openbrokerapi.com/brokers/etoro/quickstart

## eToro API rate limits and allowances

One record per limit. The scope is part of the limit: a figure without its scope is not a figure you can pace against.

- Headline limit: 60/min reads per key
  - Scope: user
  - Status: verified. Source: [api-portal.etoro.com](https://api-portal.etoro.com/core/getting-started/rate-limits.md), checked 2026-09-20.
  - Note: Most GET calls. Trading and writes: 20 a minute. Tracked per user key over a one minute rolling window, 429 on excess. The page states no response headers, and the 120 per 60 seconds market data quota carried from earlier readings is now unverified.

[eToro API rate limits in full](https://openbrokerapi.com/brokers/etoro/rate-limits), with the related error codes.

## Access, authentication and streaming

- How you get a key: Settings > Trading > API Key Management > Create New Key; choose Read or Write, optional IP whitelist and expiry.
  - Status: verified. Source: [eToro API portal: authentication](https://api-portal.etoro.com/core/getting-started/authentication.md), checked 2026-10-12.
- Who can use it: Verified eToro account required. Regional availability not published on pages opened.
  - Status: verified. Source: [eToro API Portal](https://api-portal.etoro.com/), checked 2026-09-21.
- Demo: Yes: the environment is bound to the key when it is created, Demo or Real, and each key supports one environment only.
  - Status: verified. Source: [eToro Builders FAQ](https://builders.etoro.com/faq), checked 2026-09-21.
- Authentication: Headers x-api-key, x-user-key and x-request-id on every request, or an OAuth 2.0 bearer token instead of the key headers. eToro now states the exclusivity itself rather than leaving it to be inferred: a request presenting both is rejected.
  - Status: verified. Source: [eToro API portal: authentication](https://api-portal.etoro.com/core/getting-started/authentication.md), checked 2026-10-12.
  - Status: verified. Source: [SSO and OAuth, eToro API portal](https://api-portal.etoro.com/core/getting-started/sso-oauth.md), checked 2026-10-12.
- Streaming: WebSocket at wss://ws.etoro.com/ws, described by an AsyncAPI 3.0 document that eToro publishes. Instrument topics need no authentication; the private topic needs an Authenticate message first, which carries the user key and API key inside its data object over the open socket, never as a header. A Subscribe message lists topics such as instrument:\<instrumentId> or private, with an optional snapshot flag. The AsyncAPI document, the Topics page and the example code agree on that shape. The server sends a single binary frame from time to time as a heartbeat. No connection or subscription limit is given and no reconnection or replay behaviour is described.
  - Status: verified. Source: [eToro WebSocket API, AsyncAPI document](https://api-portal.etoro.com/api-reference/asyncapi.json), checked 2026-10-12.
  - Status: verified. Source: [eToro API portal: WebSocket authentication](https://api-portal.etoro.com/core/websocket/authentication.md), checked 2026-10-12.
  - Status: verified. Source: [eToro API portal: WebSocket topics](https://api-portal.etoro.com/core/websocket/topics.md), checked 2026-10-12.
- History depth: Candles: max 1,000 per request, one minute to one week. Trading history: lookback under 1 year per request; split longer ranges.
  - Status: verified. Source: [eToro API: Get instrument candle history](https://api-portal.etoro.com/api-reference/market-data/get-instrument-candle-history.md), checked 2026-10-12.
- Rate limits, as worded: 60 requests a minute for most GET calls and 20 a minute for trading and writes, tracked per user key over a one minute rolling window, with 429 on excess. The rate limits page read on 20 Sep 2026 states no response headers at all, so the 120 per 60 seconds market data quota and the RateLimit response headers carried from earlier readings are now unverified.
  - Status: verified. Source: [eToro API portal: rate limits](https://api-portal.etoro.com/core/getting-started/rate-limits.md), checked 2026-10-12.

## eToro API endpoints

51 documented endpoints. [Grouped by what they do](https://openbrokerapi.com/brokers/etoro/endpoints).

- [GET /api/v1/balances](https://openbrokerapi.com/brokers/etoro/endpoints/balances): Balances across every account type you hold with eToro, with a total in a display currency. eToro warns that the totals are portfolio value, not cash you can spend.
- [GET /api/v1/market-data/exchanges](https://openbrokerapi.com/brokers/etoro/endpoints/exchanges): The exchanges eToro lists instruments from, optionally narrowed to a set of exchange IDs.
- [GET /api/v1/market-data/instrument-types](https://openbrokerapi.com/brokers/etoro/endpoints/instrument-types): The instrument types eToro uses, optionally narrowed to a set of type IDs.
- [GET /api/v1/market-data/instruments](https://openbrokerapi.com/brokers/etoro/endpoints/instrument-display-data): Returns 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}](https://openbrokerapi.com/brokers/etoro/endpoints/candles): 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-price](https://openbrokerapi.com/brokers/etoro/endpoints/closing-prices): Returns the latest official closing price for instruments plus the previous day, week and month closes.
- [GET /api/v1/market-data/instruments/rates](https://openbrokerapi.com/brokers/etoro/endpoints/instrument-rates): Returns the current bid, ask and last execution price for up to 100 instruments, with conversion rates to USD.
- [GET /api/v1/market-data/search](https://openbrokerapi.com/brokers/etoro/endpoints/search-instruments): Returns 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-industries](https://openbrokerapi.com/brokers/etoro/endpoints/stocks-industries): The industries eToro sorts stocks into, optionally narrowed to a set of industry IDs.
- [GET /api/v1/me](https://openbrokerapi.com/brokers/etoro/endpoints/me): Returns the profile behind your key or token: global and account IDs for real and demo, username, player level and the scopes granted.
- [DELETE /api/v1/trading/execution/demo/market-close-orders/{orderId}](https://openbrokerapi.com/brokers/etoro/endpoints/demo-cancel-close-order): 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}](https://openbrokerapi.com/brokers/etoro/endpoints/demo-close-position): 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.
- [DELETE /api/v1/trading/execution/market-close-orders/{orderId}](https://openbrokerapi.com/brokers/etoro/endpoints/real-cancel-close-order): 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}](https://openbrokerapi.com/brokers/etoro/endpoints/real-close-position): 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-portfolio](https://openbrokerapi.com/brokers/etoro/endpoints/real-aggregate-portfolio): A 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-portfolio](https://openbrokerapi.com/brokers/etoro/endpoints/real-aggregate-portfolio-filtered): The 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/demo/aggregate-portfolio](https://openbrokerapi.com/brokers/etoro/endpoints/demo-aggregate-portfolio): A 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-portfolio](https://openbrokerapi.com/brokers/etoro/endpoints/demo-aggregate-portfolio-filtered): The 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}](https://openbrokerapi.com/brokers/etoro/endpoints/demo-close-order-info): 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/pnl](https://openbrokerapi.com/brokers/etoro/endpoints/demo-pnl): Returns the demo account's credit, unrealised profit or loss, open positions, pending orders and copy relationships.
- [GET /api/v1/trading/info/demo/portfolio](https://openbrokerapi.com/brokers/etoro/endpoints/demo-portfolio): The demo account portfolio in detail: open positions, pending orders, copy trading details and balances, all under one clientPortfolio object.
- [GET /api/v1/trading/info/portfolio](https://openbrokerapi.com/brokers/etoro/endpoints/real-portfolio): The 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}](https://openbrokerapi.com/brokers/etoro/endpoints/real-close-order-info): 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/pnl](https://openbrokerapi.com/brokers/etoro/endpoints/real-pnl): Returns the real account's credit, unrealised profit or loss, open positions, pending orders and copy relationships.
- [GET /api/v1/trading/info/trade/demo/history](https://openbrokerapi.com/brokers/etoro/endpoints/demo-trade-history): Returns closed demo trades from a start date to now, with pagination.
- [GET /api/v1/trading/info/trade/history](https://openbrokerapi.com/brokers/etoro/endpoints/real-trade-history): Returns 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.
- [GET /api/v1/user-info/people](https://openbrokerapi.com/brokers/etoro/endpoints/user-info-people): Returns public profile details for eToro users you name by username or customer ID, such as verification level and avatars.
- [GET /api/v1/watchlists](https://openbrokerapi.com/brokers/etoro/endpoints/get-watchlists): Returns all of your watchlists and their items, with optional paging of items and related assets.
- [POST /api/v1/watchlists](https://openbrokerapi.com/brokers/etoro/endpoints/create-watchlist): Creates 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}/items](https://openbrokerapi.com/brokers/etoro/endpoints/add-watchlist-items): Adds instruments or people to an existing watchlist. The body is a JSON array of items.
- [GET /api/v2/market-data/instruments](https://openbrokerapi.com/brokers/etoro/endpoints/instruments-v2): Instrument 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/search](https://openbrokerapi.com/brokers/etoro/endpoints/instruments-search-v2): Free text search of instruments by name or symbol, returned in order of relevance.
- [GET /api/v2/market-data/rates](https://openbrokerapi.com/brokers/etoro/endpoints/rates-v2): Current 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.
- [PATCH /api/v2/trading/demo/positions/{positionId}](https://openbrokerapi.com/brokers/etoro/endpoints/demo-edit-sl-tp): 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/orders](https://openbrokerapi.com/brokers/etoro/endpoints/demo-create-order): Places 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}](https://openbrokerapi.com/brokers/etoro/endpoints/demo-cancel-order): 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/execution/orders](https://openbrokerapi.com/brokers/etoro/endpoints/real-create-order): Places 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}](https://openbrokerapi.com/brokers/etoro/endpoints/real-cancel-order): 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/costs](https://openbrokerapi.com/brokers/etoro/endpoints/real-costs): Works 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/demo/costs](https://openbrokerapi.com/brokers/etoro/endpoints/demo-costs): Works 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/eligibility](https://openbrokerapi.com/brokers/etoro/endpoints/demo-eligibility): The 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-breakdown](https://openbrokerapi.com/brokers/etoro/endpoints/demo-instrument-breakdown): The demo account portfolio grouped by instrument, with the positions, pending orders and profit or loss under each.
- [GET /api/v2/trading/info/demo/orders:lookup](https://openbrokerapi.com/brokers/etoro/endpoints/demo-order-lookup): Returns 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/v2/trading/info/eligibility](https://openbrokerapi.com/brokers/etoro/endpoints/real-eligibility): The 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-breakdown](https://openbrokerapi.com/brokers/etoro/endpoints/real-instrument-breakdown): The real account portfolio grouped by instrument, with the positions, pending orders and profit or loss under each.
- [GET /api/v2/trading/info/orders:lookup](https://openbrokerapi.com/brokers/etoro/endpoints/real-order-lookup): Looks 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}](https://openbrokerapi.com/brokers/etoro/endpoints/real-edit-sl-tp): 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/demo/orders](https://openbrokerapi.com/brokers/etoro/endpoints/demo-submit-order-v3): Submits 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}](https://openbrokerapi.com/brokers/etoro/endpoints/demo-cancel-order-v3): 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.
- [POST /api/v3/trading/execution/orders](https://openbrokerapi.com/brokers/etoro/endpoints/real-submit-order-v3): Submits 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}](https://openbrokerapi.com/brokers/etoro/endpoints/real-cancel-order-v3): 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.

## eToro messages

6 documented messages. They are not HTTP endpoints: none has a method or a path. [Grouped by what they do](https://openbrokerapi.com/brokers/etoro/messages).

- [Authenticate](https://openbrokerapi.com/brokers/etoro/messages/authenticate) (eToro WebSocket API): Authenticates the WebSocket session with the user key and the API key, sent inside the message. It is needed before subscribing to the private topic, and public instrument topics do not need it.
- [candle:{instrumentId}](https://openbrokerapi.com/brokers/etoro/messages/instrument-candles) (eToro WebSocket API): Candle updates for one instrument: each push carries the open, high, low, close and volume of one interval. The page says no authentication is needed.
- [instrument:{instrumentId}](https://openbrokerapi.com/brokers/etoro/messages/instrument-rates) (eToro WebSocket API): The live rate of one instrument: each push carries the ask, the bid, the last execution price and the time. It is public market data, and the page says no authentication is needed.
- [private](https://openbrokerapi.com/brokers/etoro/messages/private) (eToro WebSocket API): Order and transaction updates for the logged in user. It needs a successful Authenticate first. Each push carries an order update: the order, its status, the instrument and the units asked for and executed.
- [Subscribe](https://openbrokerapi.com/brokers/etoro/messages/subscribe) (eToro WebSocket API): Starts delivery of one topic or several: instrument:{instrumentId} for live rates, candle:{instrumentId} for candles, or private for the logged in user's order updates. An acknowledgement follows, then the pushes.
- [Unsubscribe](https://openbrokerapi.com/brokers/etoro/messages/unsubscribe) (eToro WebSocket API): Stops delivery of the topics named. The connection stays open and other subscriptions are not touched.

## eToro API error codes

16 decoded error codes. [All eToro errors](https://openbrokerapi.com/errors/etoro).

- [ApiKeyRequired](https://openbrokerapi.com/errors/etoro/api-key-required): The Authenticate message was sent without the API key.
- [DataRequired](https://openbrokerapi.com/errors/etoro/data-required): The Authenticate message was sent without its data.
- [Forbidden](https://openbrokerapi.com/errors/etoro/ws-forbidden): Access to the resource is forbidden.
- [HTTP 400](https://openbrokerapi.com/errors/etoro/bad-request): Validation failed on the request as sent, for example a missing or malformed minDate or too many instrument IDs in one call.
- [HTTP 401](https://openbrokerapi.com/errors/etoro/unauthorised): Authentication is missing or invalid: the key pair or the bearer token did not identify a caller eToro accepts.
- [HTTP 403](https://openbrokerapi.com/errors/etoro/forbidden): The key or token is recognised but lacks the permission this call needs.
- [HTTP 404](https://openbrokerapi.com/errors/etoro/not-found): The order, position or username in the request was not found.
- [HTTP 409](https://openbrokerapi.com/errors/etoro/position-closed): The position is closed and cannot be edited, so the change was refused.
- [HTTP 500](https://openbrokerapi.com/errors/etoro/server-error): An internal error on eToro's side.
- [InvalidKey](https://openbrokerapi.com/errors/etoro/invalid-key): A key in the Authenticate message is not valid.
- [Rate limit exceeded](https://openbrokerapi.com/errors/etoro/rate-limit-exceeded): The rate limits page lists 60 requests a minute for reads and 20 for writes, per user key on a rolling minute.
- [SessionAlreadyAuthenticated](https://openbrokerapi.com/errors/etoro/session-already-authenticated): The WebSocket session is already authenticated.
- [TooManyRequests](https://openbrokerapi.com/errors/etoro/too-many-requests): Too many requests were sent.
- [Unauthorized](https://openbrokerapi.com/errors/etoro/ws-unauthorized): The session is not authorised.
- [UnhandledException](https://openbrokerapi.com/errors/etoro/unhandled-exception): A global error.
- [UserKeyRequired](https://openbrokerapi.com/errors/etoro/user-key-required): The Authenticate message was sent without the user key.

## Platform APIs an account here can reach

- [MetaTrader 4 (MQL4)](https://openbrokerapi.com/platforms/metatrader-4): not offered. Third-party review (updated 17 Sep 2026): 'No, eToro does not offer MetaTrader 4.' eToro's own help pages failed to load (JS error / 404), so not confirmed from eToro.
  - Status: unverified. Source: [Does eToro support MetaTrader? (BrokerChooser, third party)](https://brokerchooser.com/broker-reviews/etoro-review/etoro-metatrader), checked 2026-09-18.
- [MetaTrader 5 (Python package and MQL5)](https://openbrokerapi.com/platforms/metatrader-5): not offered. Same third-party page has a MT5 heading but no visible answer; eToro uses its own platform. Unconfirmed from eToro.
  - Status: unverified. Source: [Does eToro support MetaTrader? (BrokerChooser, third party)](https://brokerchooser.com/broker-reviews/etoro-review/etoro-metatrader), checked 2026-09-18.
- [cTrader Open API](https://openbrokerapi.com/platforms/ctrader): not offered. cTrader not listed on the broker's UK platforms page; absence from an overview page is not proof, so unverified.
  - Status: unverified. Source: [Does eToro support MetaTrader? (BrokerChooser, third party)](https://brokerchooser.com/broker-reviews/etoro-review/etoro-metatrader), checked 2026-09-18.
- [TradeLocker API](https://openbrokerapi.com/platforms/tradelocker): not offered. TradeLocker not listed on the broker's UK platforms page; absence from an overview page is not proof, so unverified.
  - Status: unverified. Source: [Does eToro support MetaTrader? (BrokerChooser, third party)](https://brokerchooser.com/broker-reviews/etoro-review/etoro-metatrader), checked 2026-09-18.
- [Match-Trader Platform API](https://openbrokerapi.com/platforms/match-trader): not offered. Match-Trader not listed on the broker's UK platforms page; absence from an overview page is not proof, so unverified.
  - Status: unverified. Source: [Does eToro support MetaTrader? (BrokerChooser, third party)](https://brokerchooser.com/broker-reviews/etoro-review/etoro-metatrader), checked 2026-09-18.
- [DXtrade APIs](https://openbrokerapi.com/platforms/dxtrade): not offered. DXtrade not listed on the broker's UK platforms page; absence from an overview page is not proof, so unverified.
  - Status: unverified. Source: [Does eToro support MetaTrader? (BrokerChooser, third party)](https://brokerchooser.com/broker-reviews/etoro-review/etoro-metatrader), checked 2026-09-18.

## eToro API: questions and answers

### Does eToro have an API?

Yes. This register records eToro as having its own API (REST, WebSocket and OAuth 2.0 SSO (partners)), with availability marked as active. Public REST API and WebSocket for verified eToro users, with demo trading endpoints.

- Status: verified. Source: [eToro API portal](https://api-portal.etoro.com/), checked 2026-09-24.

### eToro API key: how do I get one?

Settings > Trading > API Key Management > Create New Key; choose Read or Write, optional IP whitelist and expiry.

- Status: verified. Source: [eToro API portal: authentication](https://api-portal.etoro.com/core/getting-started/authentication.md), checked 2026-10-12.

### Who can use the eToro API?

Verified eToro account required. Regional availability not published on pages opened.

- Status: verified. Source: [eToro API Portal](https://api-portal.etoro.com/), checked 2026-09-21.

### eToro API demo: is there a demo or sandbox?

Yes: the environment is bound to the key when it is created, Demo or Real, and each key supports one environment only.

- Status: verified. Source: [eToro Builders FAQ](https://builders.etoro.com/faq), checked 2026-09-21.

### What are the eToro API rate limits?

Headline limit: 60/min reads per key. Scope: user. As the record words it: 60 requests a minute for most GET calls and 20 a minute for trading and writes, tracked per user key over a one minute rolling window, with 429 on excess.

- Status: verified. Source: [api-portal.etoro.com](https://api-portal.etoro.com/core/getting-started/rate-limits.md), checked 2026-09-20.
- Status: verified. Source: [eToro API portal: rate limits](https://api-portal.etoro.com/core/getting-started/rate-limits.md), checked 2026-10-12.

### How does eToro API authentication work?

Headers x-api-key, x-user-key and x-request-id on every request, or an OAuth 2.0 bearer token instead of the key headers. eToro now states the exclusivity itself rather than leaving it to be inferred: a request presenting both is rejected.

- Status: verified. Source: [eToro API portal: authentication](https://api-portal.etoro.com/core/getting-started/authentication.md), checked 2026-10-12.
- Status: verified. Source: [SSO and OAuth, eToro API portal](https://api-portal.etoro.com/core/getting-started/sso-oauth.md), checked 2026-10-12.

### Does the eToro API support streaming?

WebSocket at wss://ws.etoro.com/ws, described by an AsyncAPI 3.0 document that eToro publishes.

- Status: verified. Source: [eToro WebSocket API, AsyncAPI document](https://api-portal.etoro.com/api-reference/asyncapi.json), checked 2026-10-12.
- Status: verified. Source: [eToro API portal: WebSocket authentication](https://api-portal.etoro.com/core/websocket/authentication.md), checked 2026-10-12.
- Status: verified. Source: [eToro API portal: WebSocket topics](https://api-portal.etoro.com/core/websocket/topics.md), checked 2026-10-12.

### How much history does the eToro API return?

Candles: max 1,000 per request, one minute to one week. Trading history: lookback under 1 year per request; split longer ranges.

- Status: verified. Source: [eToro API: Get instrument candle history](https://api-portal.etoro.com/api-reference/market-data/get-instrument-candle-history.md), checked 2026-10-12.

### Which platform APIs work with an account at eToro?

Unverified. Not verified either way: MetaTrader 4, MetaTrader 5, cTrader, TradeLocker, Match-Trader and DXtrade. No platform link on this record has a verified source.

- Status: unverified. No source opened.

[eToro API questions, each answered in a sentence or two](https://openbrokerapi.com/answers/etoro).

## Partner programme

No published figure. [The eToro partner programme record](https://openbrokerapi.com/partners/etoro). This site carries no affiliate links.

## Licence and how to cite

The limit records on this page come from the limits register, which is CC BY 4.0 (https://openbrokerapi.com/data/limits.json). Everything else on it comes from records that are all rights reserved. This file is the page itself, at its own address, in another format, and it is not part of the CC BY 4.0 downloads listed at https://openbrokerapi.com/data.

Cite as: eToro API: limits, auth and errors. Broker API Hub, https://openbrokerapi.com/brokers/etoro, newest check 2026-10-12.

Where you rely on a single figure, cite the source and the checked date printed beside it as well. Where this page and a broker's own documentation differ, the documentation wins.
