Introduction
What is this API?
The Forex Market Data API is a REST + WebSocket service that provides programmatic access to live and historical forex market data. Data is collected in real-time directly from MetaTrader 5 terminals connected to live broker accounts, and delivered to you with no intermediate aggregators.
Available Data
Feeds
Data is organised into feeds, one per broker account. Your API key is granted access to specific feeds; GET /v1/symbols returns only what you are entitled to, and anything else returns 403.
| Feed | Broker | Symbols | Timestamps |
|---|---|---|---|
WMMARKETS:ZERO | WM Markets Ltd | 230 | Broker time (UTC+3) |
WMMARKETS:PRIME | WM Markets Ltd | 230 | Broker time (UTC+3) |
WMMARKETS:VIP | WM Markets Ltd | 230 | Broker time (UTC+3) |
OANDA:LIVE | OANDA Global | 1,622 | True UTC |
Instruments
WM Markets feeds — 230 symbols each
| Category | Count | Examples |
|---|---|---|
| Forex Majors | ~28 | EURUSD, GBPUSD, USDJPY |
| Forex Minors | ~60 | AUDCAD, EURGBP, GBPJPY |
| Crypto | ~10 | BTCUSD, ETHUSD, LTCUSD |
| Global Indices | ~15 | US30, US500, GER40 |
| CFD Stocks | ~100 | AAPL, MSFT, TSLA |
| Commodities | ~15 | XAUUSD, XAGUSD, USOIL |
OANDA:LIVE — 1,622 symbols
| Category | Count | Examples |
|---|---|---|
| Share CFDs | ~1,540 | AAPL_CFD.US, ASML_CFD.NL, MC_CFD.FR, ERICb_CFD.SE |
| Forex | ~41 | EURUSD, GBPUSD, EURNZD |
| Global Indices | ~17 | US30, US100, US500 |
| Crypto | ~13 | BTCUSD, ETHUSD |
| Commodities & Metals | ~10 | XAUUSD, XAGUSD, USOIL, UKOIL |
OANDA's value over the WM feeds is equities: roughly 1,540 share CFDs across 12 exchanges in the US, UK and Europe. Their symbols contain a dot and are sometimes mixed case — see Symbol Format before parsing them.
Monthly history reaches back to 2016 for the long-established instruments.
Supported Resolutions
| API Code | Name | Bar Duration |
|---|---|---|
1 | M1 | 1 minute |
5 | M5 | 5 minutes |
10 | M10 | 10 minutes |
15 | M15 | 15 minutes |
30 | M30 | 30 minutes |
60 | H1 | 1 hour |
120 | H2 | 2 hours |
240 | H4 | 4 hours |
1D | Daily | 1 day |
1W | Weekly | 1 week |
1M | Monthly | 1 month |
History Depth
| Resolution | Depth |
|---|---|
| M1 | ~3 months (broker limit) |
| M5 – M15 | ~12 months |
| H1 and above | From January 2024 onwards |
| Daily | From January 2024 onwards |
Technical Architecture
Your Application
│
├── REST API → https://api.pipdata.net/v1/*
│ ├── GET /v1/config ← TradingView configuration
│ ├── GET /v1/symbols ← Symbol list and search
│ ├── GET /v1/history ← Historical OHLCV bars
│ ├── GET /v1/coverage ← Available data date ranges
│ ├── GET /v1/status ← Live feed health
│ └── GET /v1/usage ← Your API key usage stats
│
└── WebSocket → wss://api.pipdata.net/v1/stream
└── Live M1 bar updates as each candle closes
Symbol Format
Every instrument is identified by a compound key with three colon-separated parts:
WMMARKETS:ZERO:EURUSD
│ │ │
│ │ └─ Display symbol (no broker suffix)
│ └─ Account type
└─ Broker name
Use this compound key in all symbol parameters across the REST and WebSocket APIs.
SLA and Limits
| Metric | Value |
|---|---|
| Uptime SLA | 99.5% |
| REST latency | < 200ms (95th percentile) |
| WebSocket latency | < 100ms |
Max countback per request | 10,000 bars |
| WebSocket symbols per connection | Plan-dependent |
Next Steps
Features
Make your first API call in under 5 minutes.
Card title
Card description
Learn how to authenticate every request.
Card title
Card description