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

API reference / Racing

GET /v1/racing/greyhounds/stats

Greyhound record by track, distance, box or grade

One greyhound's record, split by track, distance, box, grade, or any combination of them. SOURCE. The official Topaz feed for Australian greyhound racing, synced twice a day at 22:30 and 00:30 UTC, covering 2020-01-01 to the last meeting the latest sync carried (`source.coverage_to`). Greyhounds only. Every start the feed holds counts toward these figures — this is a career record over the covered period, with no recency window. GROUPING. `by=track,distance` returns one row per track-and-distance pair the dog has started at; `by=box` returns one row per box. The dimensions you did not request come back NULL on each row. Rows are ordered by starts, most first. THE NUMBERS. `starts` counts runs the dog actually took part in — scratchings are excluded from every figure here, which is why `starts` is lower than the run count on /v1/racing/greyhounds/form for the same dog. `wins` is place 1, `places` is a finish in the first three, and both percentages are over `starts`. `avg_time_s`, `best_time_s` and `avg_first_split` are computed over the runs that have a recorded time; a run where the dog fell or was pulled up has none and is counted in `starts` but not in the averages. On a small group these averages describe a handful of runs, so read `starts` alongside them. JOINING TO LIVE DATA. `dog_id` is the same identifier as the numeric part of `runner_ref` on /v1/racing/results runners ("grv:<dogId>" for greyhounds). `race_id` on /v1/racing/next-to-go, /events and /results is our own UUID and is stable for a race from upcoming through to results, which is a separate namespace from Topaz's raceId. An ambiguous name returns 200 with `ambiguous: true` and `candidates[]`, exactly as on /v1/racing/greyhounds/form. A name matching nothing returns 404. Cached 10 minutes.

Requires X-API-Key 3 credits

Request

curl 'https://api.puntersedge.online/v1/racing/greyhounds/stats?dog=YOUR_DOG' \
  -H 'X-API-Key: YOUR_KEY'

Parameters

NameIn TypeRequired Description
dog query string yes Dog name or Topaz dogId, resolved exactly as on /v1/racing/greyhounds/form.
by query string no Dimensions to group by: track, distance, box, grade. Comma-separate to cross them, e.g. track,distance.

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 3 credits. Field names and types are as the API returns them; values are a real sample, trimmed to a few items.

{
  "ambiguous": false,
  "candidates": [],
  "dog_id": 760119227,
  "dog_name": "VELOCITY YIN",
  "group_by": [
    "track"
  ],
  "groups": [
    {
      "avg_first_split": 7.594,
      "avg_time_s": 20.02,
      "best_time_s": 19.16,
      "place_pct": 28.57,
      "places": 8,
      "starts": 28,
      "track": "Albion Park",
      "win_pct": 10.71,
      "wins": 3
    }
  ],
  "source": {
    "coverage_from": "2020-01-01",
    "coverage_to": "2026-08-31",
    "feed": "topaz",
    "region": "AU",
    "sport": "greyhound",
    "synced_at": "2026-09-01T00:32:11+00:00"
  }
}

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.