Instrument and market search: broker API endpoints compared
23 documented calls from 11 of the 12 APIs with endpoint records here, and 11 functions and messages from 4 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
Every API has its own identifier for a market, and the ticker you know is rarely it. A search call turns a name or a symbol into the identifier the other calls expect.
The same group of calls usually returns the details you need before dealing: minimum size, price precision, the distance a stop must keep and the hours the market is open.
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 | Search markets by term or fetch up to 50 epics at once. With no query it returns every market. | open-api.capital.comchecked |
| DXtrade APIs | GET/accounts/{accountCode}/instruments/query | Read the details of instruments as they are set for one account, since the platform can configure an instrument differently for different accounts. | demo.dx.tradechecked |
| DXtrade APIs | GET/instruments/{symbol} | Read the general details of one instrument by its symbol. | demo.dx.tradechecked |
| DXtrade APIs | GET/instruments/query | Search the instruments the platform trades by symbol, with a wildcard, or by type, and page through the result. | demo.dx.tradechecked |
| eToro | GET/api/v1/market-data/instruments | Returns display metadata for instruments, such as name, type, exchange, full symbol and logo images. Filter by instrument, exchange, industry or instrument type IDs. | api-portal.etoro.comchecked |
| eToro | GET/api/v1/market-data/search | Returns a paginated list of instruments. You choose which instrument fields come back with the required fields parameter, and any field can also be used as a filter. | api-portal.etoro.comchecked |
| eToro | GET/api/v2/market-data/instruments | Instrument reference data, filtered by instrument IDs or by symbols, with cursor paging. With neither filter it pages through every instrument. | api-portal.etoro.comchecked |
| eToro | GET/api/v2/market-data/instruments/search | Free text search of instruments by name or symbol, returned in order of relevance. | api-portal.etoro.comchecked |
| IG | GET/categories/{categoryId}/instruments | Every instrument in one category, paged, with its epic, name, status and current bid and offer. | labs.ig.comchecked |
| IG | GET/markets | Search markets by free text. Returns epics you then feed into every other call. | labs.ig.comchecked |
| Interactive Brokers | GET/iserver/contract/{conid}/info | Full contract details for a conid: symbol, instrument type, currency, exchange, trading class and whether it can be smart routed. | interactivebrokers.comchecked |
| Interactive Brokers | GET/iserver/secdef/info | Attributes of an instrument, mainly for derivatives: ticker, exchanges, currency, maturity, right and strike. | interactivebrokers.comchecked |
| Interactive Brokers | GET/iserver/secdef/search | Finds contracts for a symbol and returns their contract IDs (conid), which every market data and order call needs. | interactivebrokers.comchecked |
| Match-Trader Platform API | GET/mtr-api/{SYSTEM_UUID}/effective-instruments | List the instruments the logged in user can trade, each with its settings such as trading hours, price precision, volume limits, leverage and swap. | app.theneo.iochecked |
| MetaApi | GET/users/current/accounts/{accountId}/symbols | List the symbols available on the MetaTrader account, as plain names. | metaapi.cloudchecked |
| MetaApi | GET/users/current/accounts/{accountId}/symbols/{symbol}/specification | Read the trading specification of one symbol. | metaapi.cloudchecked |
| OANDA | GET/v3/accounts/{accountID}/instruments | Instruments this account can trade, with precision, pip location and margin rate. | developer.oanda.comchecked |
| Saxo OpenAPI | GET/ref/v1/instruments | Searches Saxo's instrument universe by keyword, asset type, exchange or Uic and returns summary rows. Use it to find the Uic you need for prices, charts and orders. | developer.saxochecked |
| Saxo OpenAPI | GET/ref/v1/instruments/details | Detailed reference data for a list of instruments in one call, chosen by Uic and asset type. | developer.saxochecked |
| Saxo OpenAPI | GET/ref/v1/instruments/details/{Uic}/{AssetType} | Returns full details for one instrument: symbol, currency, tick size, minimum trade size, exchange and the order types it supports. | developer.saxochecked |
| TradeLocker API | GET/trade/accounts/{accountId}/instruments | List the instruments the account can trade, each with its tradableInstrumentId and the routes used for quotes and for trading. | public-api.tradelocker.comchecked |
| TradeLocker API | GET/trade/instruments/{tradableInstrumentId} | Read the dealing details of one instrument, such as lot size and step, smallest and largest lot, tick size, quoting currency and trade session. | public-api.tradelocker.comchecked |
| Trading 212 | GET/api/v0/equity/metadata/instruments | Every instrument the account can reach, with its ticker, name, ISIN, type, currency and the working schedule it trades on. | docs.trading212.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 |
|---|---|---|---|
| cTrader Open API | messageProtoOASymbolByIdReq cTrader Open API | Asks for the full details of one or more symbols, by id. | help.ctrader.comchecked |
| cTrader Open API | messageProtoOASymbolsListReq cTrader Open API | Asks for the symbols a trading account can use. Each comes back in a light form with a limited set of fields. | help.ctrader.comchecked |
| Deriv | messageactive_symbols Deriv WebSocket API | Lists the symbols that can be traded now, with the market each belongs to and whether it is open. The symbol codes it returns are what ticks, ticks_history and proposal expect. | developers.deriv.comchecked |
| Deriv | messagecontracts_for Deriv WebSocket API | Lists the contracts that can be bought on one symbol now, with the barrier, stake and duration limits of each. On a logged in connection only the contracts that account may trade are returned. | developers.deriv.comchecked |
| 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 5 (Python package and MQL5) | functionsymbol_info() MetaTrader5 Python package | Returns the terminal's data on one financial instrument: its contract and dealing properties as well as its latest prices. | mql5.comchecked |
| MetaTrader 5 (Python package and MQL5) | functionsymbols_get() MetaTrader5 Python package | Returns the financial instruments in the terminal, all of them or those whose names match a filter. | mql5.comchecked |
| MetaTrader 5 (Python package and MQL5) | functionSymbolInfoDouble() MQL5 | Returns one floating point property of a symbol, such as its bid, its ask or its point size. | mql5.comchecked |
| MetaTrader 5 (Python package and MQL5) | functionSymbolInfoInteger() MQL5 | Returns one integer property of a symbol, such as its spread, or whether that spread floats. | mql5.comchecked |
| MetaTrader 5 (Python package and MQL5) | functionSymbolName() MQL5 | Returns the name of the symbol at a place in the list of symbols. | mql5.comchecked |
| MetaTrader 5 (Python package and MQL5) | functionSymbolsTotal() MQL5 | Returns how many symbols are available: those selected in Market Watch, or all of them. | 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
Brokers and platforms with no endpoint records at all are not listed above. The broker directory shows what is recorded for each.