get_state_history
Time series of any numeric market-state fields from the 15-minute full-state archive — the derivative/trend view get_market_state cannot give. Answers: "How did OI build over the last 3 days?", "Is funding percentile rising or falling this week?", "When did the book skew flip?". fields = dotted numeric paths of get_market_state (1..=16), e.g. funding.percentile, oi.usd, obi.skew, cvd.delta_usd, basis_bps, price.last, depth.bid_usd.10bps, venues.binance.oi_usd. Returns parallel arrays: t (epoch ms, ascending) + series[field] aligned with t; null = that field was not populated in the archived row (honest hole, common near the archive's start — blocks accrue at their own pace). Downsampling: max_points 1..=1000 (default 200); stride in the response says how many 15-min rows each point skips; the newest row is never sampled away. coverage.archive_from/to are the WHOLE archive's bounds — the archive is YOUNG (born 2026-07-03) and grows a row per 15 min per asset; a thin answer is honest, not broken. from/to accept RFC3339, YYYY-MM-DD or epoch ms. Read-only.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | Range end, same formats. Default: the whole archive. | |
| from | No | Range start: RFC3339 (`2026-07-03T08:00:00Z`), `YYYY-MM-DD` (UTC midnight), or epoch milliseconds. Default: the whole archive. | |
| fields | Yes | Dotted numeric paths of the market state, 1..=16 per request — e.g. `funding.percentile`, `oi.usd`, `obi.skew`, `cvd.delta_usd`, `basis_bps`, `price.last`, `depth.bid_usd.10bps`, `venues.binance.oi_usd`. Typos get an error naming the offender. | |
| symbol | Yes | Asset symbol: BTC, ETH, SOL, BNB, XRP, DOGE, HYPE, ZEC or ENA (case-insensitive; a `USDT` suffix is accepted). | |
| max_points | No | Points returned after downsampling, 1..=1000 (default 200). The response's `stride` says how many archived rows each point skips. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| t | Yes | Epoch-ms per returned point, ascending (ms like `get_ohlcv`'s `t`). | |
| to | Yes | Last returned point, RFC3339 UTC (empty string when no points). | |
| from | Yes | First returned point, RFC3339 UTC (empty string when no points). | |
| series | Yes | Requested dotted field → one value per point (aligned with `t`). | |
| stride | Yes | Downsampling stride actually applied (1 = every archived row). | |
| symbol | Yes | Uppercase asset symbol, e.g. `BTC`. | |
| coverage | Yes | ||
| n_points | Yes | Points returned (= `t.len()`). | |
| n_available | Yes | Rows available in the requested range BEFORE downsampling. |