What the closing-line archive actually holds
Cost: 1 credit. The archive's own measurements of itself — depth, date floor, how much of it is a genuine closing line, how much has a result, and how many rows carry a contamination flag.
Results are collected for Australian and New Zealand racing from results_from onward, and for British and Irish thoroughbreds from 2026-10-06 (Betway's settlement feed: every finisher Betway ranks; on Irish races it ranks the first four first and the rest within about 25 minutes of the off). British and Irish races are closed by the UK-licensed books (ladbrokes_uk, williamhill, betway_uk) and the Australian books that quote them; races in every other country carry closing prices but never a finish position. So resulted_races_pct is the share of the WHOLE archive with a result, while settleable_races / settleable_resulted_pct count only AU and NZ races that started after results collection began — the figure to read if you intend to settle against the archive. by_category carries resulted_races per code for the same reason.
finish_position_pct is the finish-position fill rate: of the rows whose race has a result (runners marked scratched left out), the share that carry a position. AU thoroughbred and greyhound results publish every finisher's position, and AU harness and NZ results carry the full field from 2026-10-04, so all of them run near 100% on races from then on; before 2026-10-04 harness and NZ results named the placegetters only, which holds their whole-archive figure near the placed share of the field. by_category carries it per code.
consensus_close_pct (from 2026-10-05) is the share of genuine closing lines that carry consensus_close_prob, the market's margin-free probability stored at the close. Rows without one belong to races where fewer than two complete-field books closed.
backtest_ready_rows / backtest_ready_pct count the rows that pass the recommended modelling filter (genuine closing line, not scratched, no venue-split, name-fragment or duplicate flag). closing_by_period splits is_closing_line at 2026-09-29: from that card a row is also a closing line when the book was still quoting the same price inside 300 seconds of the jump, so the two periods are measured on different evidence and should be read separately.
Per book and per join, over a recent window (days, default 30). by_bookmaker gives each book's closing_pct and baseline_pct: the closing-line rate varies widely between books, so the archive-wide is_closing_line_pct hides the books whose series often stop early. races_without_result counts AU and NZ archive races in the window with no result at all, and results_without_race counts AU and NZ results with no archive race; their denominators are settleable_races_in_window and results_in_window, and definitions states each count in one line. Races younger than three hours are left out of both gaps.
This exists so nobody has to take a marketing number on trust before paying for a bulk pull. Every figure is computed from the table, refreshed at most every ten minutes. Open to every key, Free included, so you can check the archive before paying for it; the numbers describe the whole archive. Reading the rows themselves (/v1/racing/closing-lines) is a paid endpoint.
Request
- Base URL: https://api.puntersedge.online
- URL: https://api.puntersedge.online/v1/racing/closing-lines/coverage
- Auth: API key in header X-API-Key
Query parameters
Days the per-bookmaker rates and the two result-join gaps are measured over, ending now. Every other figure covers the whole archive.
Headers
Response
Successful Response
Changes
No recorded changes to this operation across all 1 revision of this API.