Streaming market data · WebSocket and FIX
Forex Data Feed.
Every Tick, As It Happens.
One WebSocket connection carries live bid and ask for currencies, metals, CFDs and crypto, stamped to the millisecond. FIX for desks that need it.
{
"a": "1.12485",
"av": "1000000",
"b": "1.12484",
"bv": "1050000",
"s": "EURUSD",
"t": "QUOTE",
"ts": "20261104-14:54:55.316"
}
Real three-second sample, replayed
- Bid
- 1.12484
- Ask
- 1.12485
- Spread
- 0.1 pips
Trusted by top companies & institutions. Read our customer stories
- Delivery
- Tick by tick
- Timestamps
- Millisecond
- Latency
- < 20ms
- SLA Uptime
- 99.99%
Protocol at a glance
One connection, pushed ticks, under 20 ms
- High frequency.
- Most symbols update multiple times per second, so your screens and signals move with the market rather than with a polling timer.
- Every tick, stamped.
- Each tick carries the quote's millisecond timestamp, so you can sequence, replay and audit exactly what arrived and when.
- Your format.
- JSON, CSV or SSV, chosen once at login. The same tick arrives as a JSON object or as a single delimited line for the parsers that prefer it.
- Volume and depth.
- Bid and ask volume on every tick. On FX pairs, accounts with the ladder enabled get full market depth with one login flag.
- 99.99% SLA, redundant servers.
- Redundant infrastructure behind a published SLA, with a public status page you can watch at any time.
| WebSocket · JSON quote stream | Mean | p90 | p95 | n |
|---|---|---|---|---|
| Delivery latency | 7.4ms | 11.2ms | 14.5ms | 432,172 |
TLS 1.3SSL-encrypted sessionsKey-authenticated
Building a proprietary trading firm or brokerage platform?
Learn how our zero-spike feeds, client display rights and MT5 bridges support multi-asset trading desks.
Two ways to stream market data
WebSocket for most teams. FIX for the desks that already speak it.
Both carry the same prices with the same timestamps. The difference is how your side is built.
WebSocket
Included on every plan. A browser, a server or a desktop app can be receiving ticks within the hour.
- JSON, CSV or SSV, chosen at login
- Subscribe and unsubscribe on the open connection
- Client libraries and tutorials for Python, Node.js, Go, C++ and Rust
- FX market depth on accounts with the ladder enabled
FIX
For trading desks and platforms with a FIX engine already in place. Enterprise accounts, set up with our engineers.
- FIX 4.4 market data sessions
- Same prices and timestamps as the WebSocket feed
- Integration guide and demo clients in C++, Python and Java
- Contracted SLA and support from the engineers who run the feed
Streaming in three steps
From a blank file to live prices. Each step links to the page that does it, and the clients below cover the rest.
-
Get a streaming key
Individuals sign up, verify their email and find the key on the dashboard. Businesses fill in a short form, we get in touch and set the account up. The WebSocket key is separate from the REST key.
-
Connect, log in, subscribe
Open the socket, send the login action with your key, then subscribe to the symbols you want. Twenty lines in any language.
-
Handle the ticks
Messages with a
tfield are prices; messages with atypefield are acknowledgements. Reconnect and resubscribe if the socket closes.
Client tutorials
Complete, working clients for the languages your stack runs on.
Frequently asked questions
-
A WebSocket stream of live bid and ask prices for currency pairs, precious metals, CFDs and crypto. You open one connection, subscribe to the symbols you need and receive every price change as it happens. The same prices are available over FIX for enterprise desks.
-
Every change is pushed as it happens, with the quote's millisecond timestamp. On busy pairs that is many updates a second.
-
Every tick carries the quote's timestamp in UTC, which is the same as GMT with no daylight-saving shift, in the form YYYYMMDD-HH:MM:SS.sss, so to the millisecond. It is the time of the quote, not the time it reached you, which makes it the right field for sequencing, replaying and auditing ticks.
-
JSON, CSV or SSV, chosen with the fmt field at login. The content is the same; CSV and SSV are a single delimited line per tick for parsers that prefer it.
-
The full list of streamable symbols is on the WebSocket Tester in the docs, where you can also subscribe and watch ticks arrive before writing any code. Subscribe with the instrument code plus :QUOTE, for example EURUSD:QUOTE. Inverse pairs such as USDGBP work like any direct pair.
-
Yes. Send subscribe and unsubscribe actions on the open connection, with as many symbols per message as you like. Each action is acknowledged, invalid symbols are listed in the acknowledgement, and the valid ones in the same batch still go through. Inverse pairs such as USDGBP subscribe like any direct pair.
-
No. Your streaming key is separate and is shown in the dashboard next to your REST key. Both are on your dashboard once your account is set up.
-
WebSocket is included on every plan and is the quickest to integrate. FIX 4.4 sessions are for desks and platforms that already run a FIX engine and want the feed inside it; they are set up on enterprise accounts with our engineers. See the FIX API page.
-
Reconnect, log in and subscribe again. Pass send_last on the subscription and the server sends one cached tick per symbol immediately, so your screens show the latest price before live updates resume.
-
Individuals sign up, verify their email and find the streaming key on the dashboard; businesses fill in a short form, we get in touch and set the account up. Sign up to start.
Get started
Start streaming today
Individuals get a streaming key on the dashboard after verifying their email. Businesses fill in a short form, we get in touch and set the account up. Desks that need FIX or enterprise terms can talk to us directly.
Pricing
WebSocket streaming is included on every plan. Plans scale with request volume and history depth; FIX is arranged on enterprise accounts.