analytics.read and your organisation’s Kalshi grant:
Request
No depth parameter is accepted: the calculation always requests the complete native ladder. Unknown or repeated query parameters are refused. Sign the exact path and query with the usual Data API HMAC headers. Existing quotas and accounting apply.
Result
The response identifies the requestedticker, venue: "kalshi", observation_type: "rest_snapshot" and historical: false.
Both yes and no contain:
Each depth summary contains separate
contracts and dollars strings. The dollar amount is the sum of level price × contracts. Thresholds include levels exactly at the boundary and are measured from that side’s best price. A missing side has null depth and reason: "side_absent", because it has no touch from which to measure distance.
YES asks come from the complement of NO bids, and NO asks from YES bids. Quantities stay on their original level. All arithmetic uses exact decimals; no price or size passes through floating point. Derived strings are canonical decimals, so trailing zeros can differ from native formatting. This does not modify the native endpoint.
Zero-size levels do not contribute liquidity. Duplicate numeric price levels, out-of-range prices and values outside the bounded calculation schema are refused rather than rounded. Each native ladder is limited to 10,000 levels; numeric strings support up to 38 integer digits and 18 fractional digits. Source replies remain bounded to 1 MiB.
Age and provenance
observed_atis the native service’s acquisition time, not a matching-engine timestampcomputed_atis when Bravado calculated this resultsource_observation_sha256identifies the input native JSON bytes, not the computed responsesource_cacheishit,missorrefresh;max_age_msis 30,000venue_timestampis null with an explicit reason; it is not fabricated from receive time
X-Bravado-Source-Observation-Sha256. X-Bravado-Native-Request-Sha256 binds the exact full-book request. Responses are private and no-store. fresh=true requires a newly acquired observation and does not guarantee an atomic executable fill.
An upstream failure, stale or mismatched observation, denied credential, missing grant or exhausted limit returns an explicit error. It never becomes an empty metric result. A valid source-empty book is returned with state: "empty" and null midpoint.
Historical spread statistics, uptime, rolling depth and cost-to-fill are separate deliverables. This endpoint does not claim those calculations or the liquidity available when a future order executes.