RapidOddsAPI bookmaker odds API logoRapidOddsAPI
Home/Horse Racing Odds API
Racing · Australia & New Zealand

Horse Racing Odds API

Live fixed win and place odds for every Australian and New Zealand thoroughbred race from 18 Australian bookmakers. One REST and WebSocket API, scratchings included.

See Racing PlansRead the Racing Docs

Australian horse racing odds in one feed

Our horse racing odds API covers every thoroughbred meeting in Australia and New Zealand. That means Saturday metro cards at Flemington, Randwick, Caulfield, Rosehill, Eagle Farm and Morphettville, and the midweek country meetings at places like Kilcoy and Wodonga too.

Each race turns up about a day before it jumps. From then until the start you get fixed win and place prices for every runner from every bookmaker that has the race up, all in the same race object. Tracks are spelled one way across every book and runners are keyed by their saddlecloth number, so you can line up Sportsbet against TAB against Bet365 without writing any matching code.

When a horse is scratched it stays in the field with scratched: true and no price. If a meeting is called off, the race is flagged abandoned. Once a race jumps it leaves the feed.

Thoroughbred tracks covered

NSW & ACT: Randwick, Rosehill, Warwick Farm, Canberra, Kembla Grange, Newcastle, Gosford, Hawkesbury, Wagga, Albury, Bathurst, Orange, Tamworth, Scone, Muswellbrook, Port Macquarie, Taree, Grafton, Lismore, Nowra, Goulburn, Queanbeyan, Armidale, Forbes, Narromine, Coonamble, Coonabarabran

VIC: Flemington, Caulfield, Pakenham, Cranbourne, Mornington, Geelong, Ballarat, Bendigo, Kilmore, Kyneton, Seymour, Yarra Valley, Moe, Sale, Bairnsdale, Echuca, Swan Hill, Mildura, Wangaratta, Wodonga, Warrnambool, Horsham, St Arnaud, Avoca, Manangatang

QLD: Eagle Farm, Doomben, Gold Coast, Sunshine Coast, Ipswich, Toowoomba, Gatton, Kilcoy, Gympie, Warwick, Rockhampton, Mackay, Townsville, Cairns, Innisfail, Mt Isa, Cloncurry, Blackall

SA: Morphettville, Gawler, Balaklava, Strathalbyn, Mount Gambier, Penola, Port Lincoln

WA: Ascot, Belmont, Bunbury, Northam, York, Collie, Geraldton, Kalgoorlie, Leinster, Leonora, Laverton

TAS & NT: Launceston, Darwin, Alice Springs

New Zealand: Ellerslie, Te Rapa, Trentham, Riccarton, Otaki, Hastings, Tauranga, Rotorua, Taupo, Te Aroha, New Plymouth, Waverley, Woodville, Ashburton, Ascot Park, Gore

18 Australian bookmakers

Every race includes every one of these bookmakers that prices it:

SportsbetTABLadbrokesPointsBetBetrUnibetPalmerBetAmusedBetRightNextBetSwiftBetPicklebetColossalBetChaseBetBet365Dabble123betEliteBet

What's in every race

Each race carries these fields, for every bookmaker that prices it:

trackTrack name, spelled the same at every bookmaker
countryAU or NZ
race_numberRace number at the meeting
start_timeAdvertised start time (UTC)
numberRunner number, the same at every bookmaker
nameRunner name
scratchedtrue once the runner is scratched
winFixed win price
placeFixed place price

Fetch horse racing odds

Two endpoints. /racing/meetings tells you which tracks are racing on a given day and the races at each one, without prices. /racing/races gives you the odds, for a single race_id or a whole meeting by track name:

# What's on today curl "https://api.rapidoddsapi.com/racing/meetings?api_key=your_api_key" # Odds for every race at one meeting curl "https://api.rapidoddsapi.com/racing/races?api_key=your_api_key&track=Flemington"

Example horse racing response

One object per race, with each bookmaker's runners listed inside it:

{ "races": [ { "race_id": "thoroughbred_2026-10-19_Orange_3", "code": "thoroughbred", "track": "Orange", "country": "AU", "race_number": 3, "start_time": "2026-10-19T04:20:00Z", "abandoned": false, "bookmakers": [ { "bookmaker": "TAB", "status": "open", "url": "https://www.tab.com.au/racing/2026-10-19/ORANGE/ORG/R/3", "last_update": "2026-10-19T04:14:27Z", "runners": [ { "number": 4, "name": "Skeldale House", "scratched": true, "win": null, "place": null }, { "number": 5, "name": "Three Wishes", "scratched": false, "win": 5.5, "place": 2.3 }, { "number": 7, "name": "Invasion", "scratched": false, "win": 2.6, "place": 1.5 } ] } ] } ] }

Live horse racing odds over WebSocket

Open one WebSocket and subscribe to the tracks you care about, or "*" for all of them. Whenever a bookmaker moves a price or scratches a horse, you get that bookmaker's current field for the race. The subscription rolls over to future meetings, so one message covers every Australian race from here on:

wss://api.rapidoddsapi.com/racing/ws?api_key=your_api_key { "action": "subscribe", "tracks": "*", "countries": ["AU"] }

Why RapidOddsAPI for horse racing odds

  • 18 Australian bookmakers side by side, Bet365 included
  • Metro, provincial and country meetings across every state, plus New Zealand
  • Runners matched by saddlecloth number, tracks spelled the same everywhere
  • Scratched horses have no price, so nothing stale slips through
  • WebSocket push comes with the plan
  • No credits to count, just 120 requests a minute

Pricing

Racing comes with the Pro and Elite plans, or you can get it on its own with the Racing plan at $99/mo. Compare plans →

Building for the Australian market more broadly? Our Australian bookmaker odds API covers AFL, NRL, NBL and every other sport from the same bookmakers. Also see the harness racing odds API and the greyhound odds API and the guide to comparing horse racing odds in Python.

Horse Racing Odds API FAQ

Which bookmakers does the horse racing odds API cover?

18 Australian bookmakers: Sportsbet, TAB, Ladbrokes, PointsBet, Betr, Unibet, PalmerBet, Amused, BetRight, NextBet, SwiftBet, Picklebet, ColossalBet, ChaseBet, Bet365, Dabble, 123bet, EliteBet. A race includes every one of them that has it priced.

Does it cover New Zealand racing?

Yes. New Zealand thoroughbred meetings like Ellerslie, Te Rapa, Trentham and Riccarton come through the same feed. Use countries=NZ for just New Zealand, countries=AU for just Australia, or leave it off for both.

Do you have futures or all-in markets, like Melbourne Cup odds weeks out?

No. Races show up about 24 hours before they start, so you get fixed win and place prices on the day, including big days like Melbourne Cup day at Flemington. Long-range futures markets are not part of the feed.

How are scratchings handled?

A scratched horse stays in the field with scratched set to true and win and place set to null. That happens as soon as the bookmaker marks it out, late scratchings included.

Do you also have harness and greyhound odds?

Yes. Same API, same key - add code=harness or code=greyhound to any request.

Which plans include racing?

Pro and Elite include it, or the Racing plan gives you racing on its own for $99/mo. It is the same access either way: every code, every bookmaker, 120 REST requests per minute and 3 WebSocket connections, with no credits.

Start building with horse racing odds

Live fixed win and place odds for every Australian and New Zealand thoroughbred race from 18 Australian bookmakers. One REST and WebSocket API, scratchings included.