Real-time quotes
Bid, ask, mid, spread (bps), and venue-count over WebSocket and REST. Sub-100ms median delivery from primary regions.
Currency-pair quotes from institutional liquidity providers, delivered over REST and WebSocket with the same JSON schema as the rest of the SiftingIO API. Majors, minors, and global exotics, with multi-region routing, sub-100ms median latency, and a 99.9% uptime SLA.
All productsOne credential, one schema, one set of rate limits, covering real-time quotes, historical depth, and global pair coverage.
Bid, ask, mid, spread (bps), and venue-count over WebSocket and REST. Sub-100ms median delivery from primary regions.
Full historical depth with tick-level granularity and OHLCV at 1m/5m/15m/1h/4h/1d for backtesting, research, and audit.
FX returns the same fields as crypto and on-chain: one parser, one client, no asset-specific glue code.
Pairs from developed and emerging markets, sourced from institutional liquidity providers worldwide. Not a single-region feed.
99.9% monthly uptime SLA with multi-region routing, continuous monitoring, and a public status page with incident history.
The same bearer token authenticates REST snapshots and WebSocket streams. Pin a version, scale rate limits, scope keys per environment.
REST snapshots and WebSocket streams share the same authentication and the same JSON shape, for FX, crypto, and beyond.
curl https://api.siftingio.com/v1/forex/ticker \
-H "Authorization: Bearer sft_•••" \
-G --data-urlencode "symbol=EUR/USD"{
"symbol": "EUR/USD",
"mid": "1.07432",
"bid": "1.07429",
"ask": "1.07435",
"spread_bps": 0.56,
"volume_indicator": "high",
"change_24h": "0.34",
"venues": 6,
"ts": 1714058400123
}const ws = new WebSocket("wss://stream.siftingio.com/v1/ws");
ws.addEventListener("open", () => {
ws.send(JSON.stringify({
op: "subscribe",
channel: "quotes",
symbols: ["EUR/USD", "GBP/USD", "USD/JPY"],
}));
});{ "type": "quote", "symbol": "EUR/USD", "bid": "1.07428", "ask": "1.07434", "ts": 1714058401412 }
{ "type": "quote", "symbol": "GBP/USD", "bid": "1.25711", "ask": "1.25718", "ts": 1714058401488 }
{ "type": "quote", "symbol": "USD/JPY", "bid": "152.412", "ask": "152.418", "ts": 1714058401611 }A representative sample of supported pairs is shown below. Coverage extends beyond this list and continues to expand. Need a pair you don’t see? Request it →
Quote streams for execution and tick-level history for strategy research, with the same credential across both.
Mid-rates and reference points for treasury operations, hedging, and intra-day exposure marking.
Live FX rates for payment quotes, FX-as-a-service back-ends, and international payouts.
Decade-spanning OHLCV and tick history for quantitative research, model validation, and audit trails.
Coverage spans the seven majors (EUR/USD, USD/JPY, GBP/USD, USD/CHF, USD/CAD, AUD/USD, NZD/USD), all standard cross-pairs and minors (e.g. EUR/GBP, EUR/JPY, GBP/JPY, AUD/JPY, EUR/AUD, CHF/JPY), and a broad set of global exotics (e.g. USD/TRY, USD/MXN, USD/ZAR, USD/SGD, USD/HKD, USD/INR, EUR/TRY, GBP/SGD). New pairs are added on request for enterprise customers.
FX quotes are sourced from one or more institutional liquidity providers and aggregated into a single canonical mid, bid, and ask. SiftingIO does not redistribute raw, unmodified primary-venue feeds; values are derived and calculated from underlying quotes. Methodology is documented in the API reference.
Tick-level updates are delivered over WebSocket with sub-100ms median latency from our primary regions; REST snapshot endpoints return the most recent quote with the same freshness budget. SiftingIO operates the service to a 99.9% monthly uptime SLA with multi-region routing.
Yes. Tick-level history and OHLCV at 1m, 5m, 15m, 1h, 4h, and 1d resolutions are included, not gated behind a separate contract. Historical backfill covers the ranges needed for research, backtesting, and audit. History is included on every plan that covers the underlying pairs.
FX markets trade five days a week, but SiftingIO endpoints are available 24/7 for snapshot reads, historical queries, and WebSocket subscriptions. During weekend gaps we surface the last published quote with a clear timestamp so client applications can render or hold positions deterministically.
A single bearer token works across REST and WebSocket for forex, crypto, and on-chain endpoints. The same API key authenticates every channel and version: no per-asset credential rotation, no separate keys for streaming vs. snapshots.
Quotes return a unified shape: symbol, mid, bid, ask, spread_bps, volume_indicator, change_24h, ts (epoch ms), and a venues count. The same field names appear across crypto and forex, so a single parser handles both asset classes, and your code does not grow as we add markets.
Redistribution and display use are governed by your subscription tier and the SiftingIO Terms of Service. Standard plans permit display in your end-user product; redistribution as raw feeds, B2B sublicensing, and high-volume display use require an enterprise agreement. Customers are responsible for accurate usage reporting; please see the disclosures page.
End-of-day OHLCV is available for every covered pair. Custom fixings and time-of-day reference rates (e.g. London 4 PM) can be configured for enterprise customers; contact sales to scope.
The forex API is offered globally where lawful. Coverage includes pairs from developed and emerging markets, not just one region. Users in jurisdictions where the service is restricted are responsible for ceasing use accordingly.
Free tier included, no sales call required. Generate an API key and hit the FX endpoints over REST or WebSocket, with the same auth, same schema, same SLA as the rest of the platform.