IG vs OANDA API
The same fields from the IG record and the OANDA 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.
- IG is recorded as a broker with an API of its own. OANDA is recorded as a broker with an API of its own.
- This site documents 49 endpoints for IG and 33 endpoints for OANDA. That counts what has been documented here, not what each API offers.
- This site has decoded 132 error codes for IG and 242 error codes for OANDA.
- The limits register holds 5 limit records for IG and 1 limit record for OANDA. Each limit record carries its own scope.
- The IG record holds a demo claim, verified at its source. The OANDA 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: 1 in the IG record and 0 in the OANDA record. Each is labelled where it appears.
- A quickstart is built here for both.
IG and OANDA, field by field
| Field | IG | OANDA |
|---|---|---|
| Kind | Broker with its own API | Broker with its own API |
| API family | REST, Streaming | REST (v20), HTTP streaming |
| How you get access | API keys are only issued to existing live account holders: generate one in My IG > Settings > API keys.How to use IG APIchecked | Account Management Portal > My Services > Manage API Access, accept licence, generate personal access token.OANDA v20 Introductionchecked |
| Who can use it | Spread bet and CFD accounts only. Share dealing, ISA and SIPP are not supported (error stockbroking-not-supported).trading-ig FAQ (community source)checked | Needs a v20 account; available in all divisions except OANDA Global Markets and OANDA TMS Brokers S.A.OANDA v20 Introductionchecked |
| Demo | Partial: demo API works, but no key from a standalone demo account unless it is linked to a live account.How to use IG APIchecked | Yes: fxTrade Practice environment with its own token.OANDA Development Guidechecked |
| Authentication | API key plus username and password returns CST and X-SECURITY-TOKEN, valid 12 hours on a rolling basis with each call resetting the clock on the IG Labs FAQ, while IG's REST trading API guide says 6 hours at first, extended up to a maximum of 72 hours: a disagreement between two IG pages that the blocked reference page could not settle on 23 Sep 2026. The v3 OAuth access token lasts as long as the login response says, with a refresh token that expires later. All tokens are invalidated during weekend maintenance.Sources conflict IG Labs FAQ: 12 hours between calls, reset by each call. IG Labs REST trading API guide: 6 hours at first, extended up to 72 hours while in use.IG Labs REST trading API guidechecked | Bearer personal access token, generated in the Account Management Portal after accepting the API licence.Introduction, OANDA v20 REST APIchecked |
| Streaming | Streaming runs on Lightstreamer: IG's Streaming API Guide starts by sending you to the Lightstreamer client library, and the server address to connect to comes back from the /session call. By default a connection holds up to 40 simultaneous subscriptions. The guide asks you to contact IG to raise that quota and the FAQ says to manage it by unsubscribing and subscribing as needed; both warn that opening extra connections to get past it may cost you the API key or your API permissions. The streaming API does not take OAuth tokens, only the CST and X-SECURITY-TOKEN pair.IG Labs Streaming API Guidechecked | HTTP chunked transfer encoding carrying JSON objects, not WebSocket. The development guide states at most 20 active streams, with requests above that rejected, and no more than 2 new connections a second. The best practices page advises no more than 100 requests a second on an established connection. Sources: https://developer.oanda.com/rest-live-v20/development-guide/ and https://developer.oanda.com/rest-live-v20/best-practices/, both read 23 September 2026, development guide re-read 24 September 2026.OANDA Development Guidechecked |
| History depth | Up to 20 years of price history depending on resolution; 10,000 historical data points per week. Transactions and activity history are paged.IG: How to use IG APIchecked | Historical pricing back to 2005, on the introduction page. Candles: at most 5,000 per request, 500 by default, on the pricing endpoints page. Transactions: at most 365 days per request, in pages of up to 1,000.OANDA v20: Introductionchecked |
| Limits |
|
|
| Endpoints documented here | 49 | 33 |
| Error codes decoded here | 132 | 242 |
| Official documentation | labs.ig.com | developer.oanda.com |
Go deeper on each side
IG
- IG API page, the full record
- IG API quickstart, credentials to a first call
- IG API limits, in the table above
- IG API error codes, each with its fix
- IG API endpoints, each with its source
- ChatGPT trading bot with the IG API, the safe way
- Get your IG trade history into a spreadsheet
- IG deal confirms: turning a deal reference into a result
- IG demo API key: how to get one and what it allows
- IG streaming with Python
OANDA
- OANDA API page, the full record
- OANDA API quickstart, credentials to a first call
- OANDA API limits, in the table above
- OANDA API error codes, each with its fix
- OANDA API endpoints, each with its source
- Get your OANDA trade history into a spreadsheet
All comparisons. New to this? Getting started with API trading.