# Squiggle

> 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.

App · 9 actions. Web page: https://docs.lodol.com/docs/integrations/squiggle

## Actions

### 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_id`, number, required): The game's ID, from 'Get games' or 'Get tips'.

**Outputs**

- `away_behinds` (number)
- `away_goals` (number)
- `away_score` (number)
- `away_team` (text)
- `away_team_id` (number)
- `final_type` (text)
- `game_id` (number)
- `home_behinds` (number)
- `home_goals` (number)
- `home_score` (number)
- `home_team` (text)
- `home_team_id` (number)
- `is_draw` (true/false)
- `is_final` (true/false)
- `is_grand_final` (true/false)
- `margin` (number)
- `percent_complete` (number)
- `round` (number)
- `round_name` (text)
- `start_time` (text)
- `start_time_melbourne` (text)
- `start_time_utc` (text)
- `status` (text)
- `summary` (text)
- `time_status` (text)
- `venue` (text)
- `winner` (text)
- `winner_team_id` (number)
- `year` (number)

**Example output**

```json
{
  "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 (`year`, number): The AFL season, for example 2026. Leave empty for the current one. From 1897 to 2100.
- After round (`after_round`, number): 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 (`model`, text): Whose prediction. Leave empty for Squiggle's own model.

**Outputs**

- `finals_spots` (number)
- `model` (text)
- `model_id` (number)
- `round` (number)
- `team_count` (number)
- `teams` (list)
- `year` (number)

**Example output**

```json
{
  "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 (`year`, number): The AFL season, for example 2026. Leave empty for the current one. From 1897 to 2100.
- Round (`round`, number): 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 (`team`, text): Only games involving this club. Leave empty for every club.
- Which games (`status`, text): 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_count` (number)
- `games` (list)
- `round` (number)
- `status` (text)
- `team` (text)
- `year` (number)

**Example output**

```json
{
  "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 (`year`, number): The AFL season, for example 2026. Leave empty for the current one. From 1897 to 2100.
- After round (`after_round`, number): 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 (`model`, text): Whose rankings. Leave empty for the Aggregate, the average of every model.

**Outputs**

- `model` (text)
- `model_id` (number)
- `round` (number)
- `team_count` (number)
- `teams` (list)
- `year` (number)

**Example output**

```json
{
  "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 (`year`, number): The AFL season, for example 2026. Leave empty for the current one. From 1897 to 2100.

**Outputs**

- `first_game_start` (text)
- `game_count` (number)
- `games` (list)
- `games_finished` (number)
- `last_completed_round` (number)
- `last_game_start` (text)
- `round` (number)
- `round_name` (text)
- `season_finished` (true/false)
- `status` (text)
- `year` (number)

**Example output**

```json
{
  "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 (`year`, number): The AFL season, for example 2026. Leave empty for the current one. From 1897 to 2100.
- After round (`after_round`, number): 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_round` (number)
- `team_count` (number)
- `teams` (list)
- `year` (number)

**Example output**

```json
{
  "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 (`year`, number): The AFL season, for example 2026. Leave empty for the current one. From 1897 to 2100.
- Round (`round`, number): The round to tip. Leave empty for the current round. From 0 to 30.
- Model (`model`, text): Whose tips. Leave empty for the Aggregate, the average of every model, or pick All models for each model's tip.
- Team (`team`, text): Only tips for this club's games.
- Game ID (`game_id`, number): Only tips for this game, from 'Get games'. Season and round are then ignored.
- Only games not finished yet (`unfinished_only`, true/false): Leave out games that have already been played. Default: `false`.

**Outputs**

- `correct_count` (number)
- `model` (text)
- `round` (number)
- `scored_count` (number)
- `team` (text)
- `tip_count` (number)
- `tips` (list)
- `year` (number)

**Example output**

```json
{
  "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_count` (number)
- `models` (list)

**Example output**

```json
{
  "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 (`year`, number): Only clubs that played this season, under the names they had then. Leave empty for today's clubs. From 1897 to 2100.

**Outputs**

- `team_count` (number)
- `teams` (list)
- `year` (number)

**Example output**

```json
{
  "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
}
```
