Skip to main content

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 quoteroute
a stock or ETFGET /v1/securities/{symbol}/quote
a continuous futureGET /v1/futures/{root}/continuous/quote
an FX pairGET /v1/fx/{pair}/quote
a crypto pairGET /v1/crypto/pairs/{pair}/quote
an index, yield, or volatility seriesGET /v1/series/{key}
up to 50 keys of any priced kindPOST /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: snapshot is the latest held quote. last_close means there is no usable snapshot, so price is the newest completed session's close and field_states.snapshot says why. exchange_quote is a crypto pair's exchange ticker.
  • price_basis: unadjusted (as traded) or split_dividend_adjusted (a security's close, adjusted like its history).
  • market_cap_basis: price_x_shares_outstanding (the cap is price × shares_outstanding, at source_time) or source_stated (it cannot be reproduced from those two, for example a multi-class issuer). /profile serves a different market cap with its own basis (company reference data).
  • session_date is null with its reason when no session is named: an FX print (not_assessed, or off_session_indicative in 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_scalemeaning
1the currency's major unit
0.01its 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_pointsa 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, unreliablewithheld
null, the currency's reasoncurrency 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.basismeaning
previous_closethe reference is the previous close
dividend_adjustedbelow the previous close on an ex-dividend date of the price's session
source_statedthe reference as published, which can differ from previous_close
rolling_24h_opena 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_statemeaning
regularthe regular session is open. This does not mean the price is live: read source_lag_seconds
pre_market, post_marketthe pre-market or post-market of the price's own day
closedno 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.