Overview
IG is a global online trading provider that facilitates access to financial markets through its proprietary trading platform. Established in 1974, the company offers trading services for Contracts For Difference (CFDs), spread betting (primarily in the UK and Ireland), and direct share dealing. Its product suite covers a range of asset classes, including forex, indices, cryptocurrencies, commodities, and shares.
The platform is designed to cater to both retail and professional traders, offering various account types and tools. For retail clients, IG provides educational resources and risk management features, such as guaranteed stops and margin close-out levels. Professional clients may access higher leverage limits, subject to regulatory requirements and eligibility criteria. IG's web-based platform, mobile apps, and integration with third-party platforms like MetaTrader 4 aim to provide a flexible trading environment.
IG's infrastructure includes a REST API, allowing developers to build custom trading applications, automate strategies, and integrate market data into their systems. This programmatic access supports algorithmic trading and personalized analysis beyond the standard platform interface, as detailed in the IG REST API reference. The platform emphasizes real-time market data, advanced charting capabilities with technical indicators, and news feeds to support trading decisions.
Compliance is a core aspect of IG's operations, with the company regulated by multiple financial authorities globally, including the Financial Conduct Authority (FCA) in the UK, the Australian Securities and Investments Commission (ASIC), the Swiss Financial Market Supervisory Authority (FINMA), and the Monetary Authority of Singapore (MAS). These regulatory frameworks aim to provide investor protection and market integrity across the jurisdictions where IG operates.
Key features
- Multi-asset trading: Access to over 17,000 markets, including forex, indices, shares, commodities, and cryptocurrencies, through CFDs and spread betting.
- Advanced charting tools: Customizable charts with a range of technical indicators, drawing tools, and multiple chart types to facilitate technical analysis.
- REST API: Programmatic access to market data, account information, and trading functionalities, enabling custom application development and algorithmic trading strategies, as described in the IG Labs REST API documentation.
- Risk management tools: Features such as stop-loss orders, guaranteed stops, trailing stops, and margin close-out levels to help manage potential losses.
- Educational resources: A library of articles, webinars, and trading guides covering various aspects of trading and financial markets.
- News and analysis: Integrated news feeds, market analysis, and economic calendars to provide timely information for trading decisions.
- Mobile trading apps: Dedicated applications for iOS and Android devices, offering full trading functionality and account management on the go.
Pricing
IG's pricing model varies by product and market. The primary costs are through spreads for CFD and forex trading, and commissions for share dealing and ETFs. Additional charges may include overnight funding fees for positions held open longer than a day, and currency conversion fees. Inactivity fees may also apply under specific conditions.
| Product/Service | Pricing Model | Details |
|---|---|---|
| Forex Trading | Spreads | Variable spreads, starting from 0.6 pips on major currency pairs. |
| CFD Trading (Indices, Commodities, Cryptocurrencies) | Spreads | Variable spreads, dependent on market volatility and liquidity. |
| Share CFDs | Commission + Spreads | Commissions from 0.10% per side (min. £10/€10), plus market spread. |
| Spread Betting (UK & Ireland) | Spreads | Variable spreads, starting from 0.6 pips on major currency pairs. |
| Share Dealing & ETFs | Commission | Commissions from £3 per trade for frequent traders, up to £8 for less frequent. |
| Overnight Funding | Interest Rate | Applicable for positions held open overnight, based on interbank rates. |
| Inactivity Fee | Fixed Fee | £12 per month after 24 months of inactivity, if no open positions and no trades. |
| For detailed and up-to-date pricing information, refer to the IG official charges page. | ||
Common integrations
- MetaTrader 4 (MT4): IG offers integration with the MT4 platform, allowing traders to use its charting tools and Expert Advisors for automated trading, as described in IG's MT4 platform information.
- ProRealTime: Advanced charting package available through IG, providing sophisticated analysis tools and automated trading capabilities.
- REST API: Direct integration for developers to connect custom applications, retrieve market data, manage accounts, and execute trades programmatically. The IG REST API documentation provides endpoints for various trading functions.
- Trading Central: Provides technical analysis and actionable trade ideas directly within the IG platform.
Alternatives
- eToro: Known for its social trading features and copy trading, allowing users to replicate the trades of successful investors.
- Plus500: A CFD provider offering a wide range of instruments with a proprietary trading platform.
- Pepperstone: An ECN/STP broker offering forex and CFD trading with low spreads and multiple trading platforms, including MetaTrader and cTrader.
Getting started
To interact with the IG API, you'll typically need to obtain an API key and a valid account. The primary method for interaction is through HTTP requests to the REST API endpoints. The following Python example demonstrates how to establish a session and retrieve market data for a specific instrument, such as the FTSE 100 index (UK 100).
First, ensure you have the requests library installed (pip install requests).
import requests
import json
# Replace with your actual API key, username, and password
API_KEY = "YOUR_API_KEY"
IDENTIFIER = "YOUR_USERNAME"
PASSWORD = "YOUR_PASSWORD"
# IG API endpoints
BASE_URL = "https://demo.ig.com/gateway/deal"
# For live accounts, use: BASE_URL = "https://api.ig.com/gateway/deal"
# --- Step 1: Login and establish a session ---
def login(identifier, password, api_key):
headers = {
"Content-Type": "application/json",
"X-IG-API-KEY": api_key,
"Version": "2"
}
payload = {
"identifier": identifier,
"password": password
}
response = requests.post(f"{BASE_URL}/session", headers=headers, json=payload)
response.raise_for_status() # Raise an exception for HTTP errors
# Extract security tokens
cst_token = response.headers.get("CST")
x_security_token = response.headers.get("X-SECURITY-TOKEN")
print("Login successful!")
return cst_token, x_security_token
# --- Step 2: Fetch market data (e.g., for FTSE 100) ---
def get_market_data(cst_token, x_security_token, api_key, epic_id):
headers = {
"Accept": "application/json",
"Content-Type": "application/json",
"X-IG-API-KEY": api_key,
"CST": cst_token,
"X-SECURITY-TOKEN": x_security_token,
"Version": "3"
}
response = requests.get(f"{BASE_URL}/markets/{epic_id}", headers=headers)
response.raise_for_status()
print(f"Market data for {epic_id}:")
print(json.dumps(response.json(), indent=2))
return response.json()
# --- Main execution ---
if __name__ == "__main__":
try:
# Login
cst, x_s_token = login(IDENTIFIER, PASSWORD, API_KEY)
# Example: Get market data for 'IX.D.FTSE.DAILY.IP' (FTSE 100 Daily)
# You can find EPIC IDs in the IG platform or through the API's search functionality.
ftse_epic_id = "IX.D.FTSE.DAILY.IP"
market_data = get_market_data(cst, x_s_token, API_KEY, ftse_epic_id)
except requests.exceptions.HTTPError as e:
print(f"HTTP Error: {e.response.status_code} - {e.response.text}")
except Exception as e:
print(f"An error occurred: {e}")
This example first logs into the IG API using provided credentials to obtain session tokens (CST and X-SECURITY-TOKEN). These tokens are then used in subsequent requests to authenticate the user. The get_market_data function demonstrates how to fetch detailed information for a specific market using its EPIC ID. Replace placeholder values with your actual API key, username, and password. For production use, always handle credentials securely and consider environment variables or secret management systems.