18+ Only  |  Gambling can be addictive — please gamble responsibly  |  Gambling Help: 1800 858 858  |  GambleAware
Measured 15 Oct 2026 23:58 UTC · recomputed every 30 minutes

Australian racing odds coverage, measured

Not a marketing figure. This page runs a query against the production odds store and prints what it returns, with the SQL below it. Trailing 7-day window, Australian races only.

1,585AU races in window
15Bookmakers quoting
14Median books / race
46Price history (days)

How this was measured

Measured at 15 Oct 2026 23:58 UTC from race_snapshots on auodds_api — the production ingest store, change-only price capture. Window: 2026-10-08T23:58:50Z to 2026-10-15T23:58:50Z (7 days), filtered to country = 'AU'. A bookmaker "quoted a race" if it wrote at least one price for at least one runner in that race — one row per (race_id, bookmaker_key). The query took 4.79s and is recomputed at most every 30 minutes, so this page is served from cache and never waits on the database.

SELECT race_id, bookmaker_key, min(category), min(start_time) FROM race_snapshots WHERE start_time >= (now() AT TIME ZONE 'utc') - interval '7 days' AND start_time <= (now() AT TIME ZONE 'utc') AND country = 'AU' GROUP BY race_id, bookmaker_key

Machine-readable twin: /coverage-report.json — same numbers, same measured_at and method fields, CORS-open, cacheable for 30 minutes. Full product summary for language models: /llms-full.txt. Results completeness, archive integrity, uptime and the limits of every check sit beside this report on /data-quality.

Excluded from the table below, and why: betfair_ex_au — Ingested for internal reference only; withheld from customer responses pending a Betfair data licence.
pinnacle — Non-Australian reference book, not part of the AU racing comparison set.

Share percentages are stated against the 1,585 races at least one customer-served bookmaker quoted, not against the 1,585 races any connector touched — a share whose denominator includes races no customer can read is the wrong fraction.

Share of Australian races quoted, by bookmaker

The key column is what the API accepts in the bookmakers query parameter. Matching is case-insensitive, but a display name that differs from its key does not resolve — pass pointsbetau, not PointsBet.

BookmakerKey Races quoted Share of 1,585 Days quoting
TAB tab 1,557 98.2% 7 of 7
BetRight betright 1,550 97.8% 7 of 7
BetDeluxe betdeluxe 1,549 97.7% 7 of 7
TABtouch tabtouch 1,549 97.7% 7 of 7
Palmerbet palmerbet 1,547 97.6% 7 of 7
PointsBet pointsbetau 1,544 97.4% 7 of 7
NextBet (formerly PlayUp) playup 1,541 97.2% 7 of 7
Sportsbet sportsbet 1,533 96.7% 7 of 7
Unibet unibet 1,528 96.4% 7 of 7
Ladbrokes ladbrokes_au 1,506 95.0% 7 of 7
Neds neds 1,506 95.0% 7 of 7
bet365 bet365 1,387 87.5% 7 of 7
BetGold betgold 1,366 86.2% 7 of 7
BoostBet boostbet 1,366 86.2% 7 of 7
Betr betr_au 688 43.4% 4 of 7
78.4% on those days

"Days quoting" is the number of the window's 7 race days on which the book wrote at least one price. A book quoting on fewer days than the window holds either joined the panel, or was dark, part-way through the window; the share on the days it did quote is printed beneath so the two cases can be told apart. The window share stays the headline figure.

How many books quote the same race

Median 14, mean 13.70. The mean sits below the median because of a genuine thin tail — a small number of races (typically ones that jumped at the very edge of the window, or obscure meetings) carry only one or two books. Both are published rather than just the flattering one.

Books on the raceRacesShare
15 478 30.2%
14 700 44.2%
13 302 19.1%
12 40 2.5%
11 13 0.8%
10 2 0.1%
9 13 0.8%
7 1 0.1%
4 1 0.1%
3 4 0.3%
2 7 0.4%
1 24 1.5%

Per day, so you can see it is not one busy day

Race date (UTC)AU racesMedian booksMean books
2026-10-092491413.86
2026-10-102651413.54
2026-10-111941413.08
2026-10-122221413.11
2026-10-132161514.28
2026-10-142151514.87
2026-10-152241313.16

Racing codes in the window

951 greyhound · 358 horse · 276 harness. All three codes come through the same endpoints; filter with categories=horse,greyhound,harness.

New Zealand

Racing covers two countries, and this is the second one. The same query over the same 7-day window, with the same bookmakers excluded, run against country = 'NZ': 107 New Zealand races quoted by 13 bookmakers, a median of 12 books per race (mean 11.93) against 14 on an Australian race. New Zealand does not race every day, so a per-day row is missing rather than zero on a day with no NZ meeting.

Racing codes in the window

57 harness · 50 horse. This list is measured, not asserted: no New Zealand greyhound race has appeared in this store, so categories=greyhound with country=NZ returns nothing.

Share of New Zealand races quoted, by bookmaker

BookmakerNZ races quotedShare of 107
Palmerbet10699.1%
BetDeluxe10598.1%
Sportsbet10598.1%
BetRight10497.2%
Ladbrokes10497.2%
Neds10497.2%
PointsBet10497.2%
TAB10497.2%
TABtouch10497.2%
Unibet10497.2%
NextBet (formerly PlayUp)10295.3%
bet3659689.7%
Betr3431.8%

A book absent from this table quotes Australian racing and not New Zealand racing. The published predicate for these figures is SELECT race_id, bookmaker_key, min(category), min(start_time) FROM race_snapshots WHERE start_time >= (now() AT TIME ZONE 'utc') - interval '7 days' AND start_time <= (now() AT TIME ZONE 'utc') AND country = 'NZ' GROUP BY race_id, bookmaker_key

Per day

Race date (UTC)NZ racesMedian booksMean books
2026-10-09341211.97
2026-10-10201211.80
2026-10-11191210.05
2026-10-1311313.00
2026-10-14181313.00
2026-10-15151313.00

Britain and Ireland

The same query over the same 7-day window, with the same bookmakers excluded, run against country IN (GB, IE): 1,376 races quoted by 9 bookmakers (5 UK-licensed), a median of 4 books per race (mean 3.60) across 7 race days. Market page: UK & Irish racing odds API.

Eligible races and books per race, by country and code

CountryCodeRaces quotedMedian booksMean3+ books
GBgreyhound93033.4185.9%
GBthoroughbred23654.9691.1%
IEgreyhound13222.0230.3%
IEthoroughbred7844.4298.7%

A race is eligible when at least one customer-served bookmaker quoted it. The denominator of every share below is the 1,376 eligible races.

Share of races quoted, by bookmaker

BookmakerKeyLicenceRaces quotedShareDays quotingRaces closedFirst close in market
PointsBetpointsbetau AU 1,327 96.4% 7 of 7 1,308 (95.1%) 4 Aug 2026
William Hillwilliamhill GB 1,311 95.3% 7 of 7 1,304 (94.8%) 6 Oct 2026
Ladbrokes / Coral (UK)ladbrokes_uk GB 987 71.7% 7 of 7 982 (71.4%) 5 Oct 2026
TABtouchtabtouch AU 510 37.1% 7 of 7 473 (34.4%) 4 Aug 2026
bet365bet365 AU 404 29.4% 3 of 7 381 (27.7%) 13 Oct 2026
Betway (UK)betway_uk GB 293 21.3% 7 of 7 293 (21.3%) 6 Oct 2026
Palmerbetpalmerbet AU 46 3.3% 4 of 7 46 (3.3%) 5 Aug 2026
Paddy Power (UK)paddypower GB 40 2.9% 1 of 7 40 (2.9%) 15 Oct 2026
Sky Bet (UK)skybet GB 40 2.9% 1 of 7 40 (2.9%) 15 Oct 2026

"Licence" is the bookmaker's home market: an Australian book on this table quotes the meeting from Australia and is not part of the UK-licensed panel. "First close in market" is the first race that book closed here, read from the archive — the connector's launch date on this market, so a book with few days quoting is new, not failing. "Races closed" counts races the book held a closing line for inside the window.

Closing lines, results and field agreement

CountryCodeClosing lineResultsResult delay p50 / p90Field disagreementsFlagged rows
GBgreyhound 909 of 930 (97.7%) 499 of 917 (54.4%) 3.9 / 5.6 min 46 of 908 0
GBthoroughbred 228 of 236 (96.6%) 210 of 235 (89.4%) 7.5 / 10.4 min 1 of 215 0
IEgreyhound 124 of 132 (93.9%) 66 of 125 (52.8%) 4.0 / 7.2 min 3 of 97 0
IEthoroughbred 78 of 78 (100.0%) 75 of 78 (96.2%) 7.6 / 10.0 min 0 of 77 0

"Closing line" is the share of eligible races the archive holds a closing line for. "Results" counts stored results against archived races that started at least an hour ago; a code showing "—" has no result source yet, and its races carry prices only. "Result delay" is minutes from the scheduled start to the stored result. "Field disagreements" counts races two or more books closed where the books disagree on the number of runners after scratchings, the missing-or-unmatched-runner case. "Flagged rows" are races the archive marks as a possible venue split or duplicate, published rather than hidden.

Endpoints that answer for this market

  • GET /v1/racing/next-to-go?country=GB,IE — the live card, every bookmaker's win and place price per runner
  • GET /v1/racing/events?country=GB,IE — the upcoming card
  • GET /v1/racing/closing-lines?country=GB,IE&date=YYYY-MM-DD — the closing price of every runner at every bookmaker that quoted it
  • GET /v1/racing/price-history?race_id=… — the price path of one race, per bookmaker
  • GET /v1/racing/results?country=GB,IE — the finishing order
  • GET /v1/racing/form?race_id=… — the field with jockey, trainer, weight, draw and form, thoroughbreds

Known limits

  • The UK-licensed bookmakers publish each-way terms rather than a place market: their place_price is derived from those terms and labelled as such; the Australian books on the same race quote a place market.
  • Results carry the finishing order and each runner's starting price; no dividends, margins, race times or Rule 4 figures.
  • No exchange prices, Tote pools or ante-post markets.

Measured exactly as the Australian figures are: the same window, the same query shape, the same excluded bookmakers, country IN (GB, IE). A bookmaker's share is stated against the races at least one customer-served bookmaker quoted. 'Closes' counts races the book held a closing line for; 'first close' is the first race that book closed in this market, measured from the archive, which is the connector's launch date on the market. Results are measured against archived races that started at least an hour ago. The published predicate is SELECT race_id, bookmaker_key, min(category), min(start_time), min(country) FROM race_snapshots WHERE start_time >= (now() AT TIME ZONE 'utc') - interval '7 days' AND start_time <= (now() AT TIME ZONE 'utc') AND country IN ('GB', 'IE') GROUP BY race_id, bookmaker_key

South Africa

The same query over the same 7-day window, with the same bookmakers excluded, run against country IN (ZA): 61 races quoted by 5 bookmakers (4 SA-licensed), a median of 1 books per race (mean 1.92) across 5 race days. Market page: South African racing odds API.

Eligible races and books per race, by country and code

CountryCodeRaces quotedMedian booksMean3+ books
ZAthoroughbred6111.9226.2%

A race is eligible when at least one customer-served bookmaker quoted it. The denominator of every share below is the 61 eligible races.

Share of races quoted, by bookmaker

BookmakerKeyLicenceRaces quotedShareDays quotingRaces closedFirst close in market
PointsBetpointsbetau AU 61 100.0% 5 of 5 46 (75.4%) 5 Aug 2026
Betway (South Africa)betway_za ZA 16 26.2% 2 of 5 16 (26.2%) 14 Oct 2026
Easybeteasybet_za ZA 16 26.2% 2 of 5 16 (26.2%) 14 Oct 2026
Topbettopbet_za ZA 16 26.2% 2 of 5 16 (26.2%) 14 Oct 2026
Hollywoodbetshollywoodbets ZA 8 13.1% 1 of 5 8 (13.1%) 15 Oct 2026

"Licence" is the bookmaker's home market: an Australian book on this table quotes the meeting from Australia and is not part of the SA-licensed panel. "First close in market" is the first race that book closed here, read from the archive — the connector's launch date on this market, so a book with few days quoting is new, not failing. "Races closed" counts races the book held a closing line for inside the window.

Closing lines, results and field agreement

CountryCodeClosing lineResultsResult delay p50 / p90Field disagreementsFlagged rows
ZAthoroughbred 46 of 61 (75.4%) 8 of 50 (16.0%) 7.6 / 9.5 min 0 of 16 0

"Closing line" is the share of eligible races the archive holds a closing line for. "Results" counts stored results against archived races that started at least an hour ago; a code showing "—" has no result source yet, and its races carry prices only. "Result delay" is minutes from the scheduled start to the stored result. "Field disagreements" counts races two or more books closed where the books disagree on the number of runners after scratchings, the missing-or-unmatched-runner case. "Flagged rows" are races the archive marks as a possible venue split or duplicate, published rather than hidden.

Endpoints that answer for this market

  • GET /v1/racing/next-to-go?country=ZA — the live card, every bookmaker's win and place price per runner
  • GET /v1/racing/events?country=ZA — the upcoming card
  • GET /v1/racing/closing-lines?country=ZA&date=YYYY-MM-DD — the closing price of every runner at every bookmaker that quoted it
  • GET /v1/racing/price-history?race_id=… — the price path of one race, per bookmaker
  • GET /v1/racing/results?country=ZA — the finishing order

Known limits

  • No official starting price: a result ranks the placed runners and lists the rest of the field unranked, and each bookmaker's own last price sits in the closing-line archive, never on the result.
  • Betway's South African races carry no each-way market, so its legs have no place_price; Easybet and Topbet quote one.
  • Race distance and going are present only where a bookmaker on the race publishes them; the South African books do not.
  • No Tote pools, dividends or ante-post markets.

Measured exactly as the Australian figures are: the same window, the same query shape, the same excluded bookmakers, country IN (ZA). A bookmaker's share is stated against the races at least one customer-served bookmaker quoted. 'Closes' counts races the book held a closing line for; 'first close' is the first race that book closed in this market, measured from the archive, which is the connector's launch date on the market. Results are measured against archived races that started at least an hour ago. The published predicate is SELECT race_id, bookmaker_key, min(category), min(start_time), min(country) FROM race_snapshots WHERE start_time >= (now() AT TIME ZONE 'utc') - interval '7 days' AND start_time <= (now() AT TIME ZONE 'utc') AND country IN ('ZA') GROUP BY race_id, bookmaker_key

Update cadence, last 24 hours

connector_poll_age is how old the connector's last successful read of the bookmaker was. price_age is how old the PRICES are. Capture is change-only, so a price can be minutes old while the poll confirming it is seconds old. They are different statistics; do not quote one as the other. A 24-hour window is used deliberately: an instantaneous sample taken outside the Australian card only catches the books quoting at that hour, which is how a freshness figure ends up time-of-day biased. Every quote the API returns carries its own age_seconds — read that rather than any median on this page.

BookmakerKey Poll age p50 Poll age p90 Price age p50 Samples
Sportsbet sportsbet 8s 19s 150s 778
bet365 bet365 9s 31s 158s 1,184
PointsBet pointsbetau 9s 19s 109s 1,418
TABtouch tabtouch 9s 20s 219s 1,006
Betfair Exchange (not served) betfair_ex_au 10s 21s 32s 778
BetRight betright 10s 21s 386s 778
Ladbrokes ladbrokes_au 10s 21s 139s 778
BetDeluxe betdeluxe 11s 21s 168s 750
BetGold betgold 11s 19s 454s 73
Neds neds 11s 22s 138s 778
NextBet (formerly PlayUp) playup 11s 21s 139s 777
TAB tab 11s 21s 289s 778
Unibet unibet 11s 21s 240s 770
BoostBet boostbet 12s 19s 454s 73
Palmerbet palmerbet 13s 26s 159s 913
Ladbrokes / Coral (UK) ladbrokes_uk 15s 27s 193s 645
Betr betr_au 16s 30s 293s 778
Easybet easybet_za 17s 32s 193s 95
Topbet topbet_za 17s 32s 313s 95
Betway (South Africa) betway_za 21s 40s 180s 95
Betway (UK) betway_uk 24s 44s 213s 347
Hollywoodbets hollywoodbets 24s 43s 491s 95
William Hill williamhill 26s 46s 453s 645
Sky Bet (UK) skybet 46s 85s 184s 347
Paddy Power (UK) paddypower 47s 84s 160s 347

Price history depth

/v1/racing/price-history reaches back to 31 Aug 2026 23:15 UTC — 46 days as at 2026-10-15. The price store spans the full 45-day retention horizon it purges to, so its earliest race (2026-08-31) moves forward every day. Closing lines and price paths outlive the purge in the permanent archive (/v1/racing/closing-lines). Target retention is 45 days.

Verify this without an API key

Three endpoints need no authentication and return live data, so nothing on this page has to be taken on trust:

curl 'https://api.puntersedge.online/v1/demo/racing/next-to-go' curl 'https://api.puntersedge.online/v1/demo/best-odds' curl 'https://api.puntersedge.online/v1/uptime' curl 'https://puntersedge.online/coverage-report.json'

Related

API coverage — which sports and bookmakers exist, and the distinct book count per sport (a different statistic from the per-race depth above).
Bookmaker × sport matrix — every combination, laid out.
Australian Racing Market Report — the weekly companion: best-price share by bookmaker, book percentage at close, steamers and drifters.
Live status — uptime and per-connector health right now.
Pricing · Get a free API key · API platform · /llms-full.txt · /coverage-report.json

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