Read a price: broker API endpoints compared
10 documented calls from 9 of the 12 APIs with endpoint records here, and 4 functions and messages from 2 APIs whose interfaces are not HTTP, each with the page it was read on.
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
A price snapshot is the bid and ask at the moment you ask. It is a single reading, not a feed: the price may have moved by the time your program acts on it.
Polling a snapshot in a loop spends request allowance quickly. If you need every change in price, a streaming subscription is the tool built for it.
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.
| Broker or platform | Endpoint | What the record says it does | Source |
|---|---|---|---|
| Capital.com | GET/api/v1/markets/{epic} | Full details for one market: instrument, dealing rules, opening hours and a price snapshot. | open-api.capital.comchecked |
| eToro | GET/api/v1/market-data/instruments/rates | Returns the current bid, ask and last execution price for up to 100 instruments, with conversion rates to USD. | api-portal.etoro.comchecked |
| IG | GET/markets/{epic} | Full market details for one epic: instrument, dealing rules (minimum size, stop distances) and snapshot. | labs.ig.comchecked |
| Interactive Brokers | GET/iserver/marketdata/snapshot | Top of book values for one or more contracts, such as last (31), bid (84) and ask (86). The first request only starts the data. | ibkrcampus.comchecked |
| Match-Trader Platform API | GET/mtr-api/{SYSTEM_UUID}/quotations | Read the latest bid and ask for a symbol, with the day's change, high and low. | app.theneo.iochecked |
| MetaApi | GET/users/current/accounts/{accountId}/symbols/{symbol}/current-price | Read the current price of one symbol. | metaapi.cloudchecked |
| MetaApi | GET/users/current/accounts/{accountId}/symbols/{symbol}/current-tick | Read the latest tick of one symbol. The page says MT4 G1 accounts do not support this call. | metaapi.cloudchecked |
| OANDA | GET/v3/accounts/{accountID}/pricing | Current bid and ask for a list of instruments. A snapshot, not a stream. | developer.oanda.comchecked |
| Saxo OpenAPI | GET/trade/v1/infoprices | Returns a one off price snapshot (bid, ask, mid and delay) for one instrument. For a live feed Saxo offers price subscriptions over the streaming connection instead. | developer.saxochecked |
| TradeLocker API | GET/trade/quotes | Read the current bid and ask of one instrument, with the size at each. | public-api.tradelocker.comchecked |
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.
| API | Call | What the record says it does | Source |
|---|---|---|---|
| MetaTrader 4 (MQL4) | functionMarketInfo() MQL4 | Returns one item of data about a symbol in the Market Watch window, chosen by a request identifier: a price, or a dealing property such as the stop level. | docs.mql4.comchecked |
| MetaTrader 4 (MQL4) | functionSymbolInfoTick() MQL4 | Writes the current prices of a symbol, with the time they were last updated, into an MqlTick structure. | docs.mql4.comchecked |
| MetaTrader 5 (Python package and MQL5) | functionsymbol_info_tick() MetaTrader5 Python package | Returns the last tick the terminal has for one financial instrument. | mql5.comchecked |
| MetaTrader 5 (Python package and MQL5) | functionSymbolInfoTick() MQL5 | Writes the current prices of a symbol, with the time they were last updated, into an MqlTick structure. | 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.
- Deriv: none documented here yet
- Trading 212: none documented here yet
- DXtrade APIs: none documented here yet
Brokers and platforms with no endpoint records at all are not listed above. The broker directory shows what is recorded for each.