Response freshness
Responses are always computed fresh. There is no request caching and noforce_refresh parameter. Two identical requests can return identical bytes simply because the underlying data has not changed on its update cadence. To check freshness, read a timestamp field in the payload (for example tape_time, or the newest created_at), rather than comparing raw response bodies. Every response carries a unique x-request-id.
Reading response arrays
Array order is not uniform across endpoints, so each endpoint page states its order. Where an endpoint returns newest last (for exampleiv-rank), the current value is the last element. A few endpoints nest their rows under a key other than data: shorts volume-and-ratio uses si, and option-contract/{id}/historic uses chains.
Empty is not an error
A200 response with an empty data array means there is no data for the inputs you sent, not that the request failed. Common causes are a date with no trading, a symbol that does not apply to that dataset, or a missing required filter (for example /api/stock/{ticker}/greeks without expiry).
Symbols and ticker types
Each endpoint states which symbol types it accepts (equities, ETFs, indices, crypto) and the expected format. Crypto pairs use theBASE-QUOTE form, for example BTC-USD. Index tickers (SPX, NDX, VIX, RUT) are supported on the greek and exposure endpoints, but not on raw quote or OHLC, where they return 422 (see the note on those endpoints).
Point-in-time and availability
For time-series endpoints, three timestamps can differ: execution time, report time, and availability time. Some fields are forward-computed and will benull on recent rows (for example realized_volatility). Daily datasets are final only after the session closes, and open interest restates the next morning. History depth and update cadence vary by endpoint and are stated on each page. For a strict point-in-time build, gate on your own first-seen ingestion time rather than re-pulling past dates.
Nullable fields
Fields that can benull, and why, are listed on each endpoint page. The common ones: greeks when the underlying is missing, underlying_price on the index tape, recent realized_volatility rows, gamma_flip, and max-pain close for NDX.
Concept to route
Use these routes rather than guessing a name (guessed names return404).
There are no
volatility/skew, volatility/surface, or term-skew routes.
Request headers to watch
Every response includes usage headers:x-uw-token-req-limit is your daily cap, x-uw-daily-req-count is what you have used today (resets 8PM ET), and x-request-id is unique per call. Read these to manage your own rate rather than guessing.
Data Shop and limits
Data older than your plan’s lookback window is available as one-time downloads in the Data Shop. Your plan’s lookback and daily request quota are listed in the pricing and limits reference.Example URLs
Each endpoint page shows one fully filled example URL and marks each parameter as path or query. Note thattechnical-indicator/{function} is a path segment, not ?function=.
