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, from our own results

One greyhound's record from our own results, split by track, distance, box, grade, or any combination — plus the same figures over every run, in `overall`. SOURCE. The same store as /v1/racing/greyhounds/form: the official results pages we read ourselves, Victorian tracks via FastTrack and every other state via the national results pages, rebuilt hourly, in two halves (`origin` on the form endpoint says which). These are figures over `source.coverage_from`..`source.coverage_to` only, not a career. GROUPING. `by=track,distance` returns one row per track-and-distance pair the dog has started at; `by=box` one row per box; `by=grade` one row per grade. The dimensions you did not request come back null on each row. Rows are ordered by starts, most first. GRADE (a dimension since 2026-09-29). Measured 2026-09-28 21:07 UTC: 6,217 of the 6,217 runs in the last seven days carry a grade (100.0%). It is the grade in the SOURCE'S OWN WORDS — "5", "M", "4/5" on the national pages, a race type such as "Grade 5" or "Mixed 4/5" on FastTrack — and the two vocabularies are NOT mapped onto each other, so a dog that raced in Victoria and interstate shows a FastTrack row and a national row for what may be the same class. Compare grade rows within one source. Older runs are covered too: history runs have carried a grade from the start, and after the 2026-09-29 re-read of every settled race since 2026-09-13 (whose pages were stored before the grade was collected) 100.0% of `ran` entries carry one on every Sydney day from 2026-09-13 to 2026-09-28. A run without a grade would group under null rather than be dropped. THE NUMBERS. `starts` counts runs with status `ran`; scratchings and unused reserves are excluded from every figure, which is why `starts` is lower than `runs_total` on the form endpoint. `wins` is place 1, `places` a finish in the first three, both percentages over `starts`. `avg_time_s` and `best_time_s` are over the runs with a recorded time; `avg_sp` over the runs that carry an official starting price; `avg_first_split_s` over the runs whose page printed a first sectional, which is FEWER than `starts` — some tracks print none, so it is not an average over the group you might assume. On a small group these describe a handful of runs, so read `starts` alongside them. A misspelt `by` is a 422 and costs nothing; a name matching nothing is a free 404.

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 runner_ref, 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 or grade,track.

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.

{
  "by": [
    "track",
    "grade"
  ],
  "dog": "Tommy Blue",
  "name_key": "tommyblue",
  "overall": {
    "avg_first_split_s": 6.71,
    "avg_sp": 1.33,
    "avg_time_s": 30.14,
    "best_time_s": 30.14,
    "last_start": "2026-09-19",
    "place_pct": 100.0,
    "places": 1,
    "starts": 1,
    "win_pct": 100.0,
    "wins": 1
  },
  "rows": [
    {
      "avg_first_split_s": 6.71,
      "avg_sp": 1.33,
      "avg_time_s": 30.14,
      "best_time_s": 30.14,
      "grade": "M",
      "last_start": "2026-09-19",
      "place_pct": 100.0,
      "places": 1,
      "starts": 1,
      "track": "Dubbo",
      "win_pct": 100.0,
      "wins": 1
    }
  ],
  "runner_refs": [
    "grsa:441535"
  ],
  "source": {
    "collectors": [
      "fasttrack",
      "grsa"
    ],
    "coverage_from": "2026-06-23",
    "coverage_to": "2026-09-20",
    "feed": "puntersedge",
    "refreshed_hourly": true,
    "region": "AU",
    "results_from": "2026-09-13",
    "sport": "greyhound"
  }
}

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.