View as markdown
Concepts

Refresh cadence

Signals don’t all refresh on the same schedule. The schema page labels each column with its cadence; this page is the broad shape.

The cadence buckets

Cadence is per-signal, not global. These are the buckets the table below counts.

  • Live (1 min, market hours): most price-, volume-, and indicator-based signals. For US equities that means 4 AM–8 PM ET weekdays, pre-market and after-hours included. Crypto runs on the same 1-minute clock 24/7; FX runs it 24/5, closing Friday 5 PM ET and reopening Sunday 5 PM ET.
  • Every 15 min: the recent_* analyst-action flags.
  • Hourly: analyst-rating columns (analyst_count_*, targets), 24/7.
  • Once per business day (rates): the R: series are not tick data — they are published once a day by their source, so that is how often they can change. The Fed reference rates land in the morning and the Treasury par-yield curve in the afternoon, each for the preceding session. Polling faster returns the same number.
  • Daily: the IPO-calendar columns (pending_ipo, ipo_date).
  • Daily, post-close: fundamentals like market_cap, daily cross flags (golden_cross), 52-week extremes. Financial-statement fields (pe_ratio, eps) refresh here too; their values change when issuers file, roughly quarterly.
  • Nightly (ETF X-ray): ETF holdings and sector weights (/v2/tickers/{t}/holdings, /sectors, and the etf_holders column) come from a nightly post-close vendor refresh — expect them to be up to a day behind.

How to tell which is which

The schema page has the per-column answer.

Every row in the schema is tagged with its cadence. If you’re building a UI that shows freshness, pull that column and label the source field accordingly.

Signals per cadence

Straight from the spec: how many advertised signals update on each cadence.

CadenceSignalsExamples
Live (1 min, market hours)215price, volume_today, session_open, session_high
Every 15 min10recent_upgrade, recent_downgrade, recent_initiation, recent_target_raise
Hourly16analyst_count_total, analyst_count_with_target, analyst_count_strong_buy, analyst_count_buy
Daily3pending_ipo, ipo_date, ipo_in_7d
Daily, post-close450breaking_above_20d_high, breaking_below_20d_low, ticker, total_employees

The as_of timestamp

Every response tells you when it was assembled.

Every payload carries a top-level as_of ISO timestamp. For live endpoints it’s the server time at which the response was assembled. For as-of-history endpoints (/tickers/{t}?asof=, POST /v2/scan with asof) it’s the moment you asked about: the date (that day’s close) or the ISO timestamp you passed. Older as_of values are proportionally stale.