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
| Market | Key | Sides | Line | Periods |
|---|---|---|---|---|
| Winner | winner | home, away, competitor_1, competitor_2 | No | full, half_1, half_2, quarter_1, quarter_2, quarter_3, quarter_4 |
| Handicap | handicap | home, away, competitor_1, competitor_2 | Yes | full, half_1, half_2, quarter_1, quarter_2, quarter_3, quarter_4 |
| Total points | total_points | over, under | Yes | full, half_1, half_2, quarter_1, quarter_2, quarter_3, quarter_4 |
| Total goals | total_goals | over, under | Yes | full, half_1, half_2, quarter_1, quarter_2, quarter_3, quarter_4 |
Team markets
| Market | Key | Sides | Line | Periods |
|---|---|---|---|---|
| Team points over/under | team_points_over_under | over, under | Yes | full, half_1, half_2, quarter_1, quarter_2, quarter_3, quarter_4 |
| Team goals over/under | team_goals_over_under | over, under | Yes | full, half_1, half_2 |
Player markets
| Market | Key | Sides | Line | Periods |
|---|---|---|---|---|
| Anytime goal scorer | player_goals_anytime | yes | No | full |
| First goal scorer | player_goals_first | Each competitor | No | full |
| Last goal scorer | player_goals_last | Each competitor | No | full |
| Player goals over/under | player_goals_over_under | over, under | Yes | full |
| Player disposals over/under | player_disposals_over_under | over, under | Yes | full |
| Player kicks over/under | player_kicks_over_under | over, under | Yes | full |
| Player handballs over/under | player_handballs_over_under | over, under | Yes | full |
| Player marks over/under | player_marks_over_under | over, under | Yes | full |
| Player hitouts over/under | player_hitouts_over_under | over, under | Yes | full |
| Player tackles over/under | player_tackles_over_under | over, under | Yes | full |
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.