GET
/snapshot/:venuegzip requiredMarket snapshot
Get a full market snapshot across stocks, FX, crypto, commodities, and DEX, every symbol a venue publishes in a single round-trip, or scope it down to your own watchlist. Each tick carries price, sizes, best bid, best ask, symbol, and timestamp.
Parameters
ParameterDescription
Parameter
venuerequiredenum · path- crypto | forex | stocks | dex.
symbolsstring · query- Comma-separated symbols (up to 250). Case-insensitive. Omit entirely to receive the full market. Any malformed symbol rejects the whole request with 400 rather than returning a partial result.
Accept-Encodingrequiredstring · header- Must include gzip; a full-market snapshot is large. A request without it returns 406 gzip_required. Most HTTP clients negotiate this automatically.
Example
request · shell
curl -H "X-API-Key: $KEY" -H "Accept-Encoding: gzip" --compressed \
"https://api.sifting.io/v1/snapshot/crypto?symbols=BTCUSD,ETHUSD"200OKapplication/json (gzip)
{ "data": [ { "s": "BTCUSD", "p": "68250.5", "P": "0.0143", "b": "68249.9", "B": "0.21", "a": "68251.2", "A": "0.18", "t": 1716800000000 }, { "s": "ETHUSD", "p": "3820.4", "P": "0.43", "b": "3820.1", "B": "1.2", "a": "3820.7", "A": "0.9", "t": 1716800000000 } ], "meta": { "as_of": "2026-05-27T12:00:00Z", "venue": "crypto", "count": 2 }}Loading runner…
First load onlyReference
Two ways to call itDescription
Two ways to call it
- Full market
- No query string returns one entry per symbol the venue currently publishes, sorted by symbol. There is no pagination, a snapshot is the complete picture at once.
- Specific symbols
- ?symbols=BTCUSD,ETHUSD,SOLUSD returns only those. Up to 250 per call, case-insensitive.
EnvelopeDescription
Envelope
- data
- array of snapshot entries, one per symbol
- meta.as_of
- when the response was produced · RFC 3339, UTC
- meta.venue
- the venue you queried
- meta.count
- number of entries in data · int
Entry fieldsDescription
Entry fields
- s
- symbol · string
- p
- last trade price · string
- P
- last trade size · string
- b
- best bid price · string
- B
- best bid size · string
- a
- best ask price · string
- A
- best ask size · string
- t
- timestamp · int64 (Unix epoch ms)
Freshness & behaviorDescription
Freshness & behavior
- Sizes
- For forex and stocks (no top-of-book size data), P / B / A come through as 0. That is expected, not an error.
- Best-effort
- A symbol with a temporarily incomplete record is skipped rather than failing the request.
- Empty venue
- A venue with nothing to report returns 200 with an empty data array, not an error.
- Caching
- Live, never cached at the edge. Each call reflects current state at meta.as_of.
Error responses
StatusCodeMeaning
- 400
invalid_parameterA symbol in the list is malformed for the venue. The whole request is rejected so a typo surfaces immediately instead of looking like missing data.
{ "error": "invalid_parameter", "message": "Symbol BTC-USD is not valid for venue crypto." } - 403
not_entitledYour subscription doesn't include this venue. The same entitlement gates the venue's live ticks.
{ "error": "not_entitled", "message": "Your subscription doesn't include the crypto venue." } - 404
not_foundVenue path segment isn't one of crypto | forex | stocks | dex.
{ "error": "not_found", "message": "Unknown venue." } - 406
gzip_requiredSnapshot called without Accept-Encoding: gzip.
{ "error": "gzip_required" }