Horse Racing Results API
Finishing positions and margins for every runner, in every Australian and New Zealand thoroughbred and harness race and every Australian greyhound race. Results land minutes after the finish, under the same race ID as the odds.
Race results, matched to the odds
Odds tell you what the market thought. Results tell you what happened. Our racing results API gives you the finishing order of every race we carry odds for: position, saddlecloth number, name and margin for each runner, with scratched runners flagged.
Every result uses the same race_id as the race in our odds feed, and runners are keyed by the same number. Settling a bet, scoring a tipping comp or grading a model is a lookup on two keys, with no name matching and no track spellings to reconcile.
Results are kept for 30 days, so you can rerun last week, catch up after downtime or backfill a database without scraping anything yourself.
How fast results arrive
Each race's result fills in over the minutes after it finishes:
A couple of minutes after the finish: An interim result, usually just the winner.
Around ten minutes after the finish: The result goes final, with the placings.
A few minutes after that: The rest of the field is filled in, down to last place.
Each step is a full update with the whole field, so just keep the latest. A result never goes back from final to interim.
What's in every result
Each result carries the race details (track, country, race number, start time) plus these fields. Runners come in finishing order, with scratched runners at the end:
A dead heat shows as two runners with the same position. An abandoned race comes back with status: "abandoned" and no runners.
Fetch racing results
One endpoint, /racing/results. Every parameter is optional: with none you get today's thoroughbred results. Filter by track, date (any day in the last 30), code, countries, or ask for a single race_id:
Example results response
Settle a bet in a few lines
Because a result shares its race_id and runner number with the odds, settling is a lookup, not a matching job:
Results over WebSocket
Already streaming odds? Add "results": true to your subscribe message and each result is pushed to you as a race_result message the moment it lands, for the same tracks you follow. Leave it off and nothing changes:
Why use our racing results API
- Every runner in the field, not just the placegetters
- Margins in lengths behind the winner
- Same race_id and runner number as the odds, so results join straight on
- Thoroughbreds, harness and greyhounds in one endpoint
- 30 days of results on tap
- Pushed over WebSocket as each result lands, if you want it
Pricing
Results are part of racing, so they come with the Pro and Elite plans and the $99/mo Racing plan. No credits, 120 requests a minute. Compare plans →
Pair it with live prices from the horse racing odds API, the harness racing odds API or the greyhound odds API.
Racing Results API FAQ
How quickly do results come through?
An interim result, usually the winner, arrives a couple of minutes after the finish. The final result follows around ten minutes after the race, and the rest of the field is added a few minutes after that.
Which races have results?
Every Australian and New Zealand thoroughbred and harness race and every Australian greyhound race in our odds feed. Pick the code with code=thoroughbred, harness or greyhound.
How far back do results go?
30 days. Pass any meeting date from the last 30 days as date=YYYY-MM-DD.
How are dead heats and abandoned races shown?
A dead heat shows as two runners with the same position. An abandoned race comes back with status abandoned and no runners.
Do results include dividends or starting prices?
No. Results are finishing positions and margins. For prices, use the odds feed, which carries fixed win and place odds from every bookmaker up to the jump.
How do I match a result to the odds I pulled?
Use race_id. A result has exactly the same race_id as the race in /racing/races, and runners share the same number, so it is a straight join.
Which plans include the results API?
Pro, Elite and the $99/mo Racing plan. Results use no credits and share the 120 requests per minute racing limit.
Start building with racing results
Finishing positions and margins for every runner, in every Australian and New Zealand thoroughbred and harness race and every Australian greyhound race. Results land minutes after the finish, under the same race ID as the odds.