Skip to main content
History is a local private pilot. It requires an API history grant and a current account/source/region/purpose review. Exports additionally require history_export and a separate export review. REST/Pro/Terminal access, signup and source technical access do not establish these permissions. Historical/export customer-use rights for the working sources remain unresolved; no new paid plan or data licence is activated.

Permanent native identity

Supply namespace, source/region books, and native_fixture_id (up to ten source-local canonical fixture IDs from mappings’ native_fixture_id). These are distinct from upstream source_fixture_id strings and reviewed group IDs. History keeps original source/native offer/outcome/side/depth identities. Mapping corrections never rewrite a tick or imply that today’s grouping was valid in the past.

Ticks and coverage

GET /v1/history/ticks requires inclusive received-time from and exclusive until bounds, at most 31 days. Tied observations order by immutable ingestion sequence. Unchanged successful observations refresh the separate confirmation journal, not tick history. Preserve decimal/probability strings, nullable source_ts, original seen_ts and native units; replay never refreshes those clocks. Every page includes a history manifest with the actual retained range, prospective confirmation range/gaps, source-wide pending/quarantined evidence and explicit missing reasons. The free /v1/history/coverage control exposes PG evidence ranges, with a separate flag indicating whether selected canonical sink observations were verified. A retained range is not continuous coverage or an audit of every historical sink row. Empty/legacy/missing periods are not backfilled or advertised as multi-year data. The pilot materializes at most 2,000 ticks or 500 native slots and uses normal 1–100 row pages. Narrow the selection on 422. Cursors bind account/key/grants, filters and the complete retained snapshot; a 409 needs an explicit restart. They never silently skip newly accepted work.

As-of and lines

GET /v1/history/snapshot requires a nonfuture as_of. It selects the last recorded confirmation at or before that time per permanent native key, with capture sequence breaking ties. Original price observation time remains distinct from confirmation time. Missing, stale-at-as-of, suspended, unavailable and source-gap evidence remain explicit; no older active quote replaces a later suspension. GET /v1/history/lines also requires an explicit scheduled_start. Opening means the first eligible recorded pre-start confirmation, not the bookmaker’s genuine market opening. Closing uses the established scheduled-start policy: the last confirmation strictly before the requested start, with matching recorded kickoff/state, freshness and liquidity checks. A requested start not yet reached at as_of is not_final. Unknown legacy confirmations and incompatible/missing evidence do not produce a closing value. All these results are historical evidence, not executable prices or a settlement/fee compatibility approval. Freshness limits are the current reviewed source policy used to evaluate the requested historical cutoff.

Complete CSV and Parquet files

GET /v1/history/export uses kind=ticks|snapshot|lines, the corresponding time parameters, and format=csv|parquet. It exports the whole bounded selection, with no limit or cursor. Files are capped at 2 MiB; larger selections fail explicitly rather than truncating. A manifest row carries coverage/query metadata even for an empty selection. Parquet also embeds it in footer metadata. Canonical decimals remain UTF-8 strings; IDs and nulls retain their meaning. Nested canonical/native fields live losslessly in record_json; arbitrary native text is not placed in spreadsheet formula cells. CSV empty decimal cells represent null; Parquet has nullable string columns. Parse IDs/sequences as integers or strings rather than through spreadsheet floating-point inference. Both local clients return export bytes in the usual result’s data field and safe content/disposition/digest headers. They never follow redirects or retry a charged download automatically. One completed successful history page or complete file costs one included credit, even when empty. Coverage, errors and 304 remain free; overage stays off. Rights and current access are rechecked before data/304 and after a download reservation.