Broker API HubMenu

Broker streaming APIs compared

How each broker and platform API pushes prices and account updates: the transport, the cap on streams or subscriptions, and the heartbeat, each with its source and checked date.

Independent and unofficialLast reviewed

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.

Carried over from an earlier version of this site. The links below are the sources it was written from, but its statements have not been re-read at source since the date shown, so check anything you rely on.

Streaming by API

APITransportMax streams or subscriptionsHeartbeatSourceChecked
OANDAHTTP streaming: one long lived HTTP connection to the stream host (stream-fxtrade or stream-fxpractice), sending newline delimited JSON price and heartbeat lines.20 active streams per IP address; no more than 2 new connections a second; at most 4 prices a second per instrumentEvery 5 seconds on pricing and transaction streamsdeveloper.oanda.com Transport and heartbeat: developer.oanda.com18 Sep 2026
IGStreaming connections40 concurrent streaming subscriptions per streaming connection. IG warns that opening extra connections to get past that risks having your API permissions revokedNot stated on the IG streaming guide or the Labs FAQ we openedlabs.ig.com19 Sep 2026
Capital.comWebSocket (wss://api-streaming-capital.backend-capital.com/connect)Maximum of 40 instrumentsPing at least every 10 minutesopen-api.capital.com18 Sep 2026
Saxo OpenAPIWebSocket, separate SIM and live hostsWithdrawn on 20 Sep 2026. Saxo used to publish 4 streaming connections per user and a 200 instrument cap on price subscriptions. The streaming pages opened that day say only that the number of WebSocket connections depends on the throttling profile assigned to the application, so both figures are unverifiedControl messages carry the reference id _heartbeat for keepalive. The interval in seconds is not stated on the streaming pages we opened.openapi.help.saxo Heartbeat: developer.saxo19 Sep 2026
Interactive BrokersWeb API: WebSocket. TWS API: event driven socketWeb API: capped by the account's market data lines, 100 per user by default, and 5 concurrent historical requests; top of book updates every 500ms and an smd stream ends after 15 minutes unless re-requested. TWS API: up to 32 simultaneous connections, each with its own client idWebsocket: an ech+hb echo heartbeat, which IBKR recommends every 10 seconds. REST session: POST /tickle about every 60 secondsinteractivebrokers.com Heartbeat and tickle: interactivebrokers.com18 Sep 2026
eToroWebSocket topics such as instrument:<id> and candle:<id>; authenticate for private updatesNone published. The WebSocket overview page states no connection or subscription limit; the REST limits beside it are 60 requests a minute for reads and 20 for trading, per user keyNone documented. No heartbeat, reconnection or replay behaviour appears on any eToro page we could open, so treat a silent socket as dead and re-snapshotapi-portal.etoro.com Rate limits: api-portal.etoro.com19 Sep 2026
cTrader Open APITCP or WebSocket on ports 5035 (Protobuf) and 5036 (JSON); spots and depth subscriptions50 requests a second per connection; 5 a second for historical dataA ProtoHeartbeatEvent (payloadType 51) at least every 10 seconds; drop it and the server drops the connectionhelp.ctrader.com Limits: help.ctrader.com18 Sep 2026
TradeLocker APISocket.IO Streams API for account, position and order updatesNot publishedNot stated on the Streams API page we openedapi-dev.tradelocker.com18 Sep 2026
Match-Trader Platform APIWebSocket with STOMPNot publishedNot stated on the platform API page we openedmatch-trader.com18 Sep 2026
DXtrade APIsPush API over WebSocketsNot publishedNot stated on the page we openeddevexperts.com18 Sep 2026
FOREX.com / StoneX Trading (City Index)Streaming host push.cityindex.com (vendor unconfirmed)Not publishedNot stated on the page we openeddocs.labs.gaincapital.com18 Sep 2026
FXCMForexConnect price streams; legacy REST over a socket.io connectionNot publishedNot stated on the page we openedfxcm-rest.readthedocs.io18 Sep 2026
MetaTrader 5 (Python package and MQL5)No push API in Python: poll ticks and barsNot statedNot applicablemql5.com18 Sep 2026
MetaTrader 4 (MQL4)In-terminal events only; no external streaming APINot applicableNot applicabledocs.mql4.com18 Sep 2026

Each row comes from the linked page, opened on the date shown. Not published means we found no figure on the pages we opened. Full comparison table.

Deeper references: Streaming limits for every API in the compare table, IBKR Web API websocket topics, cTrader Open API subscribe messages and payloadType numbers

What to do with these numbers

Sections