18+ Only  |  Gambling can be addictive — please gamble responsibly  |  Gambling Help: 1800 858 858  |  GambleAware

API reference / Racing

GET /v1/racing/results/coverage

What the results field coverage actually is

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.

Requires X-API-Key 1 credit

Request

curl 'https://api.puntersedge.online/v1/racing/results/coverage' \
  -H 'X-API-Key: YOUR_KEY'

Parameters

NameIn TypeRequired Description
days query integer no Sydney days to count, ending with today (a part day).

Responses

Status codes: 200, 401, 402, 422, 429, 500. Response bodies are JSON; the full schema is in /openapi.json.

Example response

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
}

Related endpoints

Try it against live data

The free tier needs no credit card, and the sandbox endpoints need no key at all.

Get a free API key Quickstart
This site contains wagering-related analysis and is intended for Australian users aged 18+. Gambling involves risk. Please gamble responsibly.