Find an API that fits
Tick what you need and see which of the 29 broker and platform API records on this site fit, with the status of every fact. Then put up to three side by side.
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 the records say
This is a filter over recorded facts, shown in name order. It is not a recommendation and nothing here is ranked. Not recorded means this site holds no record, never that the API lacks it.
All 29 records are listed, in name order.
| Record | Side by side | Demo | Streaming | Streams prices | Streams account | Python library | Own API | MCP server | Rate limits | REST orders |
|---|---|---|---|---|---|---|---|---|---|---|
| All records Nothing is chosen, so every record is listed, in name order. | ||||||||||
| Axi Broker API | Partialverified | Not recorded | Not recorded | Not recorded | Not recorded | Noverified | Not recorded | Not recorded | Not recorded | |
| Bitget Broker API | Yesverified | Yesverified | Yesverified | Yesverified | Yesverified | Yesverified | Yesverified | Yesverified | Not recorded | |
| Capital.com Broker API | Yesverified | Yesverified | Yesverified | Not recorded | Yesverified | Yesverified | Yesverified | Yesverified | Yesverified | |
| CMC Markets Broker API | Partialverified | Not recorded | Not recorded | Not recorded | Not recorded | Noverified | Not recorded | Not recorded | Not recorded | |
| cTrader Open API Platform API | Yesverified | Yesverified | Yesverified | Yesverified | Yesverified | Does not apply | Yesverified | Yesverified | Not recorded | |
| Deriv Broker API | Yesverified | Yesverified | Yesverified | Yesverified | Yesverified | Yesverified | Yesverified | Yesverified | Not recorded | |
| Dukascopy Broker API | Partialverified | Yesverified | Yesverified | Not recorded | Not recorded | Yesverified | Yesverified | Yesverified | Not recorded | |
| DXtrade APIs Platform API | Noverified | Yesverified | Yesverified | Yesverified | Not recorded | Does not apply | Not recorded | Partialverified | Yesverified | |
| eToro Broker API | Yesverified | Yesverified | Yesverified | Yesverified | Not recorded | Yesverified | Yesverified | Yesverified | Yesverified | |
| Exness Broker API | Not recorded | Yesverified | Not recorded | Not recorded | Not recorded | Yesunverified | Not recorded | Partialverified | Not recorded | |
| FOREX.com / StoneX Trading (City Index) Broker API | Partialverified | Yesverified | Yesverified | Yesverified | Yesverified | Yesverified | Not recorded | Yesverified | Not recorded | |
| FXCM Broker API | Yesverified | Yesverified | Yesverified | Not recorded | Yesverified | Yesverified | Not recorded | Noverified | Not recorded | |
| FxPro Broker API | Partialunverified | Not recorded | Not recorded | Not recorded | Not recorded | Nounverified | Not recorded | Not recorded | Not recorded | |
| IG Broker API | Partialverified | Yesverified | Yesverified | Yesverified | Yesverified | Yesverified | Yesverified | Yesverified | Yesverified | |
| Interactive Brokers Broker API | Partialverified | Yesverified | Yesverified | Yesverified | Yesverified | Yesverified | Yesverified | Yesverified | Yesverified | |
| Match-Trader Platform API Platform API | Partialunverified | Yesverified | Yesverified | Yesverified | Not recorded | Does not apply | Not recorded | Noverified | Yesverified | |
| MetaApi Platform API | Yesverified | Yesverified | Yesverified | Not recorded | Yesverified | Does not apply | Not recorded | Yesverified | Not recorded | |
| MetaCopier Platform API | Not recorded | Yesverified | Not recorded | Yesverified | Yesverified | Does not apply | Yesverified | Not recorded | Not recorded | |
| MetaTrader 4 (MQL4) Platform API | Yesverified | Partialverified | Partialverified | Not recorded | Not recorded | Does not apply | Not recorded | Noverified | Not recorded | |
| MetaTrader 5 (Python package and MQL5) Platform API | Yesverified | Partialverified | Partialverified | Not recorded | Yesverified | Does not apply | Yesverified | Noverified | Not recorded | |
| OANDA Broker API | Yesverified | Yesverified | Yesverified | Yesverified | Yesverified | Yesverified | Yesverified | Yesverified | Yesverified | |
| Pepperstone Broker API | Partialverified | Not recorded | Not recorded | Not recorded | Not recorded | Yesverified | Not recorded | Not recorded | Not recorded | |
| Saxo OpenAPI Broker API | Yesverified | Yesverified | Yesverified | Yesverified | Yesverified | Yesverified | Yesverified | Yesverified | Yesverified | |
| Swissquote Broker API | Yesverified | Partialverified | Partialverified | Not recorded | Not recorded | Yesverified | Not recorded | Not recorded | Not recorded | |
| ThinkMarkets Broker API | Partialunverified | Not recorded | Not recorded | Not recorded | Not recorded | Nounverified | Yesverified | Not recorded | Not recorded | |
| Tickmill Broker API | Noverified | Not recorded | Not recorded | Not recorded | Not recorded | Noverified | Not recorded | Not recorded | Not recorded | |
| TradeLocker API Platform API | Yesverified | Not recorded | Not recorded | Not recorded | Yesverified | Does not apply | Not recorded | Partialverified | Yesverified | |
| Trading 212 Broker API | Yesverified | Not recorded | Not recorded | Not recorded | Not recorded | Yesverified | Yesverified | Yesverified | Yesverified | |
| XTB Broker API | Noverified | Noverified | Noverified | Noverified | Not recorded | Noverified | Not recorded | Noverified | Not recorded | |
| May fit: partial or not verified Every fact you chose is recorded as yes or partial, but at least one is only partial, or is a yes that rests on a record that is unverified or has conflicting sources. Each cell says which. | ||||||||||
| Not recorded here This site holds no yes or no for at least one fact you chose. That is a gap in this dataset, not a no. | ||||||||||
| Does not fit as recorded A record on this site says no to at least one fact you chose, or the question does not apply to this kind of record. | ||||||||||
Nothing is chosen for side by side.
See them side by sideSide by side
Tick Add on up to three records above and they appear here in columns, drawn from the same records. Columns are in name order.
Two records on one page
Each of these 38 pages reads the same fields from two records and sets them side by side, every cell with its source and checked date. No winner is picked.
Broker API and broker API: 21
- Capital.com vs eToro API
- Capital.com vs FXCM API
- Capital.com vs Interactive Brokers API
- Capital.com vs IG API
- Capital.com vs OANDA API
- Capital.com vs Saxo API
- eToro vs Interactive Brokers API
- eToro vs IG API
- eToro vs OANDA API
- eToro vs Saxo API
- FOREX.com vs FXCM API
- FOREX.com vs IG API
- FOREX.com vs OANDA API
- FXCM vs IG API
- FXCM vs OANDA API
- Interactive Brokers vs IG API
- Interactive Brokers vs OANDA API
- Interactive Brokers vs Saxo API
- IG vs OANDA API
- IG vs Saxo API
- OANDA vs Saxo API
Broker API and platform API: 9
How each answer is decided
No answer comes from a program reading meaning into a sentence. Each is a structured field, a record that exists, or a row of the capability facts register: a person's reading of the record's own sentence, entered only where its words settle it, with the reason shown in the side by side view and on the capability's page. A reading takes its status from the sentence it was read from, so a reading of an unverified sentence is unverified. The counts are of the 29 records on this site.
- A demo environment
Read from the record's own sentence about demo or sandbox access. A person read the sentence and entered yes, partial or no in the capability facts register only where its words settle it, with the reason and the scope printed. A demo of a trading platform that is not said to work with the API is partial, never yes. A sentence that settles nothing stays at not recorded.
14 recorded as yes and verified, 10 partial, or yes but not verified, 2 not recorded, 3 recorded as no. Demo or sandbox, record by record
- Streaming of any kind
Read from the record's own sentence about streaming: data pushed over a connection that stays open. A person read the sentence and entered yes, partial or no in the capability facts register only where its words settle it. Yes here does not say what is streamed: the next two lines do.
17 recorded as yes and verified, 3 partial, or yes but not verified, 8 not recorded, 1 recorded as no. Streaming, record by record
- Streaming prices, where a record says prices
Yes or partial only where a record says in words that prices or market data are streamed: the record's sentence about streaming, or an endpoint record for a price stream, cited beside the cell. A record that describes streaming without saying what is streamed stays at not recorded. A record that says there is no streaming is a no.
15 recorded as yes and verified, 3 partial, or yes but not verified, 10 not recorded, 1 recorded as no. Streaming, record by record
- Streaming account updates, where a record says so
Yes or partial only where a record says in words that account updates are streamed, such as orders, positions, balances or executions: the record's sentence about streaming, or an endpoint or error record for an account stream, cited beside the cell. Anything else stays at not recorded, except a record that says there is no streaming, which is a no.
12 recorded as yes and verified, 0 partial, or yes but not verified, 16 not recorded, 1 recorded as no. Streaming, record by record
- A Python library, official or community
The same cell as the Python library table, so the two surfaces give one answer: yes means the record lists at least one library whose language field names Python, each shown as official or community as the record marks it. A record that lists no Python library is not recorded, which is not evidence that none exists.
14 recorded as yes and verified, 0 partial, or yes but not verified, 15 not recorded, 0 recorded as no. Python library, record by record
- Its own API, not only a platform
Read from the broker record's nativeApi field: true is yes and false is no. Where the field is empty, a row of the capability facts register decides it if the record's sentence about access settles it, and otherwise it is not recorded. A platform record is itself an API, so the question does not apply to it.
14 recorded as yes and verified, 1 partial, or yes but not verified, 0 not recorded, 6 recorded as no, 8 where the question does not apply. Own API, record by record
- An MCP server
Yes means the MCP server register holds a server whose owner is this record, official or community, and the cell says which. A server that was looked for and not found is still not recorded.
14 recorded as yes and verified, 0 partial, or yes but not verified, 15 not recorded, 0 recorded as no. The MCP server directory
- Documented rate limits
Yes means the limits register holds at least one limit record for it, read on the source shown. With no limit record, a row of the capability facts register decides it where a record settles it: no where the record says no limit is published, which is not a statement that there is no limit, and partial where a limit is documented for part of the API or is only served at runtime. Any other sentence stays at not recorded.
13 recorded as yes and verified, 3 partial, or yes but not verified, 8 not recorded, 5 recorded as no. Published rate limits, record by record
- REST order placement recorded on this site
Yes means this site holds at least one endpoint record for it whose method and path place an order or open a position. Not recorded means this site has documented none. It says nothing about what the API can do.
10 recorded as yes and verified, 0 partial, or yes but not verified, 19 not recorded, 0 recorded as no. Place an order: the endpoints, broker by broker
- Fits as recorded
- Every fact you chose is recorded as yes, on a record verified at its source.
- May fit: partial or not verified
- Every fact you chose is recorded as yes or partial, but at least one is only partial, or is a yes that rests on a record that is unverified or has conflicting sources. Each cell says which.
- Not recorded here
- This site holds no yes or no for at least one fact you chose. That is a gap in this dataset, not a no.
- Does not fit as recorded
- A record on this site says no to at least one fact you chose, or the question does not apply to this kind of record.