Which broker APIs have an official Python library?
A Python library lets you call an API from Python without writing each request yourself. An official one is published by the provider itself. A community one is written by someone else.
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.
Rows are in name order. The order is not a ranking and nothing here recommends a broker. Not recorded here means this site holds no record to answer from. It does not mean the broker or platform lacks it.
How each answer is built
The answer names the libraries in the record whose language field names Python, split by whether the record marks each as official. A record that lists Python libraries but marks none official says exactly that. A record that lists no Python library is not asked the question, which is not evidence that none exists.
14 of the 29 records below can answer this question. 1 of those answers rests on a record labelled unverified, 0 rest on sources that conflict, and 15 records are shown as not recorded here.
The state beside an answer is the cell the capability grid computes for the same record, shown as it stands there: Python library, Official SDK or library. It is a separate reading of the record, decided by the rule on its own page.
Brokers
| Record | Answer from the record | Python | Official SDK | Status, source and date |
|---|---|---|---|---|
| Axi | Not recorded here | Not recorded | Not recorded | No record held |
| Bitget | The Bitget record marks one Python library as official: bitget-python-sdk-api. | Yes | Yes | bitget-python-sdk-apichecked |
| Capital.com | No Python library marked official is recorded here for Capital.com, which is not evidence that none exists. The record lists as community: capital-mcp and capitalcom-python. | Yes | Yes | capital-mcpchecked capitalcom-pythonchecked |
| CMC Markets | Not recorded here | Not recorded | Not recorded | No record held |
| Deriv | The Deriv record marks one Python library as official: python-deriv-api. | Yes | Yes | python-deriv-apichecked |
| Dukascopy | Not recorded here | Not recorded | Yes | No record held |
| eToro | Not recorded here | Not recorded | Not recorded | No record held |
| Exness | Not recorded here | Not recorded | Not recorded | No record held |
| FOREX.com | No Python library marked official is recorded here for FOREX.com, which is not evidence that none exists. The record lists as community: pygcapi and forexcom. No dated source is recorded for pygcapi. | Yes | Not recorded | forexcomchecked |
| FXCM | The FXCM record marks 2 Python libraries as official: ForexConnectAPI and forexconnect. It also lists as community, not official: fxcmpy. No dated source is recorded for ForexConnectAPI. | Yes | Yes | forexconnectchecked |
| FxPro | Not recorded here | Not recorded | Not recorded | No record held |
| IG | No Python library marked official is recorded here for IG, which is not evidence that none exists. The record lists as community: trading-ig. | Yes | Yes | trading-igchecked |
| Interactive Brokers | The Interactive Brokers record marks one Python library as official: TWS API (ibapi). It also lists as community, not official: ib_async and ibeam. | Yes | Yes | TWS API (ibapi)checked |
| OANDA | Unverified. The OANDA record marks one Python library as official: v20. It also lists as community, not official: oandapyV20. No source with a checked date is recorded for it. | Yes | Yesunverified | Unverifiedno source opened |
| Pepperstone | Not recorded here | Not recorded | Not recorded | No record held |
| Saxo | No Python library marked official is recorded here for Saxo, which is not evidence that none exists. The record lists as community: saxo_openapi. | Yes | Yes | saxo_openapichecked |
| Swissquote | Not recorded here | Not recorded | Not recorded | No record held |
| ThinkMarkets | Not recorded here | Not recorded | Not recorded | No record held |
| Tickmill | Not recorded here | Not recorded | Not recorded | No record held |
| Trading 212 | Not recorded here | Not recorded | Not recorded | No record held |
| XTB | Not recorded here | Not recorded | Not recorded | No record held |
Platform APIs
| Record | Answer from the record | Python | Official SDK | Status, source and date |
|---|---|---|---|---|
| cTrader | The cTrader record marks one Python library as official: OpenApiPy (ctrader-open-api). | Yes | Yes | OpenApiPy (ctrader-open-api)checked |
| DXtrade | Not recorded here | Not recorded | Not recorded | No record held |
| Match-Trader | Not recorded here | Not recorded | Not recorded | No record held |
| MetaApi | The MetaApi record marks one Python library as official: metaapi-cloud-sdk. | Yes | Yes | metaapi-cloud-sdkchecked |
| MetaCopier | The MetaCopier record marks one Python library as official: MetaCopier API client packages. | Yes | Yes | MetaCopier API client packageschecked |
| MetaTrader 4 | Not recorded here | Not recorded | Not recorded | No record held |
| MetaTrader 5 | The MetaTrader 5 record marks one Python library as official: MetaTrader5. It also lists as community, not official: Community Python MCP server (MQL5 article 21905). | Yes | Yes | MetaTrader5checked |
| TradeLocker | The TradeLocker record marks one Python library as official: tradelocker. | Yes | Yes | tradelockerchecked |
Where to go next
- SDKs and wrappers by language
- Python library: the capability table
- Choosing a broker API for Python
- Answers for every broker and platform API
- Which retail brokers have a public trading API?
- Which broker APIs have a demo environment?
- What are the rate limits of each broker API?
- How does each broker API authenticate?
- Which broker APIs stream prices?
- Which broker APIs have an MCP server?
- What does each API's most referenced error mean?