Skip to main content
How the API behaves across endpoints. Endpoint pages state anything specific to that endpoint.

Response freshness

Responses are always computed fresh. There is no request caching and no force_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 example iv-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

A 200 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 the BASE-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 be null 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 be null, 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 return 404). 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 that technical-indicator/{function} is a path segment, not ?function=.

Data retention and redistribution

You may keep and use API data for personal or internal purposes, including after you cancel. Redistributing the data to others requires a redistribution license. Contact [email protected].
Last modified on September 1, 2026