Quotes
Every quote has the same shape: the /quote routes, the latest value of a bar series, market-view members, and each
item of POST /v1/quotes. Time conventions and field states are on time and point in time and
values and data quality.
Routes
| to quote | route |
|---|---|
| a stock or ETF | GET /v1/securities/{symbol}/quote |
| a continuous future | GET /v1/futures/{root}/continuous/quote |
| an FX pair | GET /v1/fx/{pair}/quote |
| a crypto pair | GET /v1/crypto/pairs/{pair}/quote |
| an index, yield, or volatility series | GET /v1/series/{key} |
| up to 50 keys of any priced kind | POST /v1/quotes (batch quotes) |
{"instrument": {"key": "security:AAPL", "name": "Apple Inc.", "currency": "USD", "price_scale": 1, "price_precision": 4,
"classification": {"object_kind": "tradable", "asset_class": "equity", "...": "..."},
"venue": "XNAS", "continuous": null, "...": "..."},
"quote_kind": "snapshot", "price": 255.46, "price_basis": "unadjusted",
"source_time": "2026-09-25T20:00:00.000000Z", "refreshed_at": "2026-09-25T20:00:05.000000Z", "source_lag_seconds": 5,
"session_date": "2026-09-25",
"day": {"kind": "session", "date": "2026-09-25", "open": 253.1, "high": 256.2, "low": 252.88, "volume": 41022113, "turnover": null},
"previous_close": {"value": 252.31, "date": "2026-09-24"},
"change_reference": {"value": 252.31, "basis": "previous_close", "adjustment": null},
"change": 3.15, "change_percent": 1.2485,
"book": {"bid": null, "ask": null, "bid_size": null, "ask_size": null, "crossed": null},
"range_52w": {"high": 260.1, "low": 169.21}, "market_state": "post_market",
"market_cap": 3790000000000, "market_cap_basis": "price_x_shares_outstanding", "shares_outstanding": 14840000000, "avg_volume": 52100000,
"field_states": {"day.turnover": {"state": "unavailable", "reason": "not_applicable", "retry": "never"},
"change_reference.adjustment": {"state": "unavailable", "reason": "not_applicable",
"retry": "never"},
"book": {"state": "withheld", "reason": "unreliable", "retry": "never"}}}
Quote fields
Every field is described in the API reference. To use them:
quote_kind:snapshotis the latest held quote.last_closemeans there is no usable snapshot, sopriceis the newest completed session's close andfield_states.snapshotsays why.exchange_quoteis a crypto pair's exchange ticker.price_basis:unadjusted(as traded) orsplit_dividend_adjusted(a security's close, adjusted like its history).market_cap_basis:price_x_shares_outstanding(the cap isprice×shares_outstanding, atsource_time) orsource_stated(it cannot be reproduced from those two, for example a multi-class issuer)./profileserves a different market cap with its own basis (company reference data).session_dateis null with its reason when no session is named: an FX print (not_assessed, oroff_session_indicativein the weekly closure), a crypto pair's rolling 24 hours (not_applicable).
The instrument block
The quote, /history, /technicals, POST /v1/quotes, and market-view members share this block per key. Every field
is described in the API reference. key is the canonical key: a request in the
venue form (security:XNAS:AAPL) is answered with security:AAPL. Currency and scale are on
values and data quality; a security's
listing and maintenance on listing lifecycle; continuous under
continuous futures.
Currency and price scale
A null price_scale has its reason in instrument.field_states.price_scale.
price_scale | meaning |
|---|---|
1 | the currency's major unit |
0.01 | its minor unit. Many grain, soft, and livestock futures are quoted in US cents: corn at 522 is 5.22 USD a bushel |
null, quoted_in_points | a price is not an amount of the currency: the equity-index futures (index points) and the Treasury futures (percent of par). The contract multiplier is not stated |
null, unreliable | withheld |
| null, the currency's reason | currency is null |
Quote age
Read source_time and source_lag_seconds for a quote's age. source_lag_seconds is a snapshot's
refreshed_at − source_time in whole seconds. Over a weekend an equity's or a future's snapshot is its
last session's; an FX pair's is an indicative weekend print.
A last_close carries only the close: every snapshot field (day, previous_close, change_reference, change,
change_percent, book, range_52w, market_state, market_cap, market_cap_basis, shares_outstanding,
avg_volume) is null with not_in_this_quote.
The day
day.kind is session, or rolling_24h for a crypto pair. For a future and the US Dollar Index, day.date is the
trade date, which moves to the next date at 18:00 New York; it is null for an FX pair and a rolling day. A crypto pair's
volume is in the base asset and its turnover in the quote currency.
A snapshot's day is the session's running figure; the daily bar in /history can differ. For a day's volume, read
the bar.
Previous close and change
previous_close is the close of the session immediately before the price's, split-adjusted and never
distribution-adjusted, so after an ex-date it differs from /history. It is not an exchange settlement price
(settlement).
change and change_percent are taken against change_reference.value, which can differ from previous_close:
change_reference.basis | meaning |
|---|---|
previous_close | the reference is the previous close |
dividend_adjusted | below the previous close on an ex-dividend date of the price's session |
source_stated | the reference as published, which can differ from previous_close |
rolling_24h_open | a crypto pair: the price 24 hours ago |
adjustment is previous_close.value − value; it is not a dividend amount.
On a split's ex-date, the previous close is first the pre-split close, then split-adjusted
(field_states.previous_close: split_adjusted).
The book
Only crypto pairs serve a book: the exchange's best bid and ask at source_time, withheld when crossed
(not_current, crossed: true) or not confirmed (unreliable). On every other kind the book members are null:
unreliable for securities, ETFs, futures and FX, not_applicable for an index level or yield.
crossed is true when the bid was above the ask (neither side is served), false when both sides are served, and
null when a side is absent or the book is withheld for another reason.
Market state
market_state | meaning |
|---|---|
regular | the regular session is open. This does not mean the price is live: read source_lag_seconds |
pre_market, post_market | the pre-market or post-market of the price's own day |
closed | no session is trading and the price is the last one's (Monday's pre-market beside Friday's close is closed) |
Quality limits on a price
unconfirmed (unverified) on a price or a close means it is served but not confirmed. Check it before using changes
or indicators across it. It is carried by every field computed from that value: the bar in /history, a quote's price or
previous close and the changes from it, a market cap computed from the close, and recent sessions' price indicators
(technicals).
Continuous futures
instrument.continuous states how a continuous futures series is made (selection: front_month, roll: undisclosed,
roll_boundaries: not_published); what that means across a roll is on futures.
A continuous future's change_reference is always its previous_close.
FX quotes
An FX quote's previous close, change, and weekly-closure withholds (basis_unclear,
off_session_indicative) are on FX.