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

PuntersEdge Developers

Sports Odds API — Australia

Multi-bookmaker Australian sports odds in one API call. AFL, NRL, NBA, WNBA, Tennis, Cricket and more — with best-price detection and arbitrage flagging built in.

List available sports

GET https://api.puntersedge.online/v1/sports
Header: X-API-Key: YOUR_KEY

Returns an array of sport keys (afl, nrl, nba, wnba, tennis_atp, cricket_test, …) with display names. Only active sports are listed; the key you pass to every other endpoint is this exact string. soccer_epl serves the English Premier League; other soccer competitions sit under soccer_other.

Get odds for a sport

GET /api/v1/sports/{sport_key}/odds
  ?markets=h2h              # h2h (head-to-head), spreads, totals
  &bookmakers=sportsbet,tab,pointsbetau     # optional filter

# Example: NRL head-to-head, all bookmakers
GET /api/v1/sports/nrl/odds?markets=h2h

Returns an array of events with bookmaker odds arrays nested by outcome.

bookmakers takes the exact key from each bookmaker object — sportsbet, tab, ladbrokes_au, pointsbetau, palmerbet, betright. Matching is exact but case-insensitive, and an unrecognised key returns 422 with the valid list inline and costs no credits — the same contract markets has always had. Until 2026-08-18 it did not: passing ladbrokes instead of ladbrokes_au silently narrowed the response to nothing and billed for it.

Best-price and arbitrage endpoint

GET /api/v1/best-odds/{sport_key}

# Returns:
# - best_bookmaker + best_price per outcome
# - arb_exists: true if cross-book arbitrage exists
# - arb_profit_pct: estimated theoretical arbitrage margin % (not guaranteed)

Supported sports and bookmaker count

SportKeyBookmakers
NRLnrl6 (SB, TAB, LB, PB, Palmer, BetRight)
AFLafl5 (SB, TAB, PB, Palmer, BetRight)
WNBAwnba5 (SB, LB, PB, Palmer, BetRight)
NBAnba3 (TAB, LB, Palmer)
NRLWnrlw2 (SB, PB)
Tennis ATP / WTAtennis_atp, tennis_wta3 (Palmer, PB, SB)
Test Cricketcricket_test1 (SB)
NFLnfl2 (Palmer, BetRight)
Soccer — other competitionssoccer_other2 (PB, SB)
AFLW, MLB, NHL, College Football, MMA/UFC, Rugby Union, Basketball (other), Cricket (other)aflw, mlb, nhl, ncaaf, mma, rugby_union, basketball_other, cricket_other1

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.

Counts are Australian books on the events currently in the feed, so they move with the card — GET /v1/sports is the live list. Betfair Exchange prices several of these but is withheld from customer responses pending its data licence, and Pinnacle appears on US codes only; neither is counted above. cricket_bb (Big Bash) is deactivated out of season and 404s, along with its bbl alias; it reactivates automatically on 1 November for the December–February season.

Sports prices are re-read from each bookmaker we poll directly, with a 2-minute pause between passes; prices that reach us by push are updated as each push arrives. By default a sports market is served until it has gone 6 hours without an update, so a sports price can be hours old.

Usage notes

Start with a free API key

Test AFL, NRL, NBA, racing and best-price endpoints before upgrading to a paid API credit plan.

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