Streaming across broker APIs
24 of 29 records carry this field. 3 of those are labelled unverified, and 5 have nothing recorded.
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.
What this is
Streaming pushes each update to you over a connection that stays open. It is how a program follows live prices or learns of a fill without asking again and again.
Providers stream in different ways: over a WebSocket, over a long lived HTTP connection, or through a separate streaming service with its own client library. The protocol decides which libraries you can use and how you reconnect after a drop.
Each entry below is the record's own wording. The entries are in order of name. The order is not a ranking and nothing here recommends a broker.
Brokers
- Bitget
WebSocket, with a public channel and a private channel that needs a login message. Stated on the quick start page: at most 100 connections per IP, 300 connection requests per IP in 5 minutes, at most 1,000 channel subscriptions per connection (Bitget advises fewer than 50), 240 subscription requests an hour per connection, and up to 10 messages a second per connection. Send the string ping every 30 seconds; the server disconnects after 2 minutes without one.
- Capital.com
WebSocket wss://api-streaming-capital.backend-capital.com/connect, maximum of 40 epics per subscription; the session lasts 10 minutes and is kept alive with ping.
Capital.com Public APIchecked
- Deriv
WebSocket carries trading and market data, on a public endpoint and on demo and real endpoints opened with a one time password fetched over REST. Each connection can send 10 pings a second, outside the call budgets.
Deriv API: API overviewchecked Deriv API: limitschecked
- Dukascopy
JForex API: live data arrives through the client once you subscribe to instruments explicitly, and the subscription is asynchronous. FIX API: two FIX connections per client, one for the data feed and one for trading. A dropped FIX session that is not restored within 2 hours is disconnected.
Dukascopy wiki, JForex SDK clientchecked Dukascopy FIX API Programming Guide, revision 8.8.1checked
- eToro
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.
eToro WebSocket API, AsyncAPI documentchecked eToro API portal: WebSocket authenticationchecked eToro API portal: WebSocket topicschecked
- Exness
Websocket, throttled to roughly 100 to 500 ms.
- FOREX.com / StoneX Trading (City Index)
Lightstreamer, a third party streaming protocol, over long lived HTTP connections and not WebSocket as documented. Streams cover prices, news headlines, client account margin, orders and quotes, grouped into adapters. Each adapter needs one HTTP connection plus one control connection. The documentation says the servers still run Lightstreamer 7.4.1 and that clients should use that version of the Lightstreamer SDK.
- FXCM
ForexConnect pushes live prices; the retired legacy REST API streamed over Socket.IO.
FXCM Socket REST API specchecked
- IG
Streaming runs on Lightstreamer: IG's Streaming API Guide starts by sending you to the Lightstreamer client library, and the server address to connect to comes back from the /session call. By default a connection holds up to 40 simultaneous subscriptions. The guide asks you to contact IG to raise that quota and the FAQ says to manage it by unsubscribing and subscribing as needed; both warn that opening extra connections to get past it may cost you the API key or your API permissions. The streaming API does not take OAuth tokens, only the CST and X-SECURITY-TOKEN pair.
IG Labs Streaming API Guidechecked IG Labs FAQchecked
- Interactive Brokers
TWS API is event driven over the socket. The Web API websocket is at /v1/api/ws (wss://localhost:5000/v1/api/ws through the gateway): the number of market data subscriptions depends on the account's market data lines, 100 by default, a market data stream ends after 15 minutes unless it is requested again, and at most 5 historical data requests run at once.
IBKR Web API v1.0 documentation, websockets introductionchecked IBKR Web API v1.0 documentation, websocket market data requestchecked IBKR Web API v1.0 documentation, websocket historical market data requestchecked IBKR Campus: Web API documentationchecked
- OANDA
HTTP chunked transfer encoding carrying JSON objects, not WebSocket. The development guide states at most 20 active streams, with requests above that rejected, and no more than 2 new connections a second. The best practices page advises no more than 100 requests a second on an established connection. Sources: https://developer.oanda.com/rest-live-v20/development-guide/ and https://developer.oanda.com/rest-live-v20/best-practices/, both read 23 September 2026, development guide re-read 24 September 2026.
OANDA Development Guidechecked
- Pepperstone
Unverified. The API trading page, re-read 12 Oct 2026, says software can receive live pricing data and depth of market, but describes no streaming transport, host or limit for either route.
UnverifiedPepperstone API tradingchecked
- Saxo OpenAPI
WebSocket streaming (SIM and live hosts). The connection allowance and the instrument cap are unverified as of 20 Sep 2026: the streaming pages no longer publish either figure and say only that the number of WebSocket connections depends on the throttling profile assigned to the application.
Saxo Environmentschecked
- Swissquote
The institutional Forex API page lists the liquidity channel of its FIX connections as streaming, with request for stream and request for quote also listed for the Integral connection. For securities, the FAQ says no market data is available over the FIX API, and for digital assets a dedicated FIX session gives market data. No streaming limits are stated on the pages opened.
Swissquote institutional Forex APIschecked Swissquote institutional, securities and cryptos via an APIchecked
- Trading 212
None documented. REST plus polling only.
Unverifiedno source opened
- XTB
Not applicable. XTB's help centre states that API access was discontinued on 14 March 2025, and streaming was part of that API. The page read on 9 Oct 2026 does not name the former streaming host. Last looked for 9 Oct 2026.
XTB help centre: Does XTB offer investment automation tools?checked
Platform APIs
- cTrader Open API
Yes: spot quotes, depth of market and execution events on the same connection, at 50 requests a second per connection (5 for historical data) with a heartbeat every 10 seconds. Host live1.p.ctrader.com port 5035, SSL mandatory for TCP and WebSocket. Spotware recommends at most two connections, one demo and one live, each carrying an unlimited number of accounts of that type.
Messageschecked
- DXtrade APIs
Push API over WebSockets for account and market data updates.
- Match-Trader Platform API
Yes: WebSocket with STOMP for real-time market data and account updates.
Platform APIchecked
- MetaApi
Yes: a WebSocket API on the socket.io protocol that pushes terminal state changes, quotes, candles, ticks and order book data in real time. MetaApi recommends it over REST for automated trading. Streaming does not use the CPU credits that REST and RPC calls use, but each account has its own market data streaming credits, and going over them downgrades the subscription.
MetaApi documentation, overviewchecked MetaApi documentation, rate limitingchecked
- MetaCopier
Yes: a Socket API that speaks STOMP over a standard WebSocket connection, for real time updates of account information, history and open positions. One connection carries every account the key can reach, and accounts added later appear without reconnecting. The page notes that a connection may close after about 20 seconds without heartbeats. No SDK is offered for the Socket API.
MetaCopier documentation, Socket APIchecked MetaCopier documentation, SDKchecked
- MetaTrader 4 (MQL4)
In-terminal events only (new tick, timer, depth changes); no external streaming API.
MQL4 Referencechecked
- MetaTrader 5 (Python package and MQL5)
No push API in Python: poll ticks and bars; market_book_add subscribes the terminal to depth events. MQL5 EAs get tick events.
MetaTrader for Pythonchecked
- TradeLocker API
Unverified. TradeLocker's public API documentation, re-read 12 Oct 2026, describes a request and response REST API only, and its index of pages lists no streaming page. The record's API family names a Streams API from an earlier reading that could not be confirmed on a page that opens today.
UnverifiedTradeLocker public API, getting startedchecked
Not recorded
These records hold nothing for this field yet. That is a gap in this dataset. It says nothing either way about the broker or platform.
- Axi: not recorded
- CMC Markets: not recorded
- FxPro: not recorded
- ThinkMarkets: not recorded
- Tickmill: not recorded