Racing
Trainer premiership leaderboards and lookup
Cost: 2 credits. Trainer premiership leaderboards — 1st-5th finishes, prize money, strike rate and starts — from Racing Australia's own published tables.
WHAT A LEADERBOARD IS. RA publishes each premiership as a TOP-20 table, one per
state and scope, and that is exactly what is held: the national table (`state=AUS`)
and the eight state tables, each split all/metro/provincial/country/picnic, for the
running season and the previous one (RA seasons run 1 Aug - 31 Jul). There is no
page two at the source, so a trainer outside every top-20 has no row here — an empty
`rows` for a name means "outside the published top 20", never "inactive". For
per-horse trainer identity on individual runs, /v1/racing/horses/form carries it
with a stable code on every run.
LOOKUP SHAPES. With no `name`, the response is one table: `state` (default AUS) x
`scope` (default all) for the chosen `season`. With `name`, the search widens to
every state and scope for that season by default — a rider prominent only in one
state's country scope is found without knowing which — and `state`/`scope`, if
given, narrow it back. Name matching is case-insensitive on the whole name or any
part of it.
JOINS. `ra_code` is the code inside RA's own engagement links, stored with padding
stripped — the same identity namespace as `jockey_code` on horse-form runs and
`trainer_code` on acceptance rows, so premiership standing joins to per-run data on
code, not name spelling.
HOW FRESH ANY GIVEN TABLE IS. There are 180 of these tables and Racing Australia
will not serve them all in one sitting, so they are refreshed in paced passes
overnight Australian time: the national tables (`state=AUS`) daily, and the state
tables on a rolling refresh that takes a few nights to come round. Nothing is
guessed or interpolated in between — a table is exactly as RA last published it.
Read the age off the response rather than assuming it: `period_to` on the running
season is the day RA rendered that table, so it dates every row, and
`source.scraped_at` gives the newest scrape among the rows returned. A state table
added to the store for the first time simply appears; until then its `rows` are
empty, the same shape as a name that is outside every top 20.
`season=previous` serves the completed season, useful as the longer baseline of the
two. It changes only on a late protest, so it is refreshed about weekly.
Cached 1 hour.
get/v1/racing/trainers/stats
Request
- Base URL: https://api.puntersedge.online
- URL: https://api.puntersedge.online/v1/racing/trainers/stats
- Auth: API key in header X-API-Key
Query parameters
namestring nullable
Find one trainer by (partial) name across every state and scope.
statestring nullable
AUS (national) or a state. Default AUS, unless name widens the search.
scopestring nullable
all, metro, provincial, country, picnic. Default all, unless name widens the search.
seasonstring
current or previous RA season (1 Aug - 31 Jul).
Headers
X-API-Keystring
X-RapidAPI-Proxy-Secretstring
Response
Successful Response
Example response
{
"role": "trainer",
"rows": [
{
"fifths": 14,
"firsts": 17,
"fourths": 22,
"name": "Chris Waller",
"period_from": "2026-08-01",
"period_to": "2026-09-02",
"prize_money": 2437350,
"ra_code": "Njg0MjM2MA",
"rank": 1,
"scope": "all",
"seconds": 23.5,
"starts": 147,
"state": "NSW",
"strike_rate": 11.6,
"thirds": 20
}
],
"scope": "all",
"season_start_year": 2026,
"source": {
"feed": "racing-australia-premierships",
"region": "AU",
"scraped_at": "2026-09-02T07:10:00+00:00",
"sport": "thoroughbred",
"top_n": 20
},
"state": "NSW"
}Changes
No recorded changes to this operation across all 1 revision of this API.