18+ Only  |  Gambling can be addictive — please gamble responsibly  |  Gambling Help: 1800 858 858  |  GambleAware
20 sport keys · 15 Australian racing bookmakers · Horse, greyhound & harness racing

API Coverage

What's live, what's seasonal, and exactly which bookmakers are covered. Per-sport counts measured 6 Oct 2026 04:30 UTC, recomputed every 30 minutes.

This page is the catalogue — which sports and bookmakers exist. For a dated measurement of how much of the Australian card each bookmaker actually quotes, recomputed every 30 minutes with the SQL published beside it, see the live coverage report (JSON).

Sports coverage

Live odds pages, one per sport, no key needed: AFL · NRL · NBA · Cricket · Tennis · Rugby Union · EPL · A-League · embeddable widget.

Status: Live = at least one bookmaker quoted the sport in the measured window, Seasonal = the key is served but nothing is quoting it right now. Both are derived from the measurement, not set by hand.

The Bookmakers column counts the distinct bookmakers that quoted the sport at all. It is not how many quote a single match — no book covers every fixture, so per-event depth is lower. Measured 6 Oct 2026 04:30 UTC: Rugby Union had 6 books across the sport, but no single Rugby Union fixture carried more than 6 and the average quoted fixture carried 3.46. Only Rugby Union, NBA, NRL, NFL, College Football, AFLW, WNBA, Super League, NHL and EPL carry more than one book on at least 50% of their quoted fixtures.

Sport API Key Markets Bookmakers Fixtures in window Status
Rugby Union live odds → rugby_union h2h, spreads, totals 6 81 LIVE
NBA live odds → nba h2h, spreads, totals 6 34 LIVE
NRL live odds → nrl h2h, spreads, totals 6 8 LIVE
NFL nfl h2h, spreads, totals 5 46 LIVE
Tennis ATP live odds → tennis_atp h2h 4 2,115 (2,111 quoted) LIVE
Tennis WTA tennis_wta h2h 4 1,337 LIVE
College Football ncaaf h2h, spreads, totals 4 227 LIVE
AFLW aflw h2h, spreads, totals 4 18 LIVE
WNBA wnba h2h, totals 4 15 LIVE
MLB mlb h2h, spreads, totals 3 95 LIVE
NRLW nrlw h2h, spreads, totals 3 3 LIVE
Super League super_league h2h, spreads 3 1 LIVE
Soccer (Other Competitions) soccer_other h2h 2 915 (898 quoted) LIVE
Basketball (Other Competitions) basketball_other h2h, spreads 2 217 LIVE
NHL nhl h2h, spreads, totals 2 59 LIVE
EPL live odds → soccer_epl h2h 2 20 LIVE
Cricket (Other Competitions) cricket_other h2h 1 71 (68 quoted) LIVE
MMA/UFC mma h2h 1 52 LIVE
Test Cricket live odds → cricket_test h2h 1 1 LIVE
AFL live odds → afl — 0 0 SEASONAL

A-League (1 books, 11 fixtures) is ingested and quoted by a served bookmaker but is not reachable: the API 404s the key. It is measured here and excluded from the coverage table rather than counted as coverage.

Measured 6 Oct 2026 04:30 UTC, recomputed every 30 minutes. Window: fixtures that started within the last 7 days or are still to come, excluding bookmakers withheld from customer responses. Predicate you can re-run: SELECT e.sport_key, count(DISTINCT m.bookmaker_key) FROM events e JOIN markets m ON m.event_id = e.id WHERE e.commence_time >= (now() AT TIME ZONE 'utc') - interval '7 days' AND m.bookmaker_key NOT IN ('betfair_ex_au','pinnacle') GROUP BY 1

Bookmaker coverage — 15 served

Measured 2026-10-06 over a trailing 7-day window, 15 Australian bookmakers quoted racing prices a customer key can read. 16 connectors quoted at all: the difference is Betfair Exchange and Pinnacle, ingested for internal reference and withheld from customer responses. Quote the served figure unless you mean the other one.

All bookmakers are Australian-licensed fixed-odds bookmakers. Share is that book's percentage of the 1,614 Australian races served to customer keys over the trailing 7 days, measured 2026-10-06.

Sportsbet
sportsbet
96.4% of races · Active
BetDeluxe
betdeluxe
95.7% of races · Active
BetGold
betgold
95.2% of races · Active
BoostBet
boostbet
95.1% of races · Active
TAB
tab
95.1% of races · Active
BetRight
betright
94.9% of races · Active
PointsBet
pointsbetau
94.8% of races · Active
TABtouch
tabtouch
94.6% of races · Active
Palmerbet
palmerbet
94.5% of races · Active
Betr
betr_au
94.4% of races · Active
Unibet
unibet
93.5% of races · Active
NextBet (formerly PlayUp)
playup
93.1% of races · Active
Ladbrokes
ladbrokes_au
91.9% of races · Active
Neds
neds
91.9% of races · Active
bet365
bet365
2.2% of races · Active

Bookmaker keys are passed in the bookmakers query parameter. Omit to get all bookmakers.

Racing coverage

Horse Racing
category=horse
Australia-wide, next-to-go
Live
Greyhound Racing
category=greyhound
Australia-wide, next-to-go
Live
Harness Racing
category=harness
Australia-wide, next-to-go
Live

Racing endpoint: GET /v1/racing/next-to-go — returns next N races with runners and current odds. Racing polling is per book and it is not uniform. Measured over the trailing 7 days to 2026-10-06 through the 10:00–21:00 AEST card, the median age of a connector's last successful read is 8–17s for fourteen of the fifteen served books, 100s for bet365. There is no single racing poll interval to quote: the slowest served book is 12x the fastest, so any blanket figure is wrong for a named book. Every quote carries its own age_seconds — that is the number to gate on. Per-book figures are published on the coverage report.

Median age of each connector's last successful read, measured 2026-10-06 over the trailing 7 days.
Bookmaker Through the card (p50) Overnight (p50)
Sportsbet 8s 6s
BetRight 11s 7s
Ladbrokes 11s 7s
PointsBet 11s 6s
TAB 11s 8s
BetDeluxe 12s 8s
BetGold 12s 8s
BoostBet 12s 8s
Neds 12s 8s
NextBet (formerly PlayUp) 12s 8s
TABtouch 12s 6s
Unibet 12s 8s
Palmerbet 14s 14s
Betr 17s 18s
bet365 100s None
ladbrokes_uk None 17s

connector_poll_age over the trailing 7 days, split at 10:00-21:00 AEST (the Australian card) against the rest of the day. This is how old the connector's last successful READ of the book was, not how old the prices are; capture is change-only, so they are different statistics.

Endpoint matrix

All endpoints are under https://puntersedge.online/api and authenticate with the X-API-Key header. Full interactive reference: Swagger docs. The API publishes 84 paths as at 2026-10-06; the schema at https://api.puntersedge.online/openapi.json is the list, and it changes — it went from 40 to 42 on 2026-08-18.

Endpoint Purpose Cost Plans
Account
GET /v1/account Your account: email, plan, password, billing and consent status
POST /v1/account/marketing Turn promotional emails on or off for your account
POST /v1/account/password Set or change your account password
GET / POST /v1/billing/overage Overage: state, rate and ceiling
GET / POST /v1/billing/portal Self-service billing portal link
GET / POST /v1/billing/upgrade-link A signed link to your prorated upgrade page
GET /v1/health Connector health status
POST /v1/keys Create a new API key (admin only)
GET /v1/keys/info API key metadata
POST /v1/keys/ip-whitelist Set IP whitelist for your key Business, Platform, Scale and Enterprise
POST /v1/keys/resend Email yourself a fresh API key
POST /v1/keys/reveal Issue a fresh key and return it (signed-in console only)
POST /v1/keys/rotate Rotate your API key
GET / POST /v1/keys/team List this account's keys Business, Platform, Scale and Enterprise
DELETE / PATCH /v1/keys/team/{key_id} Revoke a team key Business, Platform, Scale and Enterprise
POST /v1/login Log in with your email and password
POST /v1/login/exchange Redeem a login link for a console session
POST /v1/login/request Email yourself a one-time login link for the key console
POST /v1/logout End a console session
POST /v1/logout/all Sign out of every device
POST /v1/password/forgot Email yourself a one-time password reset link
POST /v1/password/reset Choose a new password from a reset link
GET /v1/uptime Public uptime stats
GET /v1/usage Check API usage
GET /v1/usage/analytics Usage breakdown by endpoint
GET / POST /v1/widgets List this account's widgets Platform and Enterprise
DELETE / GET / PATCH /v1/widgets/{widget_id} One widget Platform and Enterprise
Arb & Value
GET /v1/arb/best-prices Best prices comparison 2 credits
GET /v1/arb/lines Spreads/totals line arb 3 credits
GET /v1/arb/sports Sports arb scanner 3 credits
Best Odds
GET /v1/best-odds/{sport_key} Best price per selection 3 credits
Bulk data
GET /v1/bulk/datasets Bulk dataset catalogue Business, Platform, Scale and Enterprise
GET /v1/bulk/{dataset}/{period} Download one dataset file 20 credits or 100 credits Business, Platform, Scale and Enterprise
Data Quality
GET /v1/data-quality/audit/latest Latest bookmaker audits 1 credit
POST /v1/data-quality/audit/run Run bookmaker audit
GET /v1/data-quality/audit/{run_id}/results Audit result detail
GET /v1/data-quality/summary Data quality summary 1 credit
Health
GET /v1/health/connectors Per-connector freshness 1 credit
Racing
GET /v1/racing/acceptances Full-day AU thoroughbred acceptance card: every meeting, race and runner 2 credits
GET /v1/racing/best-odds Best racing price per runner across books 3 credits
GET /v1/racing/changes Races and prices that changed since a timestamp 2 credits
POST /v1/racing/clv Score bets against the closing line (CLV) 5 credits Plus, Business, Platform, Scale and Enterprise
GET /v1/racing/consensus The market consensus on one race: margin-free probability per runner 3 credits
GET /v1/racing/events Upcoming race list 1 credit
GET /v1/racing/form Every runner in one race with its recent runs, from our own results 3 credits
GET /v1/racing/greyhounds/form Greyhound form history for one dog, from our own results 3 credits
GET /v1/racing/greyhounds/stats Greyhound record by track, distance, box or grade, from our own results 3 credits
POST /v1/racing/horses/backfill Queue a batch of horses for paced form collection 3 credits Plus, Business, Platform, Scale and Enterprise
DELETE / GET /v1/racing/horses/backfill/{job_id} Progress of a backfill job Plus, Business, Platform, Scale and Enterprise
GET /v1/racing/horses/backfill/{job_id}/results Collect the form of horses this job has delivered Plus, Business, Platform, Scale and Enterprise
GET /v1/racing/horses/form Thoroughbred form, career record and profile for one horse 3 credits
GET /v1/racing/horses/runs One thoroughbred's runs in our own settled results 3 credits
GET /v1/racing/intelligence Market intelligence on one race: consensus at fixed marks, time-anchored moves, breadth, first mover, signal 3 credits
GET /v1/racing/intelligence/scan Scan the live window for runners that moved: time-anchored, breadth-gated 5 credits Plus, Business, Platform, Scale and Enterprise
GET /v1/racing/jockeys/stats Jockey premiership leaderboards and lookup 2 credits
GET /v1/racing/markets Every market on one race: win, place, Top 2/3/4 and exotic dividends 2 credits Plus, Business, Platform, Scale and Enterprise
GET /v1/racing/movers Racing steamers and drifters 3 credits
GET /v1/racing/next-to-go Next races to run 2 credits or 3 credits or 4 credits
GET /v1/racing/price-history Racing price history / closing line 5 credits
GET /v1/racing/results Settled race results 2 credits
GET /v1/racing/results/coverage What the results field coverage actually is 1 credit
GET /v1/racing/track-conditions Track condition, weather and rail: current state and today's change log 1 credit
GET /v1/racing/trainers/stats Trainer premiership leaderboards and lookup 2 credits
GET /v1/racing/venues Canonical venue directory 1 credit
Racing Archive
GET /v1/racing/closing-lines Permanent closing-line and result archive 5 credits or 20 credits Standard, Plus, Business, Platform, Scale and Enterprise
GET /v1/racing/closing-lines/coverage What the closing-line archive actually holds 1 credit
GET /v1/racing/market-summary The market's path per runner, stored at the jump: consensus at fixed marks, moves, breadth, first mover, signal
GET /v1/racing/price-paths Bulk export of the permanent price-movement archive 5 credits or 20 credits Plus, Business, Platform, Scale and Enterprise
Referrals
GET / POST /v1/referral Your referral link and earnings
Sandbox (no key)
GET /v1/demo/best-odds Sample best-odds + arb detection (no key required)
GET /v1/demo/book-sport Live book+sport snapshot (no key; powers SEO page differentiation)
GET /v1/demo/racing/next-to-go Sample next-to-go races (no key required)
Signup
POST /v1/signup Create API key or start paid checkout
Sports
GET /v1/sports List available sports 1 credit
GET /v1/sports/{sport_key}/closing-lines Closing price and line per bookmaker, with the consensus 5 credits Standard, Plus, Business, Platform, Scale and Enterprise
GET /v1/sports/{sport_key}/odds Get odds by sport
GET /v1/sports/{sport_key}/odds/history Historical odds snapshots 5 credits Standard, Plus, Business, Platform, Scale and Enterprise
GET /v1/sports/{sport_key}/odds/movements Price movement feed 5 credits Standard, Plus, Business, Platform, Scale and Enterprise
Webhooks
GET / POST /v1/webhooks List Webhooks Plus, Business, Platform, Scale and Enterprise
DELETE /v1/webhooks/{webhook_id} Delete Webhook
GET /v1/webhooks/{webhook_id}/deliveries List Webhook Deliveries
POST /v1/webhooks/{webhook_id}/test Test Webhook Plus, Business, Platform, Scale and Enterprise

Credit cost is deducted per successful call, read from the API's own check_and_deduct calls on 2026-10-06. An empty Cost cell means no constant cost is declared for that path — either the call bills nothing or it is priced per request, as /v1/sports/{sport_key}/odds is, which charges per requested market type. An empty Plans cell means no plan-gate constant names that path; it is not a statement that every plan may call it, and a few administrative paths enforce their own restriction inside the handler. The authoritative, machine-readable list is the OpenAPI schema.

  • Platform and Enterprise reach /v1/bulk/datasets, /v1/bulk/{dataset}/{period}, /v1/internal/widget/fill, /v1/keys/ip-whitelist, /v1/keys/team, /v1/keys/team/{key_id}, /v1/racing/closing-lines, /v1/racing/clv, /v1/racing/horses/backfill, /v1/racing/horses/backfill/{job_id}, /v1/racing/horses/backfill/{job_id}/results, /v1/racing/intelligence/scan, /v1/racing/markets, /v1/racing/price-paths, /v1/sports/{sport_key}/closing-lines, /v1/sports/{sport_key}/odds/history, /v1/sports/{sport_key}/odds/movements, /v1/webhooks, /v1/webhooks/{webhook_id}/test, /v1/widgets and /v1/widgets/{widget_id}.
  • Business and Scale reach /v1/bulk/datasets, /v1/bulk/{dataset}/{period}, /v1/keys/ip-whitelist, /v1/keys/team, /v1/keys/team/{key_id}, /v1/racing/closing-lines, /v1/racing/clv, /v1/racing/horses/backfill, /v1/racing/horses/backfill/{job_id}, /v1/racing/horses/backfill/{job_id}/results, /v1/racing/intelligence/scan, /v1/racing/markets, /v1/racing/price-paths, /v1/sports/{sport_key}/closing-lines, /v1/sports/{sport_key}/odds/history, /v1/sports/{sport_key}/odds/movements, /v1/webhooks and /v1/webhooks/{webhook_id}/test and are 403ed on /v1/internal/widget/fill, /v1/widgets and /v1/widgets/{widget_id}.
  • Plus reach /v1/racing/closing-lines, /v1/racing/clv, /v1/racing/horses/backfill, /v1/racing/horses/backfill/{job_id}, /v1/racing/horses/backfill/{job_id}/results, /v1/racing/intelligence/scan, /v1/racing/markets, /v1/racing/price-paths, /v1/sports/{sport_key}/closing-lines, /v1/sports/{sport_key}/odds/history, /v1/sports/{sport_key}/odds/movements, /v1/webhooks and /v1/webhooks/{webhook_id}/test and are 403ed on /v1/bulk/datasets, /v1/bulk/{dataset}/{period}, /v1/internal/widget/fill, /v1/keys/ip-whitelist, /v1/keys/team, /v1/keys/team/{key_id}, /v1/widgets and /v1/widgets/{widget_id}.
  • Standard reach /v1/racing/closing-lines, /v1/sports/{sport_key}/closing-lines, /v1/sports/{sport_key}/odds/history and /v1/sports/{sport_key}/odds/movements (/v1/racing/closing-lines clamped to the last 90 days) and are 403ed on /v1/bulk/datasets, /v1/bulk/{dataset}/{period}, /v1/internal/widget/fill, /v1/keys/ip-whitelist, /v1/keys/team, /v1/keys/team/{key_id}, /v1/racing/clv, /v1/racing/horses/backfill, /v1/racing/horses/backfill/{job_id}, /v1/racing/horses/backfill/{job_id}/results, /v1/racing/intelligence/scan, /v1/racing/markets, /v1/racing/price-paths, /v1/webhooks, /v1/webhooks/{webhook_id}/test, /v1/widgets and /v1/widgets/{widget_id}.
  • Free and Hobby reach no gated endpoint (403 on /v1/bulk/datasets, /v1/bulk/{dataset}/{period}, /v1/internal/widget/fill, /v1/keys/ip-whitelist, /v1/keys/team, /v1/keys/team/{key_id}, /v1/racing/closing-lines, /v1/racing/clv, /v1/racing/horses/backfill, /v1/racing/horses/backfill/{job_id}, /v1/racing/horses/backfill/{job_id}/results, /v1/racing/intelligence/scan, /v1/racing/markets, /v1/racing/price-paths, /v1/sports/{sport_key}/closing-lines, /v1/sports/{sport_key}/odds/history, /v1/sports/{sport_key}/odds/movements, /v1/webhooks, /v1/webhooks/{webhook_id}/test, /v1/widgets and /v1/widgets/{widget_id}).

Data refresh rates

Sports odds Re-read from each bookmaker we poll directly, with a 2-minute pause between passes; pushed prices as each push arrives Served from a rolling 6-hour window; every quote carries its own age_seconds
Best-odds comparison Derived on request from latest cached odds Same as sports odds freshness
Arb & value signals Computed on request from the latest cached bookmaker prices Verify legs before staking; prices move
Racing next-to-go 8–17s through the card for 14 of 16 served books Racing polling is per book and it is not uniform. Measured over the trailing 7 days to 2026-10-06 through the 10:00–21:00 AEST card, the median age of a connector's last successful read is 8–17s for fourteen of the fifteen served books, 100s for bet365. There is no single racing poll interval to quote: the slowest served book is 12x the fastest, so any blanket figure is wrong for a named book. Every quote carries its own age_seconds — that is the number to gate on.
Sport list On-demand Updated when new sports are added

This is not real-time tick data. Refresh rates depend on upstream bookmaker API availability and rate limits. Do not rely on this data for high-frequency or latency-sensitive trading.

Get free API key → Code examples Pricing
This site contains wagering-related analysis and is intended for Australian users aged 18+. Gambling involves risk. Please gamble responsibly.