What the results field coverage actually is
Cost: 1 credit. The results store's own measurement of its FULL-FIELD coverage, per Sydney day, category and venue — the aggregate answer to the question field_status answers per race on /v1/racing/results.
runners: null on its own can mean several different things: a fill pass that has not run yet (pending), a pass that has been and gone while the collector keeps re-attempting the row (overdue), a row past its collector's retry horizon so that no scheduled pass still selects it (unavailable), a racing code no collector exists for (unsupported — since 2026-10-04 only foreign races an AU book listed; AU harness and both NZ codes, 1,254 of the 5,577 stored results as at 2026-09-10, are collected from TAB New Zealand from that day), and a race that did not run (not_applicable). Counting them separately is what lets you decide between polling, reconciling and giving up, without paging the results themselves.
Every count comes from the same function that sets field_status on each race, applied to the rows in the window at request time, so this summary and the races it summarises can never disagree. Nothing holds a race in pending indefinitely: pending ends at the normal pass, overdue ends at the collector's own candidate horizon.
READ THE PERCENTAGES CAREFULLY. complete_pct and supported_complete_pct are NULL, not 0.0, when their denominator is 0 — an empty window, or one holding only codes we do not collect. A days=1 window is empty for the first hours of every Sydney day, and a monitor that treated a fabricated 0.0 as real coverage would page every night. collectable is published alongside them so 0-of-0 is never mistaken for 0-of-many.
Days are AUSTRALIAN EASTERN calendar days (Australia/Sydney), the same day a meeting is advertised under, and to_day is today in Sydney — a part day whose races are mostly still pending, which is normal and not a gap. Read by_day for the day-by-day picture and venues_incomplete for the venue-days that are genuinely short.
archive_races_without_result looks from the other side: AU and NZ races in the closing-line archive, in this window and at least three hours old, that have no result row at all (archive_races_in_window is its denominator). They are not in races, which counts stored results only. archive_races_result_unlinked is the part of that count whose result does exist under another race_id — reachable by venue, date and start time, not by race_id.
Two things the field states cannot say on their own: whether the RESULT is in (each category and day row carries result_final, independent of the field), and whether a late field is late because its source is refusing our collector (field_sources_refused, and overdue_source_refused on each row, a subset of overdue).
Sibling endpoint: /v1/racing/closing-lines/coverage does the same job for the price archive.
Request
- Base URL: https://api.puntersedge.online
- URL: https://api.puntersedge.online/v1/racing/results/coverage
- Auth: API key in header X-API-Key
Query parameters
Sydney days to count, ending with today (a part day).
Headers
Response
Successful Response
Example response
{
"as_of": "2026-09-10T03:40:12Z",
"by_category": [
{
"category": "greyhound",
"complete": 220,
"country": "AU",
"field_source": "fasttrack",
"not_applicable": 0,
"overdue": 8,
"pending": 6,
"races": 742,
"unavailable": 0,
"unsupported": 508
},
{
"category": "horse",
"complete": 108,
"country": "AU",
"field_source": "racing_australia",
"not_applicable": 0,
"overdue": 21,
"pending": 2,
"races": 137,
"unavailable": 6,
"unsupported": 0
},
{
"category": "harness",
"complete": 0,
"country": "AU",
"not_applicable": 0,
"overdue": 0,
"pending": 0,
"races": 131,
"unavailable": 0,
"unsupported": 131
}
],
"by_day": [
{
"category": "greyhound",
"complete": 5,
"country": "AU",
"day": "2026-09-10",
"field_source": "fasttrack",
"not_applicable": 0,
"overdue": 0,
"pending": 1,
"races": 19,
"unavailable": 0,
"unsupported": 13
},
{
"category": "horse",
"complete": 42,
"country": "AU",
"day": "2026-09-09",
"field_source": "racing_australia",
"not_applicable": 0,
"overdue": 7,
"pending": 0,
"races": 49,
"unavailable": 0,
"unsupported": 0
}
],
"collectable": 879,
"complete": 806,
"complete_pct": 75.54,
"coverage_from": "2026-08-15T05:53:00Z",
"days": 7,
"field_scope": "Full fields are collected for AU thoroughbred (Racing Australia, from the 2026-08-15 card, the first day of results) and AU greyhound (FastTrack for Victoria, the national results pages elsewhere, from 2026-09-13), NZ harness (TAB New Zealand, from the 2026-09-30 Sydney card), NZ thoroughbred (TAB New Zealand, from the 2026-09-30 card) and AU harness (TAB New Zealand, from the 2026-09-27 card). No pass reaches back beyond its own floor.",
"from_day": "2026-09-04",
"not_applicable": 0,
"overdue": 52,
"pending": 21,
"races": 1067,
"supported_complete_pct": 91.7,
"to_day": "2026-09-10",
"unavailable": 0,
"unsupported": 188,
"venues_incomplete": [
{
"category": "horse",
"complete": 0,
"country": "AU",
"day": "2026-09-09",
"not_applicable": 0,
"overdue": 7,
"pending": 0,
"races": 7,
"settled": false,
"unavailable": 0,
"unsupported": 0,
"venue": "Randwick",
"venue_id": "randwick"
}
],
"venues_incomplete_truncated": false
}Changes
No recorded changes to this operation across all 1 revision of this API.