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 has ever existed for (`unsupported` — AU harness and both NZ codes, 1,254 of the 5,577 stored results as at 2026-09-10), 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": 698,
"country": "AU",
"field_source": "topaz",
"not_applicable": 0,
"overdue": 25,
"pending": 19,
"races": 742,
"unavailable": 0,
"unsupported": 0
},
{
"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": 0,
"country": "AU",
"day": "2026-09-10",
"field_source": "topaz",
"not_applicable": 0,
"overdue": 0,
"pending": 19,
"races": 19,
"unavailable": 0,
"unsupported": 0
},
{
"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-09-01 Sydney card) and AU greyhound (Topaz, from 2026-08-21). AU harness, NZ thoroughbred and NZ harness have no full-field source and are counted as unsupported. 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 timestampGET /v1/racing/events — Upcoming race listGET /v1/racing/greyhounds/form — Greyhound form history for one dogGET /v1/racing/greyhounds/stats — Greyhound record by track, distance, box or gradePOST /v1/racing/horses/backfill — Queue a batch of horses for paced form collectionDELETE /v1/racing/horses/backfill/{job_id} — Cancel the horses a job has not collected yetThe free tier needs no credit card, and the sandbox endpoints need no key at all.
Get a free API key Quickstart