Response Format & Freshness: endpoint_version and data_as_of | FlashAlpha Lab API
  1. 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.

Response
{
  "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

KeyFeedExpected cadence
nodeWhich node answeredNodes hydrate independently, so their feeds can differ
equity_feedEquity and ETF spot quotesSeconds, during market hours
equity_options_feedEquity and ETF option quotesSeconds, during market hours
index_feedIndex spot (SPX, NDX, RUT, VIX)Seconds, during market hours
index_options_feedIndex option quotesSeconds, during market hours
futures_feedFutures pricesSeconds, during the futures session
futures_options_feedFutures option quotesSeconds, during the futures session
flow_feedClassified options and stock trade tapeSeconds, during market hours
oi_feedSettled open interestDaily, dated to the prior 16:00 ET close
macro_feedVIX, VVIX, SKEW, MOVE, SPX, Fear & GreedMinutes. 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_feed and oi_feed. futures_feed being null in that response says nothing about the answer.
  • Compare against the cadence, not the clock. oi_feed at the previous session's close is correct - settled open interest is published once per session. In the example above it sits three days behind as_of because the request ran on a Monday and Friday was the last session to settle; that is right, not stale. equity_options_feed an hour behind during market hours, by contrast, is not.
  • null means "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_of is not as_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_of describes 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.

Ready to build with FlashAlpha?

Get your free API key and start pulling live options data in 60 seconds.

No credit card required Setup in 60 seconds Secure & reliable