Broker API HubMenu

eToro instrument:{instrumentId}

messageinstrument:{instrumentId}eToro WebSocket APIWebSocketTopics

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.

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.

Independent and unofficialapi-portal.etoro.comchecked The definition file it was checked against

This is a subscription of the eToro WebSocket API, not an HTTP endpoint. It has no method and no path: it is sent as JSON over an open WebSocket connection.

Subscribed to with the Subscribe request, with the instrument's id in place of {instrumentId}, for example instrument:100000. The same page describes a second push on this topic, Trading.Instrument.MarketStatus, and marks it as an illustrative example, so it is not recorded here. The AsyncAPI document says that on the wire every value of the rate is a JSON string.

The message

Name
instrument:{instrumentId}
Direction
Subscription, opened by the client and then fed by the server
Subscribed to as
instrument:{instrumentId}
Carried by
WebSocket.
WebSocket address
wss://ws.etoro.com/ws
Answers

Fields

NameTypeDescription
messagesrequiredarray of objectsThe envelope of every push. It holds one update or several.
messages[].topicrequiredstringThe topic the update belongs to, such as instrument:100000.
messages[].typerequiredstringSays what kind of update it is. Here it is Trading.Instrument.Rate.
messages[].idrequiredstring (uuid)The id of this push message.
messages[].contentrequiredstringThe update itself, as a string of JSON that has to be parsed a second time. The fields below, written content.Name, are what that string holds.
content.Asknumber (float)The ask price: the price at which you can buy.
content.Bidnumber (float)The bid price: the price at which you can sell.
content.LastExecutionnumber (float)The price of the most recent execution in the instrument.
content.Datestring (date-time)The time of the price.
content.PriceRateIDstringThe id of this rate.
content.NewUnitMarginnumber (float)Marked obsolete. The US dollar equivalent of the price.
content.UnitMarginAsknumber (float)Marked obsolete. The US dollar equivalent of the ask.
content.UnitMarginBidnumber (float)Marked obsolete. The US dollar equivalent of the bid.
content.BidDiscountednumber (float)Marked obsolete.
content.AskDiscountednumber (float)Marked obsolete.
content.UnitMarginBidDiscountednumber (float)Marked obsolete.
content.UnitMarginAskDiscountednumber (float)Marked obsolete.

Limits that apply at eToro

LimitValueScopeSource
Headline limit60/min reads per keyuserapi-portal.etoro.comchecked