Final scores from the league's own record, for the codes we collect. Cost: 1 credit. **Covered: AFL, AFLW, NRL, NRLW** — collected from the AFL's and NRL's own public APIs. Another sport is a free 422 naming these, not an empty 200: an empty list cannot be told apart from a round with no games. `event_id` ties a result to the fixture you have prices for. It is null when the league played a match we were not pricing (most of a backfilled season), and also when two of our fixtures matched it equally well — in that case nothing is guessed and `match_note` says so. One real example: our own feed currently holds the same women's World Cup fixture twice, as 'Papua New Guinea Women' and 'Papua New Guinea Orchids', so that result stays unlinked rather than attaching to one of them. Scores are null until the league calls the match final, so an abandoned or scheduled fixture never reads as a nil-all.
X-API-Key
curl 'https://api.puntersedge.online/v1/sports/afl/results' \
-H 'X-API-Key: YOUR_KEY'
| Name | In | Type | Required | Description |
|---|---|---|---|---|
sport_key |
path | string | yes | |
season |
query | integer | no | Calendar year of the season. Omit for the most recent results first. |
competition |
query | string | no | Filter on the league's competition name, case-insensitive substring (e.g. 'AFLW', 'Premiership', 'World Cup'). |
final_only |
query | boolean | no | Only matches the league has called final. Set false to see scheduled and in-progress fixtures too, which carry null scores. |
linked_only |
query | boolean | no | Only results tied to a fixture in the odds feed. Use it when you are settling bets and a result you cannot join is no use to you. |
limit |
query | integer | no |
Status codes: 200, 401, 402, 422, 429, 500. Response bodies are JSON; the full schema is in /openapi.json.
200 application/json
Field names and types are as the API returns them; values are a real sample, trimmed to a few items.
[
{
"sport_key": "aflw",
"competition": "2026 NAB AFLW Season",
"season": 2026,
"round_title": "Round 10",
"home_team": "Melbourne",
"away_team": "Richmond",
"home_score": 94,
"away_score": 32,
"status": "final",
"start_time": "2026-10-16T08:15:00Z",
"venue": "Ikon Park",
"detail": {
"status": "CONCLUDED",
"home": {
"goals": 14,
"behinds": 10,
"totalScore": 94,
"superGoals": 0
},
"away": {
"goals": 5,
"behinds": 2,
"totalScore": 32,
"superGoals": 0
}
},
"event_id": "4b84fde7-7054-40db-a37f-ae05c9705549",
"match_note": "fuzzy",
"source": "afl"
},
{
"sport_key": "aflw",
"competition": "2026 NAB AFLW Season",
"season": 2026,
"round_title": "Round 11",
"home_team": "Adelaide Crows",
"away_team": "Gold Coast SUNS",
"home_score": null,
"away_score": null,
"status": "unconfirmed_teams",
"start_time": "2026-10-24T07:45:00Z",
"venue": "TBC",
"detail": {
"status": "UNCONFIRMED_TEAMS",
"home": null,
"away": null
},
"event_id": null,
"match_note": "no candidate fixture",
"source": "afl"
}
]
GET /v1/sports — List available sportsGET /v1/sports/{sport_key}/closing-lines — Closing price and line per bookmaker, with the consensusGET /v1/sports/{sport_key}/odds — Get odds by sportGET /v1/sports/{sport_key}/odds/history — Historical odds snapshotsGET /v1/sports/{sport_key}/odds/movements — Price movement feedThe free tier needs no credit card, and the sandbox endpoints need no key at all.
Get a free API key Quickstart