Skip to main content
stock_prices uses a licensed end-of-day feed as the authoritative price source. Snapshot responses also include an IEX intraday quote/refusal overlay; it is not a consolidated real-time or tick feed. Freshness is explicit on every price view. Within intraday, session_close means the close of the latest completed market session (the intraday vendor’s prevClose relative to the live quote). It is not a second current-session close. intraday.last is an attributed IEX last-sale print. intraday.derived_last is the feed’s derived latest price: a computed value with no venue attribution and no per-print timestamp (quote_at is the feed’s update time). On plan tiers without the real-time top-of-book entitlement, derived_last is the only live intraday price and meta.basis reads eod_licensed_iex_derived instead of eod_licensed_iex_passthrough — consumers must not present a derived price as a venue last sale. Schema 2 is the default. You can omit schema in new requests.

Snapshot

The capabilities catalog reports stock_prices_snapshot at 292 measured tokens with a 350-token gate. Trimmed from tests/fixtures/prices_v2/golden_snapshot.json; shown values are unchanged.
Read both clocks:
  • data.freshness.session is the latest held bar for the security.
  • data.freshness.sessions_behind is measured against meta.as_of.market, the market-feed cursor.
The default snapshot contains universal price facts only. Indicators, complete-window drawdowns, beta, and benchmark-relative returns live in stock_technicals, so callers pay that token cost only when they need specialist analytics. view: "technicals" remains accepted for migration, but returns a 200 envelope with meta.deprecation and an executable recovery:

History

The capabilities catalog reports stock_prices_summary at 208 measured tokens with a 400-token gate. The full 3mo history fixture has 63 rows. Trimmed from tests/fixtures/prices_v2/golden_history_3mo.json; shown row values are unchanged.
For charting, zip columns with each row. If an indicator cell refuses, the capabilities catalog’s decode recipe is:
Indicators are opt-in and are computed from the full held daily series before the requested display range is sliced. Simple requests append one column. Composite requests expand to numeric columns:
This appends macd_12_26_9_line, macd_12_26_9_signal, macd_12_26_9_histogram, bollinger_20_2_lower, bollinger_20_2_middle, bollinger_20_2_upper, and atr_14_pct. MACD uses SMA-seeded EMA-12/26 with an EMA-9 signal; Bollinger uses SMA-20 plus/minus two population standard deviations; ATR is Wilder RMA-14 true range divided by that bar’s adjusted close. Warm-up cells are typed insufficient_history refusals.

Corporate actions

view: "corporate_actions" serves per-payment dividend history and splits from the same licensed feed — one columnar row per payment, one split event per split, never a row per session. range uses the history duration grammar with a 5y default (max = full held depth).
The capabilities catalog reports stock_prices_corporate_actions at 261 measured tokens with an 800-token gate. Trimmed from tests/fixtures/prices_v2/golden_corporate_actions_5y.json; shown values are unchanged.
Read it honestly:
  • Amounts are the feed’s as-paid per-share cash on each ex-date — not retroactively split-adjusted. When the window contains both a split and at least one payment, a note inside dividends says so and the split serves beside it (AAPL at range: "max" adds "splits": [{ "date": "2020-08-31", "factor": 4 }]).
  • The ex-date cash series is a different fact from the SEC-declared dividends_per_share in overview/financials; each keeps its own source and basis stamp.
  • A covered window with no events serves count: 0 and empty lists — a zero-event fact, not a refusal. If the requested window predates the held bars, range.held_from states the first held session: before that date the answer is “not covered”, never “no events”.
  • dividends.summary refuses insufficient_history when held depth does not span the trailing 365 days, because a partially-held year would undercount payments.