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. It exists because `runners: null` used to be the only signal, and it means 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. Sibling endpoint: /v1/racing/closing-lines/coverage does the same job for the price archive.
X-API-Key
1 credit
curl 'https://api.puntersedge.online/v1/racing/results/coverage' \
-H 'X-API-Key: YOUR_KEY'
| Name | In | Type | Required | Description |
|---|---|---|---|---|
days |
query | integer | no | Sydney days to count, ending with today (a part day). |
Status codes: 200, 401, 402, 422, 429, 500. Response bodies are JSON; the full schema is in /openapi.json.
200 application/json
— this call costs 1 credit.
Field names and types are as the API returns them; values are a real sample, trimmed to a few items.
{
"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
}
GET /v1/racing/acceptances — Full-day AU thoroughbred acceptance card: every meeting, race and runnerGET /v1/racing/best-odds — Best racing price per runner across booksGET /v1/racing/changes — Races and prices that changed since a timestampPOST /v1/racing/clv — Score bets against the closing line (CLV)GET /v1/racing/consensus — The market consensus on one race: margin-free probability per runnerGET /v1/racing/events — Upcoming race listGET /v1/racing/form — Every runner in one race with its recent runs, from our own resultsGET /v1/racing/greyhounds/form — Greyhound form history for one dog, from our own resultsThe free tier needs no credit card, and the sandbox endpoints need no key at all.
Get a free API key Quickstart