Squiggle (AFL) API
Free Australian Football League API with no key: teams, fixtures, results, ladder standings and computer model predictions. Community-run. Tested example.
Endpoint tested and returned HTTP 200 on 2026-08-21
What is the Squiggle (AFL) API?
Squiggle is a free, key-free API for Australian Football League data, providing teams, fixtures, results, ladder standings and — distinctively — predictions from multiple computer tipping models.
Squiggle covers the AFL comprehensively, but its unusual feature is aggregating predictions from a range of independent computer tipping models, so you can compare what different statistical approaches forecast for the same match.
The maintainer asks that you identify yourself with a User-Agent containing your name and contact, which is a reasonable request for a free community service and is mentioned prominently in the documentation.
Quick facts
- Base URL
https://api.squiggle.com.au- Authentication
- No API key, but the maintainer asks for a User-Agent with your name and contact details.
- Rate limit
- No published hard limit; the maintainer asks for reasonable use and caching.
- Pricing
- Free and community run.
- CORS
- Not enabled — call it from your server
- Official docs
- Read the docs
How to use the Squiggle (AFL) API
Every request below was executed against the live API on 2026-08-21, and the response shown is the real body it returned — not an illustration.
1. List AFL teams
GET https://api.squiggle.com.au/?q=teams
curl 'https://api.squiggle.com.au/?q=teams'const res = await fetch("https://api.squiggle.com.au/?q=teams");
if (!res.ok) throw new Error(`Request failed: ${res.status}`);
const data = await res.json();
console.log(data);import requests
res = requests.get("https://api.squiggle.com.au/?q=teams", timeout=20)
res.raise_for_status()
print(res.json()){
"teams": [
{
"retirement": 9999,
"id": 1,
"debut": 1991,
"name": "Adelaide",
"logo": "/wp-content/themes/squiggle/assets/images/Adelaide.png",
"abbrev": "ADE"
},
{
"retirement": 9999,
"id": 2,
"debut": 1987,
"name": "Brisbane Lions",
"logo": "/wp-content/themes/squiggle/assets/images/Brisbane.png",
"abbrev": "BRI"
},
{
"retirement": 9999,
"id": 3,
"debut": 1897,
"name": "Carlton",
"logo": "/wp-content/themes/squiggle/assets/images/Carlton.png",
"abbrev": "CAR"
},
{
"retirement": 9999,
"id": 4,
"debut": 1897,
"name": "Collingwood",
"logo": "/wp-content/themes/squiggle/assets/images/Collingwood.png",
"abbrev": "COL"
},
{
"retirement": 9999,
"id": 5,
"debut": 1897,
"name": "Essendon",
"logo": "/wp-content/themes/squiggle/assets/images/Essendon.png",
"abbrev": "ESS"
},
{
"retirement": 9999,
"id": 6,
"debut": 1995,
"name": "Fremantle",
"logo": "/wp-content/themes/squiggle/assets/images/Fremantle.png",
"abbrev": "FRE"
},
{
"retirement": 9999,
"id": 7,
"debut": 1897,
"name": "Geelong",
"logo": "/wp-content/themes/squiggle/assets/images/Geelong.png",
"abbrev": "GEE"
},
{
"retirement": 9999,
"id": 8,
"debut": 2011,
"name": "Gold Coast",
"logo": "/wp-content/themes/squiggle/assets/images/GoldCoast.png",
"abbrev": "GCS"
},
{Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
q | string | Required | Query type: teams, games, standings, tips, sources or ladder. teams |
year | integer | Optional | Season year. 2026 |
round | integer | Optional | Round number. 5 |
team | integer | Optional | Team id to filter by. 1 |
Response fields
teams[].idinteger- Team identifier used across other queries.
teams[].namestring- Club name.
teams[].abbrevstring- Three-letter abbreviation.
teams[].logostring- Club logo path.
teams[].debut / retirementinteger- First and last seasons — historical clubs are included.
(games) hteam / ateam / hscore / ascorestring|integer- Home and away teams and scores.
(tips) source / confidence / marginstring|number- Which model made the prediction and how confident it is.
What you can build with the Squiggle (AFL) API
- Build an AFL fixtures and results site
- Compare computer tipping model predictions
- Power a footy tipping competition
- Analyse AFL ladder and margin trends
Common errors and how to fix them
Empty response
Missing the mandatory `q` parameter.
Fix: Every request needs q=teams, q=games or another query type.
Blocked or throttled
No identifying User-Agent.
Fix: Send a User-Agent with your name and contact, as the maintainer requests.
Historical teams in the list
Defunct clubs are included with retirement years.
Fix: Filter on retirement year if you only want current clubs.
Squiggle (AFL) API — frequently asked questions
Is the Squiggle API free?
Yes, free with no API key. The maintainer asks that you send a User-Agent identifying yourself with contact details.
What makes Squiggle different from other sports APIs?
It aggregates predictions from multiple independent computer tipping models, so you can compare what different statistical approaches forecast for the same match.
Does it cover historical seasons?
Yes, including defunct clubs, which carry a retirement year. Filter on that if you only want currently competing teams.
What sports does it cover?
Australian Football League only — it is a specialist AFL resource rather than a general sports API.
Tools that pair with this API
JSON Formatter
Format, beautify and minify JSON online with 2-space, 4-space or tab indentation. Sort keys alphabetically and catch syntax errors instantly — free and private.
Percentage Calculator
Calculate what X% of a number is, what percent one number is of another, and percentage increase or decrease between two values — instantly and free.
Squiggle (AFL) is an independent third-party service and is not affiliated with ByteTools or ByteVancer. Details on this page were verified on 2026-08-21; always check the official documentation before relying on this API in production, as terms and limits can change.