AFL Tables Scraper
Pricing
from $3.00 / 1,000 results
AFL Tables Scraper
Scrape AFL/VFL match results, player statistics, and season ladders from afltables.com - every season from 1897 to today. Scores, dates, venues, attendance, per-player disposals/goals/kicks/marks/tackles, and full standings.
Pricing
from $3.00 / 1,000 results
Rating
0.0
(0)
Developer
Crawler Bros
Maintained by CommunityActor stats
1
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
Scrape AFL/VFL match results, player statistics, and season ladders from afltables.com — the definitive historical archive of Australian Rules Football, covering every season from 1897 to today. Plain HTTP, no login, no cookies, no proxy required.
What this actor does
- Four modes:
matches,playerStats,ladder,brownlowMedal - Match results — every game of a season: scores by quarter, final score, date, venue, attendance, margin, and a link to the detailed match-stats page
- Player statistics — full season per-player box scores: games, kicks, marks, handballs, disposals, goals, behinds, hitouts, tackles, clearances, clangers, Brownlow votes, contested/uncontested possessions, and more (advanced stats are only tracked from the era the AFL started recording them; older seasons return whichever fields the source actually published)
- Ladder / standings — final season table: position, played/won/drawn/lost, home & away records, points for/against with goal-behind breakdowns, percentage, and premiership points (plus finals ranking for finals-era seasons) — this single table doubles as each team's season summary
- Brownlow Medal winners — the full year-by-year winners list (1924-present): player, team, total votes, games played, 3/2/1-vote game counts, games polled, and vote average — including joint/tied winner years
- 129 seasons of data — 1897 (the first VFL season) through the current AFL season
- Team filter — restrict any mode to one of 21 current + historical AFL/VFL clubs
- Empty fields are omitted — a record only ever contains fields the source actually published
Output per mode
matches
season,round,roundNumber(omitted for finals),isFinalshomeTeam,homeTeamUrl,homeTeamSlug,homeScore,homeScoreProgression(quarter-by-quarter)awayTeam,awayTeamUrl,awayTeamSlug,awayScore,awayScoreProgressionmatchDate,matchDateIso,venue,venueUrl,attendanceisDraw,winningTeam,marginmatchStatsUrl,sourceUrl- Bye rounds are emitted as separate records:
season,round,roundNumber,isBye: true,team,teamUrl,teamSlug
playerStats
season,team,teamUrl,teamSlug,jumperNumber,playerName,playerNameRaw(sourceLast, Firstform),playerUrlgames,kicks,marks,handballs,disposals,disposalAverage,goals,behinds,hitouts,tackles,rebound50s,inside50s,clearances,clangers,freesFor,freesAgainst,brownlowVotes,contestedPossessions,uncontestedPossessions,contestedMarks,marksInside50,onePercenters,bounces,goalAssists,percentGamePlayed,substitute
ladder
season,position,team,teamUrl,teamSlug,played,wins,draws,losses,homeRecord,awayRecordpointsFor,pointsForGoals,pointsForBehinds,pointsForAccuracyPercentpointsAgainst,pointsAgainstGoals,pointsAgainstBehinds,pointsAgainstAccuracyPercentpercentage,premiershipPoints,finalPosition,finalRating(finals-era seasons only)
brownlowMedal
season(the year the medal was awarded),playerName,playerUrl,team,teamUrl,teamSlugvotes(total),gamesPlayed,threeVoteGames,twoVoteGames,oneVoteGames,gamesPolled,voteAverage- Not season-scoped — always returns the full 1924-present list (respecting
maxItemsand theteamfilter); theseasoninput field is ignored for this mode - Joint/tied winner years emit one record per winner (e.g. 2012's Sam Mitchell and Trent Cotchin)
Every record also carries recordType, scrapedAt, and sourceUrl.
Input
| Field | Type | Default | Description |
|---|---|---|---|
mode | string | matches | matches / playerStats / ladder / brownlowMedal |
season | integer | 2025 | AFL/VFL season year, 1897–2026 (ignored by brownlowMedal) |
roundNumber | integer | – | Filter matches/byes to one home-and-away round (1–30) |
includeFinals | bool | true | Include finals-series matches (mode=matches) |
includeByes | bool | true | Include bye-round records (mode=matches) |
team | string | – | Restrict to one club (all modes) |
maxItems | int | 100 | Hard cap on emitted records (1–2000) |
proxyConfiguration | object | AUTO | Not required by the source; kept as a resilience fallback |
Example: 2025 Grand Final round results
{"mode": "matches","season": 2025,"includeFinals": true,"maxItems": 50}
Example: Geelong's 2025 player stats
{"mode": "playerStats","season": 2025,"team": "geelong","maxItems": 100}
Example: final 1897 ladder (the first VFL season)
{"mode": "ladder","season": 1897}
Example: every Brownlow Medal winner (1924-present)
{"mode": "brownlowMedal","maxItems": 200}
Use cases
- Sports analytics — build historical models of team form, scoring trends, and margins
- Fantasy football tools — feed per-player season stats into fantasy scoring engines
- Betting research — study historical venue/attendance/margin patterns
- Journalism & content — pull accurate historical scorelines and ladders for articles
- Academic research — long-run (1897–present) sports-history datasets
FAQ
What's AFL Tables? A free, long-running statistical archive of the Australian Football League (and its VFL predecessor), maintained since the 1990s. It's the most complete public record of AFL/VFL results and player statistics.
How far back does the data go? Every season from 1897 (the first VFL season) to the current season.
Why are some player-stat fields missing for older seasons? The AFL/VFL didn't track advanced stats (contested possessions, clangers, etc.) until relatively recently. The actor only emits fields the source page actually published for that season — it never fabricates data.
What are homeTeam / awayTeam? afltables.com always lists the two teams of a fixture in a fixed order; the first-listed team is the host per the official AFL draw.
What does roundNumber being absent mean? The match was part of the finals series (Qualifying/Elimination/Semi/Preliminary/Grand Final), which isn't numbered like home-and-away rounds — see round and isFinals instead.
Does the ladder include finals ranking? Yes, when available — finalPosition and finalRating are populated only for seasons that used a finals-era ranking system on the source page.
Does the Brownlow Medal mode need a season? No — mode=brownlowMedal always returns the complete year-by-year winners list; the season input is ignored for this mode. Use maxItems or the team filter to narrow it down.
Is a proxy required? No. afltables.com is a plain, unprotected HTML site. The proxyConfiguration input defaults to Apify's free AUTO datacenter group purely as a resilience fallback and adds no cost.
How fresh is the data? afltables.com updates within a day or two of each round being completed.
Limitations
Each team's index page (afltables.com/afl/teams/<team>_idx.html) links out to over a dozen additional, differently-structured pages per club — individual career player records, coaching lists, win/loss records, attendance history, venue records, streaks, and season-by-season game lists. These are genuinely useful axes but each requires its own dedicated parser for a page format not shared with matches/playerStats/ladder/brownlowMedal, so they're out of scope for this actor. The existing team filter already covers the common case of narrowing any of the four modes to one club's season-scoped data.