eToro instrument:{instrumentId}
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.
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
| Name | Type | Description |
|---|---|---|
| messagesrequired | array of objects | The envelope of every push. It holds one update or several. |
| messages[].topicrequired | string | The topic the update belongs to, such as instrument:100000. |
| messages[].typerequired | string | Says what kind of update it is. Here it is Trading.Instrument.Rate. |
| messages[].idrequired | string (uuid) | The id of this push message. |
| messages[].contentrequired | string | The 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.Ask | number (float) | The ask price: the price at which you can buy. |
| content.Bid | number (float) | The bid price: the price at which you can sell. |
| content.LastExecution | number (float) | The price of the most recent execution in the instrument. |
| content.Date | string (date-time) | The time of the price. |
| content.PriceRateID | string | The id of this rate. |
| content.NewUnitMargin | number (float) | Marked obsolete. The US dollar equivalent of the price. |
| content.UnitMarginAsk | number (float) | Marked obsolete. The US dollar equivalent of the ask. |
| content.UnitMarginBid | number (float) | Marked obsolete. The US dollar equivalent of the bid. |
| content.BidDiscounted | number (float) | Marked obsolete. |
| content.AskDiscounted | number (float) | Marked obsolete. |
| content.UnitMarginBidDiscounted | number (float) | Marked obsolete. |
| content.UnitMarginAskDiscounted | number (float) | Marked obsolete. |
Limits that apply at eToro
| Limit | Value | Scope | Source |
|---|---|---|---|
| Headline limit | 60/min reads per key | user | api-portal.etoro.comchecked |