Every dog in one greyhound race with its recent runs, from our own results
Cost: 3 credits. Every dog in one greyhound race with its recent runs from our own results, in one call: the field's form, not one dog's. Australian races and, from 12 October 2026, British and Irish ones.
Naming the race. race_id from /v1/racing/next-to-go, /events or /results is exact. Failing that, venue + meeting_date + race_number: the AET meeting date for an Australian race, the London date for a British or Irish one, the track matched by words there ("Towcester" finds "Betway Towcester"). Only greyhound races are matched, so a track that races dogs and trots on the same day is not ambiguous (from 13 October 2026); two greyhound races sharing those three answer 409 race_ambiguous and cost nothing.
The field. While the race is open the runners come from the live card (card_source: live): rug number, trap, trainer and the card's form figures as the books publish them -- PointsBet on every card, William Hill on the British and Irish ones -- with a dog the card has since scratched kept in the field and marked scratched: true. Once the race has been run and the live card purged, the field is the settled result's (card_source: results).
The runs. Under each dog, its newest runs runs (default 10, at most 20) and a starts, wins and places summary over every run held, ONLY RUNS BEFORE THIS RACE'S START (form_as_at), so a race already run answers with what was knowable at the jump and never with its own result. On an Australian race the runs are the same store /v1/racing/greyhounds/form reads -- our own collected results and the history behind them, with times, splits, weight, PIR and grade where the source printed them. On a British or Irish race they are our own GB/IE results from PointsBet's settled race card since 12 October 2026: the paid places carry a position (three on a six-dog field), every other starter reads ran with position null -- not placed, which covers a dog that did not finish, and source.note says so on every British or Irish answer -- and there are no times, splits or grades; source.region reads GB-IE and source.coverage_from is that floor, so most dogs hold few or no runs yet -- British dogs race about weekly, and the record grows with every meeting we settle. runs_total counts STARTS (status: ran), the same figure as stats.starts, and held_rows_total every held row, scratchings and unused reserves included, which is what runs is drawn from; before 2026-10-13 runs_total counted every row.
Identity. Dogs are grouped on name_key, the name's letters and digits, the same fold the one-dog routes use; pass it as dog there for the full record. A race we cannot find is a free 404, a race we hold no field for a free 404, an unknown query parameter a free 422. Greyhounds only; thoroughbreds have /v1/racing/form. Cached 10 minutes; the Australian store refreshes hourly, the British and Irish runs are read live.
Request
- Base URL: https://api.puntersedge.online
- URL: https://api.puntersedge.online/v1/racing/greyhounds/field
- Auth: API key in header X-API-Key
Query parameters
The race_id from /v1/racing/next-to-go, /events or /results. The primary form; use venue + meeting_date + race_number only when you do not hold it.
Track name as the feeds spell it (case-insensitive; a British or Irish track is matched by words). Needs meeting_date and race_number.
Meeting date, YYYY-MM-DD: the AET date for an Australian race, the London date for a British or Irish one.
Most recent runs to return per dog. The stats cover every held run regardless.
Headers
Response
Successful Response
Example response
{
"card_source": "live",
"distance_m": 516,
"form_as_at": "2026-09-19T07:22:00Z",
"meeting_date": "2026-09-19",
"race_id": "9b4e2b2e-1d7a-4b6a-9f1c-0f3c2a6e7d10",
"race_name": "Dubbo Grade 5",
"race_number": 2,
"race_status": "open",
"runners": [
{
"box": 2,
"form": "1",
"held_rows_total": 1,
"name": "Tommy Blue",
"name_key": "tommyblue",
"number": 2,
"runs": [
{
"box": 2,
"date": "2026-09-19",
"dead_heat": false,
"distance_m": 516,
"field_size": 5,
"first_split_s": 6.71,
"grade": "M",
"number": 2,
"origin": "results",
"position": 1,
"race_name": "Dubbo Maiden",
"race_number": 1,
"result_id": "res_9f1c…",
"runner_ref": "grsa:441535",
"second_split_s": 18.02,
"source": "grsa",
"sp": 1.33,
"start_time": "2026-09-19T07:02:00Z",
"status": "ran",
"time_s": 30.14,
"trainer": "Raymond Tyquin",
"venue": "Dubbo",
"weight_kg": 29.8,
"win_time_s": 30.14
}
],
"runs_total": 1,
"scratched": false,
"stats": {
"place_pct": 100,
"places": 1,
"starts": 1,
"win_pct": 100,
"wins": 1
},
"trainer": "Raymond Tyquin"
}
],
"runners_total": 1,
"runners_with_runs": 1,
"runs_per_runner": 10,
"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"
},
"start_time": "2026-09-19T07:22:00Z",
"venue": "Dubbo"
}Changes
No recorded changes to this operation across all 1 revision of this API.