18+ Only  |  Gambling can be addictive — please gamble responsibly  |  Gambling Help: 1800 858 858  |  GambleAware

Thoroughbred racing · Australia

Horse racing odds API for Australia

Every Australian thoroughbred race, priced by every Australian bookmaker the feed serves, in one JSON response — with the day's card, settled results, runner form from Racing Australia, price movement and a permanent closing-line archive behind it.

Measured coverage, Australian thoroughbreds

360AU thoroughbred races served, last 7 days
15Australian bookmakers on racing
14Median bookmakers per AU race
45 daysPrice-history depth, from 22 August 2026

Measured 6 October 2026 on the public coverage-report.json, recomputed from the production store every half hour. Customer-served figures; the withheld reference books are excluded.

What the API returns for a thoroughbred race

/v1/racing/next-to-go?categories=horse is the endpoint paying customers call most. Each race carries venue, race number, distance, track condition, jump time, scratchings and a runner list; each runner carries a win and place price from every bookmaker quoting it, with the bookmaker key and the age of that quote. Pass num_races=200 to pull every race currently carrying odds in one call.

The panel behind those prices is Sportsbet, BetDeluxe, BetGold, BoostBet, TAB, BetRight, PointsBet, TABtouch, Palmerbet, Betr, Unibet, NextBet (formerly PlayUp), Ladbrokes, Neds and bet365 — measured over the trailing 7 days to 6 October 2026 on the public coverage report, which recomputes itself from the production store every half hour.

Betfair Exchange is ingested for internal reference and withheld from customer responses pending a data licence. Exchange prices are not included in any response on any plan.

The endpoints a racing product needs

Best price. /v1/racing/best-odds returns the best win, place and tote price per runner with the book offering it, a market_percentage for the field and a per-runner spread between best and worst quote.

Movement. /v1/racing/changes is a cursor feed of everything that moved since your last poll, so a live board is one small call instead of a card re-download. /v1/racing/movers ranks steamers and drifters confirmed by a minimum number of books.

Results. /v1/racing/results returns finishing order, settled fixed prices, dividends, scratchings and deductions. status is interim until placings have held for 30 minutes, then final; settle only against final.

Form. /v1/racing/horses/form parses an Australian thoroughbred's career record, profile and recent runs from Racing Australia's public horse page, with sectionals and in-running positions where RA publishes them. Plus and above can queue a paced bulk backfill.

Freshness and history

Each race carries data_age_seconds, freshest_age_seconds and a stale flag, so your code reads the age of a quote rather than assuming a refresh interval. Capture is change-only: a price that holds is stored once.

Every price move in the final 60 minutes before the jump is kept for 45 days and readable through /v1/racing/price-history; the closing line and full price path of every race are archived permanently from 4 August 2026. The historical racing odds API page covers depth and plan gates in detail.

Endpoints on this page

EndpointPurposeCredits
/v1/racing/next-to-goNext races with every book's win and place price2 credits or 3 credits or 4 credits
/v1/racing/best-oddsBest price per runner across books3 credits
/v1/racing/changesDelta feed since a timestamp2 credits
/v1/racing/resultsSettled results with dividends2 credits
/v1/racing/horses/formThoroughbred form and career record3 credits
/v1/racing/horses/runsEvery run we hold for one horse, from our own results3 credits
/v1/racing/price-historyEvery price move for one race5 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 or 3 credits or 4 credits

curl

curl 'https://api.puntersedge.online/v1/racing/next-to-go?categories=horse&country=AU&num_races=5' \
  -H 'X-API-Key: YOUR_API_KEY'

Python

import requests

r = requests.get(
    "https://api.puntersedge.online/v1/racing/next-to-go",
    params={"categories": "horse", "country": "AU", "num_races": 5},
    headers={"X-API-Key": "YOUR_API_KEY"}, timeout=15)
r.raise_for_status()
for race in r.json():
    print(race["venue"], "R%s" % race["race_number"], race["start_time"])
    for runner in race["runners"]:
        priced = [b for b in runner["bookmakers"] if b.get("win_price")]
        if priced:
            best = max(priced, key=lambda b: b["win_price"])
            print("  ", runner["number"], runner["name"], best["key"], best["win_price"])

One call costs 2 credits or 3 credits or 4 credits regardless of how many races or bookmakers come back. The free tier's 3,000 credits a month are enough to build against; the Standard plan is where a polling product lives.

Full parameter table, status codes and response schema: API reference →. Keys go in the X-API-Key header — see Authentication.

FAQ

Which Australian bookmakers are in the horse racing feed?

Sportsbet, BetDeluxe, BetGold, BoostBet, TAB, BetRight, PointsBet, TABtouch, Palmerbet, Betr, Unibet, NextBet (formerly PlayUp), Ladbrokes, Neds and bet365 — 15 books, measured over the trailing 7 days on the public coverage report. Betfair Exchange is ingested for reference and withheld from customers pending a data licence.

Does the API return an official starting price?

Results carry each source bookmaker's own settled fixed price per placegetter, plus dividends. That is a bookmaker's settled price, not a tote or official SP.

Is there horse form that does not depend on Racing Australia being reachable?

Yes. /v1/racing/horses/runs returns every run we hold for a horse from our own settled thoroughbred results: date, track, race, distance, saddlecloth and barrier, finishing position, margin, official starting price, jockey, trainer and field size, each joined to its results row, with a starts/wins/places summary. It is our own record from the 1 September 2026 card, rebuilt hourly, not a career, and every response says so. /v1/racing/horses/form still reads Racing Australia's page for the career record and profile, and serves its stored copy when that page cannot be read.

Which field identifies a horse across meetings?

horse_ref. It is the same value for a horse on results, the live board, the closing-line and price-path archives, /v1/racing/horses/form and /v1/racing/horses/runs, derived from the registered name, and it is on every stored row. runner_ref on thoroughbreds is the code Racing Australia published on race day: it joins the rows about one race (results, the closing-line, price-path and markets archives, and the live board on race day), and it changes from meeting to meeting because Racing Australia issues a new code for the same horse each day, so do not join across meetings on it. Greyhound refs are per-dog registry ids and do persist.

How far back do results go?

/v1/racing/results reaches back up to 7 days with hours_back, or a single meeting date with date=YYYY-MM-DD. For older races, /v1/racing/closing-lines with resulted_only=true carries the finishing position beside the closing price, back to the archive floor.

Can I show these odds to my own users?

Showing our prices to end users needs Plus or above with a 'Prices by PuntersEdge' credit; Platform drops the credit. What you may do with the data follows your plan: personal use on Free, Hobby and Standard; display with attribution on Plus; commercial use on Business and Scale; redistribution on Platform. Details are on the pricing page.

Is New Zealand racing included?

Yes: NZ thoroughbred and harness races arrive on the same endpoints, filterable with country=NZ. The NZ racing odds API page has the measured NZ panel.

Start with a free API key

3,000 credits a month, no card. Every live odds, results, form and racing price-history endpoint. Historical sports odds and movements and the closing-line archive start at Standard. 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 scale; redistribution on platform.

This site contains wagering-related analysis and is intended for Australian users aged 18+. Gambling involves risk. Please gamble responsibly.