- Live API Reference
- Reference Essentials
- Response Format & Freshness
Response Format & Freshness
The endpoint_version and data_as_of fields on every response, and how to read them.
The two envelope fields
Every successful JSON response carries two fields, added by the API rather than by each endpoint. endpoint_version identifies the deployment that produced the response. data_as_of reports when each upstream market-data feed last delivered to the node that answered you.
data_as_of is a fixed object: every key is present on every endpoint, and a key is null when that node has not received anything on that feed since it started.
{
"symbol": "SPY",
"underlying_price": 764.23,
"as_of": "2026-08-25T18:49:00.697Z",
"endpoint_version": "2026.08.25",
"data_as_of": {
"node": "fa2",
"equity_feed": "2026-08-25T18:49:00.512Z",
"equity_options_feed": "2026-08-25T18:48:58.204Z",
"index_feed": null,
"index_options_feed": null,
"futures_feed": null,
"futures_options_feed": null,
"flow_feed": "2026-08-25T18:49:00.220Z",
"oi_feed": "2026-08-21T20:00:00.000Z",
"macro_feed": "2026-08-24T18:42:11.000Z"
}
}What each key reports
| Key | Feed | Expected cadence |
|---|---|---|
node | Which node answered | Nodes hydrate independently, so their feeds can differ |
equity_feed | Equity and ETF spot quotes | Seconds, during market hours |
equity_options_feed | Equity and ETF option quotes | Seconds, during market hours |
index_feed | Index spot (SPX, NDX, RUT, VIX) | Seconds, during market hours |
index_options_feed | Index option quotes | Seconds, during market hours |
futures_feed | Futures prices | Seconds, during the futures session |
futures_options_feed | Futures option quotes | Seconds, during the futures session |
flow_feed | Classified options and stock trade tape | Seconds, during market hours |
oi_feed | Settled open interest | Daily, dated to the prior 16:00 ET close |
macro_feed | VIX, VVIX, SKEW, MOVE, SPX, Fear & Greed | Minutes. Reports its OLDEST component, so one lagging series stays visible |
How to read it
- Check the feeds your query depends on. A GEX call on SPY is answered from
equity_feed,equity_options_feedandoi_feed.futures_feedbeingnullin that response says nothing about the answer. - Compare against the cadence, not the clock.
oi_feedat the previous session's close is correct - settled open interest is published once per session. In the example above it sits three days behindas_ofbecause the request ran on a Monday and Friday was the last session to settle; that is right, not stale.equity_options_feedan hour behind during market hours, by contrast, is not. nullmeans "not seen on this node", not "broken". A node that has never been asked for a futures symbol has never opened that feed.- Spot and options are separate on purpose. They arrive over different pipes and can fail independently, so an index chain can be current while index spot is not.
- It reports feed activity, not per-contract freshness. A timestamp shows the feed delivered recently. It does not assert that every contract in a chain is equally current - an illiquid strike may not have quoted for hours while the feed itself is healthy.
data_as_ofis notas_of.as_of, where an endpoint returns it, is when the response was generated or when the newest contract in it last ticked.data_as_ofdescribes the feeds behind it.
Arrays, Stock Summary and Historical
Endpoints that return a bare JSON array carry the same information in the X-Endpoint-Version and X-Data-As-Of response headers, the latter as compact JSON.
A call without an API key to Stock Summary returns a delayed snapshot and adds snapshot_as_of (captured_at, delayed: true).
On the Historical API, data_as_of means the same thing - live feed state - and every slot is null, because a historical node reads the archive rather than any live feed. The vintage of the archive rows replayed for your at is published alongside as archive_as_of, in the same shape.
Unlock DEX, VEX and CHEX with Basic
Everything in Free, plus:
- DEX, VEX and CHEX exposure
- Full max pain
- ETF & index symbols SPY, QQQ, SPX, VIX
Go full-chain with Growth
Everything in Basic, plus:
- Full-chain GEX Every expiration
- 0DTE analytics
- Exposure summary & AI narrative
- CME futures & live screener
Add history and vol surfaces with Alpha
Everything in Growth, plus:
- Historical API replay Since 2017
- SVI vol surfaces
- VRP analytics
- Greeks surfaces Vanna, charm, volga and speed grids