AFL odds API

AFL prices, markets and identifiers through one REST API.

The AFL has the league key afl in the SockOdds API. It is an Australian football league based in Australia (sport key australian_football). Its events have a home and an away team.

Request AFL markets

The markets you can request for the AFL:

curl -sS "https://api.sockodds.com/v1/markets?league=afl&limit=3" \
  -H "Authorization: Bearer $SOCKODDS_API_KEY"
const response = await fetch("https://api.sockodds.com/v1/markets?league=afl&limit=3", {
  headers: { Authorization: `Bearer ${process.env.SOCKODDS_API_KEY}` },
});
console.log(JSON.stringify(await response.json(), null, 2));
import json, os, urllib.request

request = urllib.request.Request(
    "https://api.sockodds.com/v1/markets?league=afl&limit=3",
    headers={"Authorization": "Bearer " + os.environ["SOCKODDS_API_KEY"]},
)
with urllib.request.urlopen(request) as response:
    print(json.dumps(json.load(response), indent=2))

Response from a local copy of the API with invented test prices

{
  "data": [
    {
      "key": "winner",
      "name": "Winner",
      "subject": "event",
      "bet": "winner",
      "stat": null,
      "has_line": false,
      "sides": [
        "home",
        "away"
      ],
      "sports": [
        "australian_football",
        "rugby_league",
        "rugby_union",
        "basketball",
        "american_football",
        "baseball",
        "ice_hockey",
        "tennis",
        "mma",
        "cricket",
        "esports"
      ],
      "periods": [
        "full",
        "half_1",
        "half_2",
        "quarter_1",
        "quarter_2",
        "quarter_3",
        "quarter_4",
        "innings_1_to_5",
        "half_2_ot",
        "period_1",
        "period_2",
        "period_3",
        "set_1",
        "set_2",
        "set_3",
        "set_4",
        "set_5",
        "map_1",
        "map_2",
        "map_3",
        "map_4",
        "map_5"
      ]
    },
    {
      "key": "handicap",
      "name": "Handicap",
      "subject": "event",
      "bet": "handicap",
      "stat": null,
      "has_line": true,
      "sides": [
        "home",
        "away"
      ],
      "sports": [
        "australian_football",
        "rugby_league",
        "rugby_union",
        "soccer",
        "basketball",
        "american_football",
        "baseball",
        "ice_hockey",
        "tennis",
        "esports"
      ],
      "periods": [
        "full",
        "half_1",
        "half_2",
        "quarter_1",
        "quarter_2",
        "quarter_3",
        "quarter_4",
        "innings_1_to_5",
        "half_2_ot",
        "quarter_4_ot",
        "period_1",
        "period_2",
        "period_3"
      ]
    },
    {
      "key": "total_points",
      "name": "Total points",
      "subject": "event",
      "bet": "total",
      "stat": "points",
      "has_line": true,
      "sides": [
        "over",
        "under"
      ],
      "sports": [
        "australian_football",
        "rugby_league",
        "rugby_union",
        "basketball",
        "american_football"
      ],
      "periods": [
        "full",
        "half_1",
        "half_2",
        "quarter_1",
        "quarter_2",
        "quarter_3",
        "quarter_4",
        "half_2_ot",
        "quarter_4_ot"
      ]
    }
  ],
  "meta": {
    "count": 3,
    "cursor": "eyJuIjozLCJmIjoiNDIyNTNmOGM5NGYwOGFjNiJ9"
  },
  "links": {
    "next": "https://api.sockodds.com/v1/markets?league=afl&limit=3&cursor=eyJuIjozLCJmIjoiNDIyNTNmOGM5NGYwOGFjNiJ9"
  }
}

Prices are decimal and exactly as each bookmaker showed them, with the time we saw them. A price older than ten minutes is withheld rather than shown as current.

Bookmakers

No bookmaker prices are being delivered for the AFL right now. The league and its markets are in the catalogue, so you can build against its keys today, and prices appear in the same responses once bookmakers are delivering.

AFL markets

16 market types are defined for the AFL. Ask for any of them with markets=; a bookmaker quotes the markets it offers for each game.

Game markets

MarketKeySidesLinePeriods
Winnerwinnerhome, away, competitor_1, competitor_2Nofull, half_1, half_2, quarter_1, quarter_2, quarter_3, quarter_4
Handicaphandicaphome, away, competitor_1, competitor_2Yesfull, half_1, half_2, quarter_1, quarter_2, quarter_3, quarter_4
Total pointstotal_pointsover, underYesfull, half_1, half_2, quarter_1, quarter_2, quarter_3, quarter_4
Total goalstotal_goalsover, underYesfull, half_1, half_2, quarter_1, quarter_2, quarter_3, quarter_4

Team markets

MarketKeySidesLinePeriods
Team points over/underteam_points_over_underover, underYesfull, half_1, half_2, quarter_1, quarter_2, quarter_3, quarter_4
Team goals over/underteam_goals_over_underover, underYesfull, half_1, half_2

Player markets

MarketKeySidesLinePeriods
Anytime goal scorerplayer_goals_anytimeyesNofull
First goal scorerplayer_goals_firstEach competitorNofull
Last goal scorerplayer_goals_lastEach competitorNofull
Player goals over/underplayer_goals_over_underover, underYesfull
Player disposals over/underplayer_disposals_over_underover, underYesfull
Player kicks over/underplayer_kicks_over_underover, underYesfull
Player handballs over/underplayer_handballs_over_underover, underYesfull
Player marks over/underplayer_marks_over_underover, underYesfull
Player hitouts over/underplayer_hitouts_over_underover, underYesfull
Player tackles over/underplayer_tackles_over_underover, underYesfull

Periods

full (Full match), half_1 (First half), half_2 (Second half), quarter_1 (First quarter), quarter_2 (Second quarter), quarter_3 (Third quarter) and quarter_4 (Fourth quarter).

Plans

The free Developer plan includes the AFL. Rookie and Pro include every league, and Pro adds recorded price history, from 8 October 2026 for the AFL. See pricing.

Search across the SockOdds documentation and catalogue.