What’s indexed
Coins outside the order-book sweep return 404
BOOK_NOT_COVERED, and spot pairs are not covered. Call data_coverage (MCP) for each dataset’s live window and freshness stamp.
Cutoffs
Some endpoints have hard historical floors because the underlying data collection started after Hyperliquid mainnet:- Risk metrics (liquidations, mark dislocations, user-action–derived signals) — clamped to
2026-01-01. Earliersincerequests are silently truncated to that floor. - HIP-4 outcomes — clamped to
2026-05-02(mainnet launch). Earliersincerequests are silently truncated. - Cohort tiers — wallets not yet in the traders rollup have no tier (counted in
coverage.withoutTier/untracked). - Builder-fee attribution — trigger-order (stop/TP) fills attribute at ledger level only, so join-attributed fills, volume and users slightly undercount (see
dataNotes). Trigger-order placements are captured live since 2026-08-20 and backfilled to 2026-03-24; resolving them to fills is still largely unpopulated. Coinversa’s copy of the builder-fee ledger begins 2026-08-11. Windows that reach earlier serve revenue from the attributed rollup (a floor, ≥97% of ledger on reconciled days), anddataNotessays so. See Builder codes & attribution.
/live/whale-trades allows up to 24h and rejects longer windows with 400; /pulse/cohort-bias/history and /pulse/cohorts/daily-stats allow up to 30 days; HIP-4 perp-position context clamps days to 60. See Data windows and authentication.
Snapshots vs history
Current-state routes (/live/cohort-bias, /live/positioning-by-entry, cohort positions) describe open positions now and are never a history.
Cohort-bias history is the hourly cohort_bias_snapshots table as stored: missing hours are absent, and a cohort with no open notional in an hour has no point (never 50%). Backfilled hours carry the wallet’s current tier (lookahead), so coverage.provenance is unknown_mixed and backtestSuitable is false — do not treat it as a point-in-time backtest.
Windows: /live/cohort-bias-history up to 2160h (90d); /pulse/cohort-bias/history and /pulse/cohorts/daily-stats up to 30d; pnl_recent snapshots from 2026-05-14.
Freshness
Server cache refresh intervals by endpoint:
Layer routes carry
source.asOf and risk routes generatedAt, so you can measure staleness.
Live mark vs stored mark
markPx on positioning-by-entry is Hyperliquid’s live mark (markMethod: live_mark, per-dex 10 s cache, builder-dex symbols resolved on their own dex) when the feed answers. Otherwise it is the newest stored position mark (newest_position), then a notional-weighted stored mark (weighted_fallback). storedMark and markDivergencePct show how far the stored book lags. Stored notionals and liquidation distances use each wallet’s last-poll mark, and a note flags divergence above 1%.
For fills themselves, polling is the wrong tool: the WebSocket pushes every fill at block cadence, with a per-subscription sequence number so you can tell when you missed one.
What’s not indexed
- Spot trades on non-canonical pairs (
@Nindexes) — present in raw data, not classified into cohorts. - Off-chain orderflow (RFQ, OTC) — only on-chain L1 fills are captured.
- Private user information (KYC, beneficial ownership) — addresses are public; wallets are not de-anonymized.
How recent is “recent”?
Tools that take asince parameter accept a number plus unit:
m— minutes (e.g.10m)h— hours (e.g.24h)d— days (e.g.7d)
2w is rejected with 400 invalid since format; use days (14d). Or use explicit startTime / endTime (unix ms or ISO date) for exact ranges. Both are silently clamped to the 90-day window on most routes (some routes are tighter; see Cutoffs) — see Data windows.
