kali-afl

The AFL API
that should've
existed.

Free · Open Source · Historical data from 2000 · 1,000 req / day

27 seasons
1,000 req / day
$0 forever
10+ endpoints
5,261 matches
2,851 players
233,502 stat records
27 seasons
36 venues
// why does this exist?

There wasn't a decent free AFL API that was publicly accessible for free. So i decided to build one. It covers every season from 2000 to now — matches, scores, player stats, the works. Completely free, completely open source, and you don't need a credit card to touch it. i hope this helps fellow afl fans, data nerds, and aspiring fantasy coaches build cool stuff without worrying about api limits or paywalls.

biggest selling point

free api

1,000 requests per day. key-based auth. no credit card, no waitlist. sign in and start building.

1,000 req / day

historical data

every season from 2000 to present. match results, venues, crowds, round-by-round coverage — all of it.

2000 → now

standard + advanced stats

kicks, handballs, disposals, goals, tackles, fantasy pts, supercoach pts — plus contested possessions, metres gained, disposal efficiency, intercepts, and more.

built-in viewer

browse matches, players, and team breakdowns directly in the app. no api calls needed.

fantasy & supercoach tools

Build price trackers, scoring projectors, or team optimisers. Every match carries both AFL Fantasy and SuperCoach points, plus the full box score behind them.

/v1/player-stats/v1/leaderboards

tipping & prediction models

Train or back-test a match predictor on 25+ seasons of results, then benchmark it against the in-house model and the Squiggle tipster consensus.

/v1/matches/v1/standings/v1/head-to-head/v1/predictions/v1/tips

deep matchup queries

Answer the questions broadcasters can't — like a player's average disposals against a specific opponent, at a specific venue, across every past meeting.

/v1/player-stats/v1/head-to-head
request
$ curl "https://kaliaflstats.com/api/afl/v1/players/stats?year=2024&round=1&limit=2" \
  -H "Authorization: Bearer YOUR_API_KEY"
200 OK · application/json
{
  "data": [
    {
      "playerId":       1421,
      "playerName":     "Clayton Oliver",
      "teamId":         "melbourne",
      "kicks":          18,
      "handballs":      22,
      "disposals":      40,
      "marks":          6,
      "goals":          1,
      "tackles":        8,
      "aflFantasyPts":  142,
      "supercoachPts":  138
    }, ...
  ],
  "meta": { "limit": 2, "offset": 0, "count": 2, "total": 870 }
}
/v1/teams/v1/players/v1/matches/v1/player-stats/v1/player-stats-advanced/v1/leaderboards/v1/head-to-head/v1/standings/v1/venues/v1/tips/v1/fixture ✦ public
explore the interactive docs — try every endpoint live →

need more than the daily or have any concerns?

The free tier is generous, but if you're building something that needs more headroom, just ask — quota bumps are handled by hand and happy to oblige.

open source

fully open source. read it, fork it, break it.

github/MFergie121/kali-afl-stats ↗