Broker API HubMenu

Subscribe to a stream: broker API endpoints compared

12 documented calls from 2 of the 12 APIs with endpoint records here, and 16 functions and messages from 8 APIs whose interfaces are not HTTP, each with the page it was read on.

Independent and unofficialNewest check

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 task is

Streaming keeps one connection open and lets the provider push each update to you as it happens, in place of asking again and again. It suits live prices and notices of fills.

Only streams that start with a documented HTTP call appear in the table below. Some providers stream over a separate protocol with its own client library, which has no HTTP endpoint to list, so an absence here says nothing about whether a provider streams.

The documented endpoint, API by API

Ordered by the name of the broker or platform API, then by path. The order is not a ranking. Open a row for the parameters, the response and a sample request.

BrokerEndpointWhat the record says it doesSource
OANDAGET/v3/accounts/{accountID}/pricing/streamStreaming prices over one long lived HTTP connection. Newline delimited JSON: PRICE and HEARTBEAT objects.developer.oanda.comchecked
OANDAGET/v3/accounts/{accountID}/transactions/streamStreaming account activity (fills, cancels, funding) from the moment you connect. Newline delimited JSON.developer.oanda.comchecked
Saxo OpenAPIPOST/chart/v3/charts/subscriptionsSets up a streaming subscription on chart samples and returns the most recent completed ones as a first snapshot.developer.saxochecked
Saxo OpenAPIPOST/port/v1/accounts/subscriptionsSets up a streaming subscription on a list of accounts and returns a first snapshot of them.developer.saxochecked
Saxo OpenAPIPOST/port/v1/balances/subscriptionsSets up a streaming subscription on a balance and returns a first snapshot of it.developer.saxochecked
Saxo OpenAPIPOST/port/v1/closedpositions/subscriptionsSets up a streaming subscription on a list of closed positions and returns a first snapshot of them.developer.saxochecked
Saxo OpenAPIPOST/port/v1/netpositions/subscriptionsSets up a streaming subscription on a list of net positions and returns a first snapshot of them.developer.saxochecked
Saxo OpenAPIPOST/port/v1/orders/subscriptionsSets up a streaming subscription on a list of open orders and returns a first snapshot of them.developer.saxochecked
Saxo OpenAPIPOST/port/v1/positions/subscriptionsSets up a streaming subscription on a list of positions and returns a first snapshot of them.developer.saxochecked
Saxo OpenAPIPOST/root/v1/sessions/events/subscriptionsSets up a streaming subscription on the session's capabilities, so a change in them is pushed to you.developer.saxochecked
Saxo OpenAPIPOST/trade/v1/infoprices/subscriptionsSets up a streaming subscription on info prices for a list of instruments and returns a first snapshot.developer.saxochecked
Saxo OpenAPIPOST/trade/v1/prices/subscriptionsSets up a streaming price subscription on one instrument and returns an initial snapshot. Updates then arrive on your WebSocket connection under the same ContextId and ReferenceId.developer.saxochecked

The same task where the interface is not HTTP

Some platform APIs, and the streaming interfaces of some broker APIs, are not sent as HTTP requests. A function is called from a program in its language, and a message is sent over an open connection. None has a method or a path, so each row is labelled with its kind and its interface. A record is put on this page by hand, from what the vendor's page says the call does, and one call can do several jobs, so the same function can be on more than one task page. Ordered by the name of the broker or platform API, then interface, then name.

APICallWhat the record says it doesSource
Bitgetmessageaccount Bitget WebSocket APIThe unified trading account: equity, margin figures and the balance of each coin. Bitget says data is pushed on first subscribing, when orders are filled, when funds are settled and when a balance changes.bitget.comchecked
Bitgetmessageorder Bitget WebSocket APIThe orders of the unified trading account. Bitget says nothing is pushed on first subscribing, and that a push follows when a spot, margin or futures order is placed, filled or cancelled.bitget.comchecked
Bitgetmessageticker Bitget WebSocket APIThe latest price of one symbol with its best bid and ask and its 24 hour figures. Bitget says updates are pushed every 200 ms while the market is changing.bitget.comchecked
Capital.commessagemarketData.subscribe Capital.com WebSocket APISubscribes to live price updates for a list of epics. Capital.com's page gives 40 as the most epics. An answer confirms each epic, then a quote message arrives for each price update.open-api.capital.comchecked
Capital.commessageOHLCMarketData.subscribe Capital.com WebSocket APISubscribes to candlestick bar updates for a list of epics, at chosen resolutions and for a chosen bar type. An answer confirms each combination, then an ohlc.event message arrives for each update.open-api.capital.comchecked
cTrader Open APImessageProtoOASubscribeLiveTrendbarReq cTrader Open APISubscribes to live bars of one size for one symbol. The definition says the symbol's live prices have to be subscribed to first, and the bars arrive inside ProtoOASpotEvent.help.ctrader.comchecked
cTrader Open APImessageProtoOASubscribeSpotsReq cTrader Open APISubscribes to the live prices of one or more symbols. The definition says a first ProtoOASpotEvent with the latest price follows, and then one for each price update.help.ctrader.comchecked
Derivmessageticks Deriv WebSocket APIAsks for the latest price of one symbol or several. With subscribe set to 1 a new tick message follows each time the price changes, until the stream is stopped with forget.developers.deriv.comchecked
Derivmessagetransaction Deriv WebSocket APIOpens a stream of the account's transactions: a message arrives for each buy, sell, deposit and withdrawal. subscribe must be 1, and without it no records are returned.developers.deriv.comchecked
DXtrade APIsmessageAccountPortfoliosSubscriptionRequest DXtrade Push APISubscribes to the portfolios of chosen accounts, or of all. A snapshot comes first, then the whole portfolio is sent again whenever an order is issued, changed or cancelled, a position changes, or a cash balance changes.demo.dx.tradechecked
DXtrade APIsmessageMarketDataSubscriptionRequest DXtrade Push APISubscribes to market data for a list of symbols: quotes, which carry the latest bid and ask, or candles of a chosen width over a period. The server then sends MarketData messages.demo.dx.tradechecked
eToromessageSubscribe eToro WebSocket APIStarts 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.api-portal.etoro.comchecked
IGmessageACCOUNT:{account identifier} IG Streaming APILive figures for one account: profit and loss, margin, funds, equity and the cash available to trade, each sent again as it changes.labs.ig.comchecked
IGmessagePRICE:{account identifier}:{epic} IG Streaming APILive prices for one market, by account identifier and epic: the bid and ask ladder up to five tiers deep, the sizes at each tier, the day's high and low and the dealing state. IG's page says price availability depends on the account's permissions.labs.ig.comchecked
IGmessageTRADE:{account identifier} IG Streaming APITrade notifications for one account in three fields: CONFIRMS for deal confirmations, OPU for open position updates and WOU for working order updates. The value of each is a JSON object.labs.ig.comchecked
MetaTrader 5 (Python package and MQL5)functionmarket_book_add() MetaTrader5 Python packageSubscribes the terminal to changes in the depth of market for one instrument, which is what makes market_book_get() return data.mql5.comchecked

None documented here yet

These APIs have endpoint records on this site, but none is assigned to this task. That describes this dataset. It is not a statement that the API lacks such a call.

Brokers and platforms with no endpoint records at all are not listed above. The broker directory shows what is recorded for each.

Sections