Krok Odds
Guide

Best Racing Odds API Australia 2026: Thoroughbred, Harness & Greyhound

Every global odds API skips Australian racing. Here is what a complete racing data API actually needs — fields, fixed odds, exchange, tote, sectionals, connections — and who carries it.

Daniel Pham
Daniel Pham
Quantitative Strategy Lead
16 min read·Published 1 Sept 2026

Ask where to get Australian racing data programmatically and you get a short, unsatisfying list. Most global odds APIs carry no Australian racing at all. Most “AU racing” feeds turn out to be a meeting list with a few fixed-odds prices bolted on.

Which is strange, because Australian racing turnover rivals all sports combined. The demand is there; the data isn't. This piece is about what a real racing API needs to contain, why it's hard, and what each provider actually delivers.

Why racing data is harder than sports data

A sports fixture is stable. Two teams, a start time, a handful of markets. You can poll it as often as you like and nothing structural changes.

A race is not stable. Between the fields dropping and the jump:

  • Runners get scratched — and every remaining runner's price moves, plus deductions apply to bets already placed.
  • Jockeys change — sometimes minutes out, which moves the market.
  • Track condition changes — Good 4 to Soft 6 re-rates the whole field.
  • Barriers, weights and gear changes all feed the price.
  • Three separate pricing systems run in parallel — fixed odds per bookmaker, tote pools, and the exchange — and they disagree.
  • Dozens of meetings run simultaneously across three codes, on a schedule that shifts all day.

Then the race runs and you need results, margins, sectionals, tote dividends and BSP within minutes. That's an entirely different ingestion problem to “fetch the AFL card twice a minute”, and it's why most odds APIs simply skip it.

What a complete racing API must carry

Use this as a checklist when evaluating any provider — including us.

1. All three codes

Thoroughbred, harness and greyhound. Thoroughbred-only feeds are common; harness and greyhound get dropped because the data sources are messier and the fields differ (box numbers instead of barriers for greyhounds, handicap distances for harness). If a feed covers one code, you cannot build a next-to-go product with it, because next-to-go is inherently cross-code.

2. Full fields, not just names

Barrier, weight, class, jockey, trainer, gear changes, and live scratchings. Without scratchings your prices are wrong within minutes of publication.

3. Fixed odds from many books, not a few

Win and place, per bookmaker, on a fast cycle. For racing odds comparison the value is entirely in breadth — the point of the product is finding the book that is out of line, and a feed covering four books cannot do that.

4. Exchange pricing and BSP

Betfair Exchange back and lay prices, matched volume, and BSP (Betfair Starting Price). BSP is the price at the jump, set by the exchange with no bookmaker margin, and it's the standard sharp benchmark for Australian racing. Without it you cannot measure closing-line value on a racing bet, and you cannot compute the racing arb — Betfair SP against a fixed-odds book's win or place price.

5. Tote pools and dividends

Pool totals, jackpots, and dividends including exotics — Exacta, Trifecta, First Four, Quaddie. Tote is a completely separate price discovery mechanism to fixed odds, and for exotic strategies it's the only one that exists.

6. Form, sectionals and connections

This is where most feeds stop and where actual modelling starts: last-five form lines, career splits by distance / track / going / barrier, sectional times (600m, 400m, 200m) with closing ratios, speed maps, and jockey and trainer strike rates — including combination stats, because a jockey's strike rate for a particular trainer is a materially different number to their overall rate.

7. Market movers

Opening price versus current price, per book. Firming and drifting runners. Money movement is the most-watched signal in racing and it needs the opening price stored, not just the current one.

8. Historical results and odds archives

Results with finishing order, margins, barrier, weight and BSP; plus price-fluctuation curves showing open → every fluc → close. Without an archive you cannot backtest, cannot train a model, and cannot audit your own tips.

Who carries what

Racing capabilityKrok Odds
Thoroughbred✅
Harness✅
Greyhound✅
Full runner fields✅
Fixed odds — 65+ AU books✅
Betfair back/lay✅
BSP✅
Tote pools & dividends✅
Sectional times✅
Jockey/trainer strike rates✅
Combination stats✅
Replay video links✅
Market movers✅
Racing arbs (BSP vs fixed)✅
Odds-history fluc curves✅
Historical results✅ 2016+
Model ratings / fair odds✅

The Krok Odds racing endpoints

Base URL https://krokodds.com.au/api/v1, auth via an X-API-Key header. Every endpoint below is available on the free tier.

  • /racing/meetings — all AU meetings across all three codes, with runners, fixed odds per book, Betfair prices, tote, ratings, replay video and form
  • /racing/runner-form — barrier, weight, class, jockey and trainer strike rates, draw bias, speed maps
  • /racing/runner-stats — career win/place rates split by distance, track, going and barrier draw
  • /racing/sectionals/{horseCode} — 600m/400m/200m splits, speed metrics, closing ratio, career profile
  • /racing/connections — jockey and trainer profiles, strike rates, ROI, recent form, track stats
  • /racing/connections/combinations — jockey × trainer, jockey × horse and trainer × horse pair strike rates
  • /racing/connections/season-stats — season-by-season performance
  • /racing/movers — opening versus current price per book, firming and drifting
  • /racing/odds-history — full fluc curves per runner: open, every fluctuation, close, SP, BSP, plus per-bookmaker curves
  • /racing/tote-pools — pool totals, jackpots, dividends, exotics
  • /racing/arbs — exchange arbs between Betfair SP and fixed-odds win/place
  • /racing/ratings — Krok model ratings: fair odds, form-confidence scores, Krok's Pick
  • /racing/results and /racing/results/{date} — settled results with finishing order, margins, per-runner detail, dividends
  • /racing/futures — futures and all-in markets
  • /racing/international — international racing feed
  • /exchange?source=bsp — settled BSP, matched volume, implied probabilities
  • /odds-feed/racing, /odds-feed/racing/movements, /odds-feed/racing/history — raw per-book racing feed

What you can build with it

Racing odds comparison site

/racing/meetings gives you every meeting, race and runner with per-book fixed odds already normalised. Add /racing/movers for a money-movement column and /exchange for a Betfair column. That's a complete racing odds comparison board in a single integration.

Next-to-go widget

Filter /racing/meetings by start time across all three codes. Because codes share one response shape, a cross-code next-to-go strip is a sort, not three integrations.

Form guide app

/racing/runner-form plus /racing/runner-stats plus /racing/sectionals/{horseCode} plus /racing/connections. Replay video links come back on the form payload, so you get vision without a separate media deal.

Racing model pipeline

Train on /racing/results back to 2016, features from /racing/runner-stats, /racing/sectionals and /racing/connections/combinations. Validate against BSP as the sharp close — if your model can't beat BSP, it can't beat the market. We do exactly this ourselves; the write-up is in We built an ML model for Australian racing.

Racing arbitrage scanner

/racing/arbs does it for you — Betfair SP against fixed-odds win and place across 65+ AU books. This particular arb is close to unique to Australian racing and needs both legs from one source to be practical.

Spring Carnival and feature-race coverage

/racing/futures carries all-in markets, so Melbourne Cup, Cox Plate, Caulfield Cup and The Everest markets are available months out, not just on race day.

Data freshness and reliability

  • Live scrape during race hours, with movers updated continuously. Scratchings and jockey changes flow through on the same cycle.
  • Up to 5-minute server-side cache on every tier, so you're within minutes of the live market. SSE streaming removes polling entirely.
  • Append-only odds archive, month-partitioned and never pruned — one row per bookmaker price per cycle.
  • Results and archives back to 2016, 870,000+ records, growing daily.

Pricing

A$49/month for the API tier: every racing endpoint, every sports endpoint, opportunities, historical archives, bulk export, webhooks, SSE streaming. One paid tier, nothing held back for an upsell.

The free tier carries every live racing endpoint at 50 credits/month and 5 requests/minute — genuinely enough to build and demo a racing product before you spend anything. Racing odds-history is limited to the last 14 days on free; the API tier opens the full archive.

Getting started

# Free key: https://krokodds.com.au/api-access

# Today's meetings — all three codes
curl -H "X-API-Key: YOUR_KEY" \
  https://krokodds.com.au/api/v1/racing/meetings

# Market movers
curl -H "X-API-Key: YOUR_KEY" \
  https://krokodds.com.au/api/v1/racing/movers

# Betfair Starting Price
curl -H "X-API-Key: YOUR_KEY" \
  "https://krokodds.com.au/api/v1/exchange?source=bsp"

# Racing arbs — Betfair SP vs fixed odds
curl -H "X-API-Key: YOUR_KEY" \
  https://krokodds.com.au/api/v1/racing/arbs

Full endpoint reference and response shapes are on the API docs, and the machine-readable summary for AI agents lives at https://krokodds.com.au/llms.txt.

Related reading

Daniel Pham
About the author
Daniel Pham
Quantitative Strategy Lead

Daniel writes about the maths underneath advantage betting — expected value, Kelly sizing, closing line value, bankroll theory. Translates the theoretical side into practical decisions AU punters can actually apply.