Harness racing · Australia and New Zealand
Harness racing odds API
Australian and New Zealand harness racing on the same endpoints as the thoroughbreds and greyhounds, filtered with categories=harness. Every served bookmaker's win and place price per runner, results with dividends, a delta feed for live boards and a closing-line archive behind it.
Measured coverage, harness
Measured 18 September 2026 on the public coverage-report.json, recomputed from the production store every half hour. Customer-served figures; the withheld reference books are excluded.
Live harness odds
/v1/racing/next-to-go?categories=harness returns the next harness races with every served bookmaker's win and place price per runner, scratchings and the age of each quote. Pass num_races=200 for every priced harness race in one call, or country=AU / country=NZ to split the two nations.
The panel is TAB, TABtouch, BetDeluxe, Betr, PointsBet, BetRight, Palmerbet, NextBet (formerly PlayUp), Unibet, Ladbrokes, Neds, Sportsbet, BetGold and BoostBet, measured on the public coverage report over the trailing 7 days to 18 September 2026. The same categories=harness filter works on /v1/racing/best-odds, /v1/racing/changes, /v1/racing/movers and /v1/racing/events.
Betfair Exchange prices are ingested for reference and are not included in customer responses.
Results: settled fixed prices, no official SP
/v1/racing/results?categories=harness returns finishing order, each placegetter's settled win and place price from the source bookmaker, dividends, scratchings and deductions. status moves from interim to final once placings have held for 30 minutes.
Harness racing has no official starting price in this API. The settled price on a result is the bookmaker's own fixed price, and the response says which book it came from. Model against that, or against the closing line from the archive.
Price movement and the archive
Every price move in the final 60 minutes before the jump is readable per race on /v1/racing/price-history for 45 days. The closing line and complete price path of every harness race are archived permanently from 4 August 2026 on /v1/racing/closing-lines and /v1/racing/price-paths with category=harness, on the Standard plan and above.
Form endpoints are thoroughbred (Racing Australia) and greyhound (Topaz) only; there is no harness form endpoint.
Building a harness board
Trotting and pacing races are both category=harness; there is no gait field. A live board is three calls: /v1/racing/events for the card, /v1/racing/changes polled with the previous server_time for the prices that moved, and /v1/racing/best-odds when you need market_percentage and the per-runner spread. Read books_quoting_win and books_quoting_place separately: a book can quote the win and skip the place on the same runner.
Endpoints on this page
| Endpoint | Purpose | Credits |
|---|---|---|
/v1/racing/next-to-go | Next harness races, every book's price per runner | 2 credits |
/v1/racing/best-odds | Best price per runner across books | 3 credits |
/v1/racing/changes | Delta feed since a timestamp | 2 credits |
/v1/racing/results | Settled results with dividends | 2 credits |
/v1/racing/closing-lines | Permanent closing-line archive, harness rows | 5 credits or 20 credits |
Credit costs are read from the API's own source at render time. The full table, with plan gates, is on API pricing; parameters, status codes and response schemas are in the API reference.
Example request — 2 credits
curl
curl 'https://api.puntersedge.online/v1/racing/results?categories=harness&status=final&hours_back=24' \
-H 'X-API-Key: YOUR_API_KEY'
Python
import requests
r = requests.get(
"https://api.puntersedge.online/v1/racing/results",
params={"categories": "harness", "status": "final", "hours_back": 24},
headers={"X-API-Key": "YOUR_API_KEY"}, timeout=15)
r.raise_for_status()
for race in r.json():
if race["status"] != "final": # interim placings can still change on protest
continue
print(race["venue"], "R%s" % race["race_number"], race["placings"])
Results cost 2 credits per call; live odds on /v1/racing/next-to-go cost 2 credits.
Full parameter table, status codes and response schema: API reference →. Keys go in the X-API-Key header — see Authentication.
FAQ
Which countries' harness racing is covered?
Australia and New Zealand, on the same endpoints, split with country=AU or country=NZ. Over the trailing 7 days the coverage report counted 294 AU and 51 NZ harness races served.
Is there an official starting price for harness races?
No. Results carry the source bookmaker's settled fixed price per placegetter and the dividends; the API does not publish or synthesise an official SP.
Is there harness form data?
No. Form endpoints exist for thoroughbreds (Racing Australia) and greyhounds (Topaz). Harness form is a feature request, not a shipped endpoint.
How do I get every harness race for the day?
/v1/racing/events?categories=harness&hours_ahead=24 lists the card before any book prices it, for 1 credit a call. /v1/racing/next-to-go?categories=harness&num_races=200 returns every race currently carrying odds.
Start with a free API key
1,500 credits a month, no card. The same data as every paid plan. Move to Standard when a polling product needs the volume. Past that the tiers are about rights, not size: personal use on free, hobby and standard; display with attribution on plus; commercial use on business and unlimited; redistribution on platform.