{"openapi":"3.1.0","info":{"title":"AFL Live API","version":"1.0.0","description":"Live Australian Football League (AFL) data, sourced from the same official scoring feed the broadcasters use. Pull the live scoreboard with quarter-by-quarter scoring for every match, the up-to-date ladder (played, wins, losses, points, percentage, current streak and recent form), all 18 clubs and club detail, and a full match box score: team totals for disposals, kicks, handballs, marks, tackles, inside-50s and contested possessions, plus the leaders in each category (goals, disposals and more). Read the latest AFL news too. Real-time during play, no key needed upstream. Ideal for footy tipping and fantasy apps, live scoreboards, sports media and match dashboards.","contact":{"name":"PremiumApi","url":"https://www.oanor.com/by/premiumapi"}},"servers":[{"url":"https://api.oanor.com/afl-api","description":"oanor gateway"}],"tags":[{"name":"AFL"},{"name":"Meta"}],"components":{"securitySchemes":{"oanorKey":{"type":"apiKey","in":"header","name":"x-oanor-key","description":"Get your key at https://www.oanor.com/developer/keys"}}},"security":[{"oanorKey":[]}],"paths":{"/v1/game":{"get":{"operationId":"get_v1_game","tags":["AFL"],"summary":"Match box score: team stats + leaders","description":"","parameters":[{"name":"event","in":"query","required":true,"description":"Match (event) id from /v1/scoreboard","schema":{"type":"string"},"example":"1133595"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"game":{"id":"1133595","date":"2026-06-07T09:20Z","teams":[{"id":"16","logo":"https://a.espncdn.com/i/teamlogos/afl/500/ess.png","name":"Essendon","score":67,"winner":false,"quarters":[15,24,7,21],"home_away":"home","abbreviation":"ESS"},{"id":"9","logo":"https://a.espncdn.com/i/teamlogos/afl/500/carl.png","name":"Carlton","score":72,"winner":true,"quarters":[8,17,21,26],"home_away":"away","abbreviation":"CARL"}],"venue":"MCG","detail":"Final","status":"Final"},"news":[{"link":"https://www.espn.com/afl/story/_/page/POINTSBET20241/afl-footy-review-news-analysis-round-13-stocks-nick-watson-north-melbourne-alastair-clarkson-jai-serong","headline":"Stocks up, stocks down: Wizard's great disappearing act; another huge captain's performance"},{"link":"https://www.espn.com/video/clip/_/id/48994539/carlton-holds-essendon-make-four-straight","headline":"Carlton holds off Essendon to make it four straight"},{"link":"https://www.espn.com/afl/story/_/id/47923681/coleman-medal-leaderboard-season-2026-kicked-most-goals-afl","headline":"Coleman Medal leaderboard for 2026 - who has kicked the most goals in the AFL?"}],"leaders":[{"team":"ESS","leaders":[{"value":"2","player":"Ben McKay","category":"goals","player_id":"810","display_name":"Goals"},{"value":"33","player":"Zach Merrett","category":"disposals","player_id":"459","display_name":"Disposals"},{"value":"14","player":"Elijah Tsatas","category":"contestedPossessions","player_id":"13411","display_name":"Contested Possessions"}],"team_id":"16"},{"team":"CARL","leaders":[{"value":"3","player":"Harry McKay","category":"goals","player_id":"663","display_name":"Goals"},{"value":"27","player":"George Hewett","category":"disposals","player_id":"61","display_name":"Disposals"},{"value":"11","player":"George Hewett","category":"contestedPossessions","player_id":"61","display_name":"Contested Possessions"}],"team_id":"9"}],"team_stats":[{"id":"16","name":"Essendon","statistics":{"goals":"10","kicks":"213","marks":"115","score":"67","behinds":"7","bounces":"8","hitouts":"31","tackles":"39","clangers":"50","freesFor":"24","disposals":"373","handballs":"160","inside50s":"49","rebound50s":"35","goalAssists":"8","goalAccuracy":"52.6","marksInside50":"12","onePercenters":"38","contestedMarks":"15","tacklesInside50":"4","totalClearances":"35","centreClearances":"13","uncontestedMarks":"100","disposalEfficiency":"76.1","stoppageClearances":"22","contestedPossessions":"132","totalInterchangeCount":"70","uncontestedPossessions":"242"},"abbreviation":"ESS"},{"id":"9","name":"Carlton","statistics":{"goals":"10","kicks":"220","marks":"119","score":"72","behinds":"12","bounces":"5","hitouts":"25","tackles":"45","clangers":"49","freesFor":"19","disposals":"382","handballs":"162","inside50s":"45","rebound50s":"39","goalAssists":"9","goalAccuracy":"45.5","marksInside50":"11","onePercenters":"38","contestedMarks":"5","tacklesInside50":"9","totalClearances":"28","centreClearances":"8","uncontestedMarks":"114","disposalEfficiency":"76.7","stoppageClearances":"20","contestedPossessions":"107","totalInterchangeCount":"71","uncontestedPossessions":"266"},"abbreviation":"CARL"}]},"meta":{"timestamp":"2026-06-08T01:20:00.010Z","request_id":"267726e6-b640-47b9-b5b1-de615e4d317d"},"status":"ok","message":"Game retrieved successfully","success":true}}}},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}},"/v1/news":{"get":{"operationId":"get_v1_news","tags":["AFL"],"summary":"Latest AFL news","description":"","parameters":[],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"count":6,"articles":[{"link":"https://www.espn.com/afl/story/_/page/POINTSBET20241/afl-footy-review-news-analysis-round-13-stocks-nick-watson-north-melbourne-alastair-clarkson-jai-serong","image":"https://a.espncdn.com/photo/2026/0607/r1669545_1296x729_16-9.png","headline":"Stocks up, stocks down: Wizard's great disappearing act; another huge captain's performance","published":"2026-06-07T23:01:33Z","description":"Jordan Dawson producd an amazing captain's performance, but serious questions must be asked of North Melbourne, and we saw the Wizard's great disappearing act! Here's whose stocks are up and down after Round 13."},{"link":"https://www.espn.com/video/clip/_/id/48994539/carlton-holds-essendon-make-four-straight","image":"https://a.espncdn.com/media/motion/2026/0607/dm_260607_AFL_Highlight_Carlton_holds_off_Essendon_to_make_it_four_straight_20260608_AUS_ONLY/dm_260607_AFL_Highlight_Carlton_holds_off_Essendon_to_make_it_four_straight_20260608_AUS_ONLY.jpg","headline":"Carlton holds off Essendon to make it four straight","published":"2026-06-07T21:34:00Z","description":"The Blues withstand a late Bombers charge to claim a thrilling five-point win at the MCG."},{"link":"https://www.espn.com/afl/story/_/id/47923681/coleman-medal-leaderboard-season-2026-kicked-most-goals-afl","image":"https://a.espncdn.com/photo/2026/0214/r1614962_1024x576_16-9.jpg","headline":"Coleman Medal leaderboard for 2026 - who has kicked the most goals in the AFL?","published":"2026-06-07T20:57:36Z","description":"The Coleman Medal is awarded to the player who kicks the most goals throughout the AFL home and away season. Who is on track to win the award in 2026?"},{"link":"https://www.espn.com/video/clip/_/id/48990275/jai-serong-snaps-winner-sydney","image":"https://a.espncdn.com/media/motion/2026/0607/dm_260607_AFL_Highlight_Jai_Serong_snaps_the_winner_for_Sydney_20260607_AUS_ONLY/dm_260607_AFL_Highlight_Jai_Serong_snaps_the_winner_for_Sydney_20260607_AUS_ONLY.jpg","headline":"Jai Serong snaps the winner for Sydney","published":"2026-06-07T09:12:48Z","description":"Serong breaks St Kilda hearts with the game-winning goal in the final seconds. "},{"link":"https://www.espn.com/video/clip/_/id/48990124/nasiah-marks-return-major","image":"https://a.espncdn.com/media/motion/2026/0607/dm_260607_AFL_Highlight_Nasiah_marks_return_with_a_major_20260607_AUS_ONLY/dm_260607_AFL_Highlight_Nasiah_marks_return_with_a_major_20260607_AUS_ONLY.jpg","headline":"Nasiah marks return with a major","published":"2026-06-07T08:40:06Z","description":"Wanganeen-Milera celebrates his first game back from a calf injury with a goal against the Swans."},{"link":"https://www.espn.com/video/clip/_/id/48989392/georgiades-snags-first-ginbey-limps-injured","image":"https://a.espncdn.com/media/motion/2026/0607/dm_260607_AFL_Highlight_Georgiades_snags_his_first_Ginbey_limps_off_injured_20260507_AUS_ONLY/dm_260607_AFL_Highlight_Georgiades_snags_his_first_Ginbey_limps_off_injured_20260507_AUS_ONLY.jpg","headline":"Georgiades snags his first, Ginbey limps off injured","published":"2026-06-07T05:38:01Z","description":"West Coast's Reuben Ginbey comes from the ground with a quad injury after pulling up short in his chase of Port Adelaide's Mitch Georgiades."}]},"meta":{"timestamp":"2026-06-08T01:20:00.257Z","request_id":"545bbcaf-5be6-45b7-8688-649bffdee832"},"status":"ok","message":"News retrieved successfully","success":true}}}},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}},"/v1/scoreboard":{"get":{"operationId":"get_v1_scoreboard","tags":["AFL"],"summary":"Games with quarter-by-quarter scoring","description":"","parameters":[{"name":"dates","in":"query","required":false,"description":"Optional YYYYMMDD or range","schema":{"type":"string"}}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"count":8,"games":[{"id":"1133595","date":"2026-06-07T09:20Z","name":"Carlton at Essendon","state":"post","teams":[{"id":"16","name":"Essendon","score":67,"record":"1-12","winner":false,"quarters":[15,24,7,21],"home_away":"home","abbreviation":"ESS"},{"id":"9","name":"Carlton","score":72,"record":"5-8","winner":true,"quarters":[8,17,21,26],"home_away":"away","abbreviation":"CARL"}],"venue":"MCG","detail":"Final","status":"Final","short_name":"CARL @ ESS"},{"id":"1133596","date":"2026-06-08T05:15Z","name":"Melbourne at Collingwood","state":"pre","teams":[{"id":"17","name":"Collingwood","score":0,"record":"5-1-6","winner":false,"quarters":[],"home_away":"home","abbreviation":"COLL"},{"id":"2","name":"Melbourne","score":0,"record":"7-5","winner":false,"quarters":[],"home_away":"away","abbreviation":"MELB"}],"venue":"MCG","detail":"Sun, June 7th at 10:15 PM EDT","status":"Scheduled","short_name":"MELB @ COLL"},{"id":"1133589","date":"2026-06-04T09:30Z","name":"Geelong Cats at Adelaide Crows","state":"post","teams":[{"id":"15","name":"Adelaide Crows","score":75,"record":"7-5","winner":true,"quarters":[20,19,15,21],"home_away":"home","abbreviation":"ADEL"},{"id":"14","name":"Geelong Cats","score":74,"record":"8-5","winner":false,"quarters":[18,15,19,22],"home_away":"away","abbreviation":"GEEL"}],"venue":"Adelaide Oval","detail":"Final","status":"Final","short_name":"GEEL @ ADEL"},{"id":"1133590","date":"2026-06-05T09:40Z","name":"Western Bulldogs at Hawthorn","state":"post","teams":[{"id":"13","name":"Hawthorn","score":71,"record":"8-1-4","winner":false,"quarters":[14,40,12,5],"home_away":"home","abbreviation":"HAW"},{"id":"6","name":"Western Bulldogs","score":77,"record":"8-5","winner":true,"quarters":[12,15,31,19],"home_away":"away","abbreviation":"WB"}],"venue":"MCG","detail":"Final","status":"Final","short_name":"WB @ HAW"},{"id":"1133591","date":"2026-06-06T04:15Z","name":"Fremantle at North Melbourne","state":"post","teams":[{"id":"5","name":"North Melbourne","score":31,"record":"5-7","winner":false,"quarters":[14,14,2,1],"home_away":"home","abbreviation":"NMFC"},{"id":"1","name":"Fremantle","score":155,"record":"12-1","winner":true,"quarters":[27,55,25,48],"home_away":"away","abbreviation":"FRE"}],"venue":"Hands Oval","detail":"Final","status":"Final","short_name":"FRE @ NMFC"},{"id":"1133592","date":"2026-06-06T07:15Z","name":"Brisbane Lions at Gold Coast SUNS","state":"post","teams":[{"id":"10","name":"Gold Coast SUNS","score":75,"record":"7-5","winner":false,"quarters":[14,32,15,14],"home_away":"home","abbreviation":"SUNS"},{"id":"11","name":"Brisbane Lions","score":106,"record":"7-6","winner":true,"quarters":[27,35,28,16],"home_away":"away","abbreviation":"BL"}],"venue":"People First Stadium","detail":"Final","status":"Final","short_name":"BL @ SUNS"},{"id":"1133593","date":"2026-06-06T10:15Z","name":"Port Adelaide at West Coast Eagles","state":"post","teams":[{"id":"3","name":"West Coast Eagles","score":71,"record":"4-9","winner":false,"quarters":[18,14,21,18],"home_away":"home","abbreviation":"WCE"},{"id":"7","name":"Port Adelaide","score":77,"record":"4-8","winner":true,"quarters":[24,19,26,8],"home_away":"away","abbreviation":"PORT"}],"venue":"Optus Stadium","detail":"Final","status":"Final","short_name":"PORT @ WCE"},{"id":"1133594","date":"2026-06-07T05:15Z","name":"St Kilda at Sydney Swans","state":"post","teams":[{"id":"4","name":"Sydney Swans","score":104,"record":"11-2","winner":true,"quarters":[21,42,18,23],"home_away":"home","abbreviation":"SYD"},{"id":"18","name":"St Kilda","score":102,"record":"5-8","winner":false,"quarters":[38,33,16,15],"home_away":"away","abbreviation":"STK"}],"venue":"SCG","detail":"Final","status":"Final","short_name":"STK @ SYD"}],"league":"AFL"},"meta":{"timestamp":"2026-06-08T01:20:00.438Z","request_id":"24e43fae-d7d9-4424-a7fa-f254cfd4e4be"},"status":"ok","message":"Scoreboard retrieved successfully","success":true}}}},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}},"/v1/standings":{"get":{"operationId":"get_v1_standings","tags":["AFL"],"summary":"The AFL ladder","description":"","parameters":[],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"count":18,"ladder":[{"form":"LWWWWWWWWWWWW","rank":1,"team":"Fremantle","wins":12,"draws":0,"losses":1,"played":13,"points":48,"streak":"W12","team_id":"1","percentage":"147.900","points_for":1312,"points_against":887},{"form":"WWLWWWWWWWLWW","rank":2,"team":"Sydney Swans","wins":11,"draws":0,"losses":2,"played":13,"points":44,"streak":"W2","team_id":"4","percentage":"147.300","points_for":1485,"points_against":1008},{"form":"LWWWWWWDLLWWL","rank":3,"team":"Hawthorn","wins":8,"draws":1,"losses":4,"played":13,"points":34,"streak":"L1","team_id":"13","percentage":"113.200","points_for":1248,"points_against":1102},{"form":"LWWLWWLWWWWLL","rank":4,"team":"Geelong Cats","wins":8,"draws":0,"losses":5,"played":13,"points":32,"streak":"L2","team_id":"14","percentage":"120.200","points_for":1295,"points_against":1077},{"form":"WWWWLLLLWLWWW","rank":5,"team":"Western Bulldogs","wins":8,"draws":0,"losses":5,"played":13,"points":32,"streak":"W3","team_id":"6","percentage":"94.600","points_for":1123,"points_against":1187},{"form":"WWWLLWLWWWLL","rank":6,"team":"Gold Coast SUNS","wins":7,"draws":0,"losses":5,"played":12,"points":28,"streak":"L2","team_id":"10","percentage":"112.200","points_for":1173,"points_against":1045},{"form":"WLLLWWLWWWLW","rank":7,"team":"Adelaide Crows","wins":7,"draws":0,"losses":5,"played":12,"points":28,"streak":"W1","team_id":"15","percentage":"107.400","points_for":1057,"points_against":984},{"form":"LLWWWLWWWLLLW","rank":8,"team":"Brisbane Lions","wins":7,"draws":0,"losses":6,"played":13,"points":28,"streak":"W1","team_id":"11","percentage":"106.200","points_for":1310,"points_against":1234},{"form":"WLWWLWWLWWLL","rank":9,"team":"Melbourne","wins":7,"draws":0,"losses":5,"played":12,"points":28,"streak":"L2","team_id":"2","percentage":"101.800","points_for":1190,"points_against":1169},{"form":"WLLLWLWLWLWW","rank":10,"team":"GWS GIANTS","wins":6,"draws":0,"losses":6,"played":12,"points":24,"streak":"W2","team_id":"8","percentage":"103.200","points_for":1127,"points_against":1092},{"form":"WLWLLWWDLLWL","rank":11,"team":"Collingwood","wins":5,"draws":1,"losses":6,"played":12,"points":22,"streak":"L1","team_id":"17","percentage":"99.900","points_for":994,"points_against":995},{"form":"LLWLWLWWLWLLL","rank":12,"team":"St Kilda","wins":5,"draws":0,"losses":8,"played":13,"points":20,"streak":"L3","team_id":"18","percentage":"101.900","points_for":1177,"points_against":1155},{"form":"LWLLLLLLLWWWW","rank":13,"team":"Carlton","wins":5,"draws":0,"losses":8,"played":13,"points":20,"streak":"W4","team_id":"9","percentage":"88.700","points_for":1049,"points_against":1183},{"form":"WLWWLWLLLLWL","rank":14,"team":"North Melbourne","wins":5,"draws":0,"losses":7,"played":12,"points":20,"streak":"L1","team_id":"5","percentage":"87.700","points_for":1068,"points_against":1218},{"form":"LWLWLLWLLLLW","rank":15,"team":"Port Adelaide","wins":4,"draws":0,"losses":8,"played":12,"points":16,"streak":"W1","team_id":"7","percentage":"101.400","points_for":983,"points_against":969},{"form":"LWWLLLLLLWLWL","rank":16,"team":"West Coast Eagles","wins":4,"draws":0,"losses":9,"played":13,"points":16,"streak":"L1","team_id":"3","percentage":"71.300","points_for":950,"points_against":1333},{"form":"LLLLLLLWLLWL","rank":17,"team":"Richmond","wins":2,"draws":0,"losses":10,"played":12,"points":8,"streak":"L1","team_id":"12","percentage":"60.400","points_for":787,"points_against":1304},{"form":"LLLLWLLLLLLLL","rank":18,"team":"Essendon","wins":1,"draws":0,"losses":12,"played":13,"points":4,"streak":"L8","team_id":"16","percentage":"71.700","points_for":977,"points_against":1363}],"league":"AFL"},"meta":{"timestamp":"2026-06-08T01:20:01.246Z","request_id":"b10ec934-8de8-48ee-bb3c-d1fece1e5a52"},"status":"ok","message":"Standings retrieved successfully","success":true}}}},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}},"/v1/team":{"get":{"operationId":"get_v1_team","tags":["AFL"],"summary":"Club detail by id","description":"","parameters":[{"name":"team","in":"query","required":true,"description":"Numeric club id, e.g. 16 (Essendon)","schema":{"type":"string"},"example":"16"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"team":{"id":"16","logo":"https://a.espncdn.com/i/teamlogos/afl/500/ess.png","name":"Essendon","color":"b93535","nickname":"Bombers","standing":"1st in AFL","next_event":"Carlton at Essendon","abbreviation":"ESS","alternate_color":"353535"}},"meta":{"timestamp":"2026-06-08T01:20:01.451Z","request_id":"9b7e3f30-5c97-4383-a4a7-1fd0aa126776"},"status":"ok","message":"Team retrieved successfully","success":true}}}},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}},"/v1/teams":{"get":{"operationId":"get_v1_teams","tags":["AFL"],"summary":"All AFL clubs","description":"","parameters":[],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"count":19,"teams":[{"id":"15","logo":"https://a.espncdn.com/i/teamlogos/afl/500/adel.png","name":"Adelaide Crows","color":"002a6f","nickname":"Crows","abbreviation":"ADEL"},{"id":"11","logo":"https://a.espncdn.com/i/teamlogos/afl/500/bl.png","name":"Brisbane Lions","color":"6d144a","nickname":"Lions","abbreviation":"BL"},{"id":"9","logo":"https://a.espncdn.com/i/teamlogos/afl/500/carl.png","name":"Carlton","color":"0d0e5f","nickname":"Blues","abbreviation":"CARL"},{"id":"17","logo":"https://a.espncdn.com/i/teamlogos/afl/500/coll.png","name":"Collingwood","color":"222222","nickname":"Magpies","abbreviation":"COLL"},{"id":"16","logo":"https://a.espncdn.com/i/teamlogos/afl/500/ess.png","name":"Essendon","color":"b93535","nickname":"Bombers","abbreviation":"ESS"},{"id":"1","logo":"https://a.espncdn.com/i/teamlogos/afl/500/fre.png","name":"Fremantle","color":"5d368f","nickname":"Dockers","abbreviation":"FRE"},{"id":"8","logo":"https://a.espncdn.com/i/teamlogos/afl/500/gws.png","name":"GWS GIANTS","color":"F07947","nickname":"GIANTS","abbreviation":"GWS"},{"id":"14","logo":"https://a.espncdn.com/i/teamlogos/afl/500/geel.png","name":"Geelong Cats","color":"173246","nickname":"Cats","abbreviation":"GEEL"},{"id":"10","logo":"https://a.espncdn.com/i/teamlogos/afl/500/suns.png","name":"Gold Coast SUNS","color":"b1212b","nickname":"SUNS","abbreviation":"SUNS"},{"id":"13","logo":"https://a.espncdn.com/i/teamlogos/afl/500/haw.png","name":"Hawthorn","color":"462d22","nickname":"Hawks","abbreviation":"HAW"},{"id":"2","logo":"https://a.espncdn.com/i/teamlogos/afl/500/melb.png","name":"Melbourne","color":"00274d","nickname":"Demons","abbreviation":"MELB"},{"id":"5","logo":"https://a.espncdn.com/i/teamlogos/afl/500/nmfc.png","name":"North Melbourne","color":"124cb1","nickname":"Kangaroos","abbreviation":"NMFC"},{"id":"7","logo":"https://a.espncdn.com/i/teamlogos/afl/500/port.png","name":"Port Adelaide","color":"2498a5","nickname":"Power","abbreviation":"PORT"},{"id":"12","logo":"https://a.espncdn.com/i/teamlogos/afl/500/rich.png","name":"Richmond","color":"e6b843","nickname":"Tigers","abbreviation":"RICH"},{"id":"18","logo":"https://a.espncdn.com/i/teamlogos/afl/500/stk.png","name":"St Kilda","color":"b12526","nickname":"Saints","abbreviation":"STK"},{"id":"4","logo":"https://a.espncdn.com/i/teamlogos/afl/500/syd.png","name":"Sydney Swans","color":"b61300","nickname":"Swans","abbreviation":"SYD"},{"id":"19","logo":"https://a.espncdn.com/i/teamlogos/afl/500/gcfc.png","name":"Sydney Swans","color":"173246","nickname":"Swans","abbreviation":"GCFC"},{"id":"3","logo":"https://a.espncdn.com/i/teamlogos/afl/500/wce.png","name":"West Coast Eagles","color":"24275a","nickname":"Eagles","abbreviation":"WCE"},{"id":"6","logo":"https://a.espncdn.com/i/teamlogos/afl/500/wb.png","name":"Western Bulldogs","color":"25269f","nickname":"Bulldogs","abbreviation":"WB"}]},"meta":{"timestamp":"2026-06-08T01:20:01.944Z","request_id":"2ca267d2-7b5e-4fbb-bfd6-8d76c059a891"},"status":"ok","message":"Teams retrieved successfully","success":true}}}},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}},"/v1/meta":{"get":{"operationId":"get_v1_meta","tags":["Meta"],"summary":"Service description & endpoints","description":"","parameters":[],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"service":"afl-api","endpoints":{"GET /v1/game":"Match box score: team stats + leaders (event=id from scoreboard).","GET /v1/meta":"This document.","GET /v1/news":"AFL news.","GET /v1/team":"Club detail by id (team=, e.g. 16).","GET /v1/teams":"All AFL clubs.","GET /v1/standings":"The AFL ladder.","GET /v1/scoreboard":"Games with quarter scores (dates=YYYYMMDD optional)."},"description":"Australian Football League (AFL) live data: the scoreboard with quarter-by-quarter scoring, the ladder (wins, losses, points, percentage, streak, form), the 18 clubs and club detail, a full match box score with team stats and leaders, and news. Real live data, no key."},"meta":{"timestamp":"2026-06-08T01:20:02.050Z","request_id":"fee7dc2c-585b-481c-8d02-5ef316ec2a46"},"status":"ok","message":"Meta","success":true}}}},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}}},"x-oanor-pricing":[{"slug":"free","name":"Free","price_cents_month":0,"monthly_call_quota":5000,"rps_limit":2,"hard_limit":true},{"slug":"starter","name":"Starter","price_cents_month":1000,"monthly_call_quota":70000,"rps_limit":8,"hard_limit":true},{"slug":"pro","name":"Pro","price_cents_month":3000,"monthly_call_quota":350000,"rps_limit":25,"hard_limit":true},{"slug":"elite","name":"Elite","price_cents_month":9500,"monthly_call_quota":1500000,"rps_limit":60,"hard_limit":true}],"x-oanor-marketplace-url":"https://www.oanor.com/api/afl-api"}