Squiggle
App · 9 actions
Follow the AFL with Squiggle: fixtures, live and final scores, the ladder, and the tips, projected ladders and power rankings of the best-known computer models. No account or API key is required.
Actions
| Action | What it does |
|---|---|
| Get a game | Get one game's details and latest score by its game ID, for example to check whether a game from an earlier step has finished and who won. |
| Get a projected ladder | Get a computer model's prediction of the final home-and-away ladder: each club's projected wins and percentage, and its chances of finishing first, in the top four and in the finals. |
| Get games | Get AFL fixtures and results for a season, a round or one club: who plays whom, where and when, the score, the winner and the margin. |
| Get power rankings | Get a computer model's power rankings, which rate how strong each club really is regardless of its ladder position. |
| Get the current round | Find the round being played now, or the next one if none is under way, with its games and when it starts. |
| Get the ladder | Get the AFL ladder: each club's position, wins, losses, draws, premiership points and percentage. |
| Get tips | Get the computer models' tips for a round: who each model picks, by how much and how confident it is, and whether the tip came off. |
| List models | List the computer models Squiggle tracks, with a link to each one's website. |
| List teams | List the AFL clubs with their abbreviations, first season and logo. |
Get a game
Get one game's details and latest score by its game ID, for example to check whether a game from an earlier step has finished and who won.
Inputs
- Game ID
game_idnumberRequired - The game's ID, from 'Get games' or 'Get tips'.
Outputs
away_behindsnumberaway_goalsnumberaway_scorenumberaway_teamtextaway_team_idnumberfinal_typetextgame_idnumberhome_behindsnumberhome_goalsnumberhome_scorenumberhome_teamtexthome_team_idnumberis_drawtrue/falseis_finaltrue/falseis_grand_finaltrue/falsemarginnumberpercent_completenumberroundnumberround_nametextstart_timetextstart_time_melbournetextstart_time_utctextstatustextsummarytexttime_statustextvenuetextwinnertextwinner_team_idnumberyearnumber
Example output
{
"away_behinds": 17,
"away_goals": 9,
"away_score": 71,
"away_team": "Richmond",
"away_team_id": 14,
"final_type": null,
"game_id": 38499,
"home_behinds": 15,
"home_goals": 10,
"home_score": 75,
"home_team": "Carlton",
"home_team_id": 3,
"is_draw": false,
"is_final": false,
"is_grand_final": false,
"margin": 4,
"percent_complete": 100,
"round": 1,
"round_name": "Round 1",
"start_time": "2026-03-12T19:30:00+11:00",
"start_time_melbourne": "2026-03-12T19:30:00+11:00",
"start_time_utc": "2026-03-12T08:30:00Z",
"status": "finished",
"summary": "Carlton 10.15 (75) def. Richmond 9.17 (71)",
"time_status": "Full Time",
"venue": "M.C.G.",
"winner": "Carlton",
"winner_team_id": 3,
"year": 2026
}Get a projected ladder
Get a computer model's prediction of the final home-and-away ladder: each club's projected wins and percentage, and its chances of finishing first, in the top four and in the finals.
Inputs
- Season
yearnumber - The AFL season, for example 2026. Leave empty for the current one.From 1897 to 2100.
- After round
after_roundnumber - As it stood after this round was played. Leave empty for the latest. Use -1 (0 before 2024) for the pre-season.From -1 to 30.
- Model
modeltext - Whose prediction. Leave empty for Squiggle's own model.
Outputs
finals_spotsnumbermodeltextmodel_idnumberroundnumberteam_countnumberteamslistyearnumber
Example output
{
"finals_spots": 10,
"model": "Squiggle",
"model_id": 1,
"round": 20,
"team_count": 1,
"teams": [
{
"average_rank": 4.5,
"finals_chance": 100,
"first_place_chance": 0,
"is_placeholder": false,
"model": "Squiggle",
"model_id": 1,
"position_chances": [
0,
7.17,
22.01,
28.39,
17.98,
12.03,
7.14,
3.88,
1.39,
0,
0,
0,
0,
0,
0,
0,
0,
0
],
"projected_percentage": 118.9,
"projected_wins": 15.3,
"rank": 4,
"round": 20,
"team": "Brisbane Lions",
"team_id": 2,
"top_4_chance": 57.6,
"updated_at": "2026-07-26T22:03:06+10:00"
}
],
"year": 2026
}Get games
Get AFL fixtures and results for a season, a round or one club: who plays whom, where and when, the score, the winner and the margin. Narrow it to finished, upcoming or live games.
Inputs
- Season
yearnumber - The AFL season, for example 2026. Leave empty for the current one.From 1897 to 2100.
- Round
roundnumber - Only games in this round. 0 is the Opening Round and the finals follow the last home-and-away round. Leave empty for the whole season.From 0 to 30.
- Team
teamtext - Only games involving this club. Leave empty for every club.
- Which games
statustext - All games, or only finished, upcoming or live ones.One of:
all(All games),finished(Finished games only),upcoming(Upcoming games only (not started yet)),live(Games in progress right now). Default:all.
Outputs
game_countnumbergameslistroundnumberstatustextteamtextyearnumber
Example output
{
"game_count": 1,
"games": [
{
"away_behinds": 17,
"away_goals": 9,
"away_score": 71,
"away_team": "Richmond",
"away_team_id": 14,
"final_type": null,
"game_id": 38499,
"home_behinds": 15,
"home_goals": 10,
"home_score": 75,
"home_team": "Carlton",
"home_team_id": 3,
"is_draw": false,
"is_final": false,
"is_grand_final": false,
"margin": 4,
"percent_complete": 100,
"round": 1,
"round_name": "Round 1",
"start_time": "2026-03-12T19:30:00+11:00",
"start_time_melbourne": "2026-03-12T19:30:00+11:00",
"start_time_utc": "2026-03-12T08:30:00Z",
"status": "finished",
"summary": "Carlton 10.15 (75) def. Richmond 9.17 (71)",
"time_status": "Full Time",
"venue": "M.C.G.",
"winner": "Carlton",
"winner_team_id": 3,
"year": 2026
}
],
"round": 1,
"status": "all",
"team": null,
"year": 2026
}Get power rankings
Get a computer model's power rankings, which rate how strong each club really is regardless of its ladder position. Each model uses its own rating scale.
Inputs
- Season
yearnumber - The AFL season, for example 2026. Leave empty for the current one.From 1897 to 2100.
- After round
after_roundnumber - As it stood after this round was played. Leave empty for the latest. Use -1 (0 before 2024) for the pre-season.From -1 to 30.
- Model
modeltext - Whose rankings. Leave empty for the Aggregate, the average of every model.
Outputs
modeltextmodel_idnumberroundnumberteam_countnumberteamslistyearnumber
Example output
{
"model": "Aggregate",
"model_id": 8,
"round": 29,
"team_count": 1,
"teams": [
{
"is_placeholder": false,
"model": "Aggregate",
"model_id": 8,
"rank": 1,
"rating": 114.56,
"round": 29,
"team": "Hawthorn",
"team_id": 10,
"updated_at": "2026-09-26T15:30:34+10:00"
}
],
"year": 2026
}Get the current round
Find the round being played now, or the next one if none is under way, with its games and when it starts. Also gives the last round that has been fully played.
Inputs
- Season
yearnumber - The AFL season, for example 2026. Leave empty for the current one.From 1897 to 2100.
Outputs
first_game_starttextgame_countnumbergameslistgames_finishednumberlast_completed_roundnumberlast_game_starttextroundnumberround_nametextseason_finishedtrue/falsestatustextyearnumber
Example output
{
"first_game_start": "2026-03-12T19:30:00+11:00",
"game_count": 1,
"games": [
{
"away_behinds": 17,
"away_goals": 9,
"away_score": 71,
"away_team": "Richmond",
"away_team_id": 14,
"final_type": null,
"game_id": 38499,
"home_behinds": 15,
"home_goals": 10,
"home_score": 75,
"home_team": "Carlton",
"home_team_id": 3,
"is_draw": false,
"is_final": false,
"is_grand_final": false,
"margin": 4,
"percent_complete": 100,
"round": 1,
"round_name": "Round 1",
"start_time": "2026-03-12T19:30:00+11:00",
"start_time_melbourne": "2026-03-12T19:30:00+11:00",
"start_time_utc": "2026-03-12T08:30:00Z",
"status": "finished",
"summary": "Carlton 10.15 (75) def. Richmond 9.17 (71)",
"time_status": "Full Time",
"venue": "M.C.G.",
"winner": "Carlton",
"winner_team_id": 3,
"year": 2026
}
],
"games_finished": 1,
"last_completed_round": 1,
"last_game_start": "2026-03-15T19:20:00+11:00",
"round": 1,
"round_name": "Round 1",
"season_finished": false,
"status": "finished",
"year": 2026
}Get the ladder
Get the AFL ladder: each club's position, wins, losses, draws, premiership points and percentage. Defaults to the latest; pick a round to see it as it stood then.
Inputs
- Season
yearnumber - The AFL season, for example 2026. Leave empty for the current one.From 1897 to 2100.
- After round
after_roundnumber - As it stood after this round was played. Leave empty for the latest. Use -1 (0 before 2024) for the pre-season.From -1 to 30.
Outputs
after_roundnumberteam_countnumberteamslistyearnumber
Example output
{
"after_round": null,
"team_count": 1,
"teams": [
{
"behinds_against": 238,
"behinds_for": 294,
"draws": 0,
"goals_against": 238,
"goals_for": 332,
"losses": 4,
"percentage": 137.2,
"played": 23,
"points": 76,
"points_against": 1666,
"points_for": 2286,
"rank": 1,
"team": "Fremantle",
"team_id": 6,
"wins": 19
}
],
"year": 2026
}Get tips
Get the computer models' tips for a round: who each model picks, by how much and how confident it is, and whether the tip came off. Defaults to the current round and the Aggregate of every model.
Inputs
- Season
yearnumber - The AFL season, for example 2026. Leave empty for the current one.From 1897 to 2100.
- Round
roundnumber - The round to tip. Leave empty for the current round.From 0 to 30.
- Model
modeltext - Whose tips. Leave empty for the Aggregate, the average of every model, or pick All models for each model's tip.
- Team
teamtext - Only tips for this club's games.
- Game ID
game_idnumber - Only tips for this game, from 'Get games'. Season and round are then ignored.
- Only games not finished yet
unfinished_onlytrue/false - Leave out games that have already been played.Default:
false.
Outputs
correct_countnumbermodeltextroundnumberscored_countnumberteamtexttip_countnumbertipslistyearnumber
Example output
{
"correct_count": 1,
"model": "Aggregate",
"round": 1,
"scored_count": 1,
"team": null,
"tip_count": 1,
"tips": [
{
"away_team": "Richmond",
"away_team_id": 14,
"bits": 0.4891,
"confidence": 70.2,
"correct": true,
"game_id": 38499,
"home_team": "Carlton",
"home_team_id": 3,
"home_win_chance": 70.2,
"margin": 18.7,
"margin_error": 14.7,
"model": "Aggregate",
"model_id": 8,
"round": 1,
"start_time": "2026-03-12T19:30:00+11:00",
"summary": "Carlton by 19 (70.2%)",
"tip": "Carlton",
"tip_team_id": 3,
"updated_at": "2026-03-12T22:10:05+11:00",
"venue": "M.C.G.",
"year": 2026
}
],
"year": 2026
}List models
List the computer models Squiggle tracks, with a link to each one's website.
Inputs
None.
Outputs
model_countnumbermodelslist
Example output
{
"model_count": 1,
"models": [
{
"icon_url": "https://squiggle.com.au/wp-content/themes/squiggle/assets/images/MoS.png",
"model_id": 4,
"name": "Matter of Stats",
"website": "http://www.matterofstats.com/"
}
]
}List teams
List the AFL clubs with their abbreviations, first season and logo. Pick a season to get the clubs, names and logos of that year.
Inputs
- Season
yearnumber - Only clubs that played this season, under the names they had then. Leave empty for today's clubs.From 1897 to 2100.
Outputs
team_countnumberteamslistyearnumber
Example output
{
"team_count": 1,
"teams": [
{
"abbreviation": "COL",
"first_season": 1897,
"last_season": null,
"logo_url": "https://squiggle.com.au/wp-content/themes/squiggle/assets/images/Collingwood.png",
"name": "Collingwood",
"team_id": 4
}
],
"year": null
}