v9

latestOpenAPI 3.1.02026-08-08305679.6 KB
Status

Public Freshness

Per-bookmaker freshness — last_update summary across all markets.

Returns: bookmakers: [ { key, market_count, latest_update, staleness_seconds, is_stale, market_classes: { game_lines: { market_count, latest_update, staleness_seconds }, props: { market_count, latest_update, staleness_seconds }, } } ] stale_threshold_seconds as_of (server time the rows were sampled)

staleness_seconds is the time since the most recent successful market write for the book — a rough proxy for "how fresh is the freshest line on this book." It overstates per-event freshness because any single market touch resets it; for the marketing page that's fine since the public claim we're backing is "we ingest book data continuously and recently."

market_classes splits that per class (game lines vs props) so a class going dark behind fresh game lines — the Pinnacle 2026-08-02 prop incident — is visible here too. Single grouped query, no Event join, so unlike the monitor's query this split does NOT exclude futures markets (they land under props and can keep it looking fresher than the per-game prop board really is) — acceptable for a trust surface, and worth keeping this public unauthenticated endpoint a single-table scan.

get/v1/freshness

Response

Successful Response

{"stackTrail":"paths:/v1/freshness:get:responses:200:content:application/json:schema","oasType":"schema","type":"unknown"}