API Comparison
- General
- Order Types
- Account Management
- Trade Information, Instruments and History
- Usage and Technical Requirements
- Authentication & Other APIs
General
| Category | V20 REST API | FIX | MT4 | 
|---|---|---|---|
| Getting Started | |||
| License Agreement | Online | Online | |
| API Enabled | Online/Self-serve | Email via customer support | Online/Self-serve | 
| OS | All (online) | All | Windows | 
| Access | Online | Online | Download software | 
| Availability restrictions by division | Not yet available in Global Markets | Institutional customers only | All | 
Order Types
| Category | V20 REST API | FIX | MT4 | 
|---|---|---|---|
| What order types are supported? | |||
| Market Order | |||
| MarketIfTouchedOrder | |||
| Standard Stop Order | |||
| Standard Limit | |||
| Take Profit / Stop Loss | |||
| Trailing Stop | |||
| OCO (TP/SL pair only) | |||
| What order durations are supported? | |||
| Fill-or-Kill (FOK) | |||
| Immediate-or-Cancel (IOC) | |||
| DAY | |||
| GTD | |||
| GTD Maximum Duration | None | 100 days | 100 days | 
| GTC | |||
| What trading operations are supported? | |||
| Order creation | |||
| Upper/Lower bound* | |||
| Order modification | |||
| Partial Trade Close | |||
| Close all orders | |||
| Close all orders on pair | |||
| Position close | |||
| Close all trades | |||
| Stale order rejection (reject orders if timestamp is x secs old) | 
* The v20 system only supports a single bound to prevent the price from moving against you. If the trade is a buy, then an upper price bound is supported to prevent executing at a price that is higher than the customer wanted. If the trade is a sell, then a lower bound is supported to prevent executing at a price that is lower than the customer wanted.
Account Management
| Category | V20 REST API | FIX | MT4 | 
|---|---|---|---|
| What account information can be gathered? | |||
| List of user accounts | |||
| Account status (balance, NAV etc) | |||
| List of positions | |||
| Position includes Unrealized P/L | – | ||
| List of trades | |||
| List of orders | |||
| Full account history | |||
| List of recent transactions | unlimited | 90 days | 
Trade Information, Instruments and History
| Category | V20 REST API | FIX | MT4 | 
|---|---|---|---|
| What resource information can be retrieved? | |||
| Trade info | |||
| Trade trailing amount | |||
| Order ID that created a trade | |||
| Order info | |||
| Transaction Info | |||
| What market data can be gathered? | |||
| List of instruments | |||
| Number of tradable pairs available | All tradable pairs for division | All tradable pairs for division | All tradable pairs for division | 
| Access to non-tradeable pairs available | Price information available | Price information available | Allowing market data requests on pairs marked as indicative is configurable | 
| Instrument info | |||
| Current rates | |||
| Instrument History | |||
| Caching of instrument history | |||
| What is the maximum number of history records? | 5000 per page | – | no limit | 
| How far does instrument history go back? | Complete | – | Varies by interval >=Daily, Complete | 
| Candle data | – | Bid only | |
| Intervals supported | S5, S10, S15, S30, M1, M2, M3, M4, M5, M10, M15, M30, H1, H2, H3, H4, H6, H8, H12, D, W, M | – | M1, M5, M15, M30, H1, H4, D1, W1, MN | 
| Flexible candle alignment? | – | Aligned for GMT-5 and GMT+2 time zones only | |
| Is streaming technology supported? | |||
| Streaming rates | |||
| Streaming events | |||
| Types of streaming events supported | All account and trading related events | Fill and expiry messages.,Cancellations originating from some other source are ignored. | – | 
Usage and Technical Requirements
| Category | V20 REST API | FIX | MT4 | |
|---|---|---|---|---|
| Quota Policy | ||||
| Streams per user | Aggregate of 20 connections | unlimited | unlimited (1 per terminal) | |
| Rate limit (polling) | 30 | 100 (default),Configurable by user name or IP address | Streaming is always active, any polling is just against the local cache | |
| Technical skills/limitations | ||||
| Programming language | Language agnostic | any that allows socket communication | MQL4 (and DLLs) | |
| Format | JSON | Text | SDK | |
| Communication protocol | HTTP | TCP/FIX | Proprietary | |
| Connection state | stateless | stateful | – | |
| What type of application can be built with the API? | ||||
| Web | ||||
| Desktop | Windows only | |||
| Mobile | ||||
| Partner Abilities | ||||
| Third party application | ||||
| Personal use application | 
Authentication & Other APIs
| Category | V20 REST API | FIX | MT4 | 
|---|---|---|---|
| What type of authentication and security is used? | |||
| Username/Password | |||
| Account/Password | |||
| Supports read-only access | |||
| Messages encrypted | SSL | ||
| Are custom indicators supported? | |||
| Write custom indicators | |||
| Query built-in indicators | |||
| Query custom indicators | |||
| Is backtesting built in? | |||
| Integration with other APIs | |||
| fxLabs API | |||
| Autochartist API |