cTrader vs TradeLocker API
The same fields from the cTrader Open API record and the TradeLocker API record, side by side. No winner is picked: which one suits you depends on what you are building.
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 two records show
Differences you can see in the records themselves. These are counts of what this site holds, not a verdict on either API.
- cTrader Open API is a platform API, offered through the brokers that carry the platform. TradeLocker API is a platform API, offered through the brokers that carry the platform.
- This site documents no endpoints for cTrader Open API and 23 endpoints for TradeLocker API. That counts what has been documented here, not what each API offers.
- This site has decoded 53 error codes for cTrader Open API and 5 error codes for TradeLocker API.
- The limits register holds 2 limit records for cTrader Open API and no limit records for TradeLocker API. Each limit record carries its own scope.
- The cTrader Open API record holds a demo claim, verified at its source. The TradeLocker API record holds a demo claim, verified at its source. The wording of each is in the Demo row below.
- Claims marked unverified or as sources conflicting: 0 in the cTrader Open API record and 1 in the TradeLocker API record. Each is labelled where it appears.
- A quickstart is built here for cTrader Open API only.
cTrader Open API and TradeLocker API, field by field
| Field | cTrader Open API | TradeLocker API |
|---|---|---|
| Kind | Platform API, offered by many brokers | Platform API, offered by many brokers |
| API family | Protobuf over TCP/WebSocket, JSON over TCP/WebSocket, Python package, C# package | REST, Streams API (Socket.IO WebSocket), Python package |
| How you get access | Register an app at openapi.ctrader.com; Spotware reviews new apps, so describe your use case in detail.Creating a new applicationchecked | Use your TradeLocker login (email, password, server) against the public REST API; no separate app registration found.TradeLocker API connectivitychecked |
| Who can use it | Supported by all trading accounts of any cTrader affiliated brokers by default, which means both demo and live accounts.cTrader Open APIchecked | TradeLocker users only, via a broker or prop firm that offers TradeLocker.Getting Started with TradeLocker Public APIchecked |
| Demo | Yes: separate demo endpoint; demo and live environments are fully separated.Proxies and endpointschecked | Yes: separate demo environment at demo.tradelocker.com.Getting Started with TradeLocker Public APIchecked |
| Authentication | OAuth 2.0 authorisation code flow: the auth code lives 1 minute, the access token 30 days. Scopes are accounts, which is read only, and trading, which is full.Account authenticationchecked | POST email, password and server to /auth/jwt/token; send the JWT as Bearer token; refresh tokens issued. /trade/* routes also need the accNum header (not the accountId).Getting Started with TradeLocker Public APIchecked |
| Streaming | Yes: spot quotes, depth of market and execution events on the same connection, at 50 requests a second per connection (5 for historical data) with a heartbeat every 10 seconds. Host live1.p.ctrader.com port 5035, SSL mandatory for TCP and WebSocket. Spotware recommends at most two connections, one demo and one live, each carrying an unlimited number of accounts of that type.Messageschecked | Unverified. TradeLocker's public API documentation, re-read 12 Oct 2026, describes a request and response REST API only, and its index of pages lists no streaming page. The record's API family names a Streams API from an earlier reading that could not be confirmed on a page that opens today.UnverifiedTradeLocker public API, getting startedchecked |
| History depth | Trend bars and ticks by from/to timestamp with optional count; deals by range with maxRows. Cash flow history max 1 week per request.Spotware OpenApiMessages.protochecked | /trade/history by resolution (1m to 1M) and from/to; max rows per request and orders history rows come from /trade/config.TradeLocker Public API docschecked |
| Limits |
| None recorded |
| Endpoints documented here | None yet | 23 |
| Error codes decoded here | 53 | 5 |
| Official documentation | help.ctrader.com | public-api.tradelocker.com |
Go deeper on each side
cTrader Open API
- cTrader API page, the full record
- cTrader API quickstart, credentials to a first call
- cTrader API limits, in the table above
- cTrader API error codes, each with its fix
- cTrader Open API with Python
TradeLocker API
- TradeLocker API page, the full record
- No TradeLocker API quickstart is built here yet
- TradeLocker API limits, in the table above: none recorded
- TradeLocker API error codes, each with its fix
- TradeLocker API endpoints, each with its source
All comparisons. New to this? Getting started with API trading.