18+ Only  |  Gambling can be addictive — please gamble responsibly  |  Gambling Help: 1800 858 858  |  GambleAware

API reference / Sports

GET /v1/sports/{sport_key}/odds/history

Historical odds snapshots

Paid tiers only — 403 on Free and Hobby. Snapshots of one market, newest first, 500 per page (`offset`), each about ten minutes apart per bookmaker and only while the fixture has not started — so the last snapshot before `commence_time` is the closing price, and /v1/sports/{sport_key}/closing-lines returns that row per book with the consensus already worked out. `home_point`/`away_point` are the line the prices are attached to: each side's handicap on the spreads market (-6.5 / +6.5) and the total on the totals market, where Over is stored as the home side and Under as the away side. Lines exist from 2026-09-29; rows recorded before that carry prices only. AFL and AFLW history is kept permanently; every other sport is a rolling 90-day window. An unknown `sport_key`, or a date range that runs backwards, returns an error and costs nothing.

Requires X-API-Key 5 credits

Request

curl 'https://api.puntersedge.online/v1/sports/afl/odds/history' \
  -H 'X-API-Key: YOUR_KEY'

Parameters

NameIn TypeRequired Description
sport_key path string yes
from query string no ISO date/time; defaults to 7 days ago
to query string no ISO date/time; defaults to now
bookmakers query string no Comma-separated bookmaker keys, case-insensitive. An unrecognised key is a free 422 naming the valid keys, so a typo costs nothing — it used to return a billed empty response.
market query string no Market type: h2h (default), spreads or totals.
offset query integer no

Responses

Status codes: 200, 401, 402, 422, 429, 500. Response bodies are JSON; the full schema is in /openapi.json.

Example response

200 application/json — this call costs 5 credits. Field names and types are as the API returns them; values are a real sample, trimmed to a few items.

[
  {
    "event_id": "4b84fde7-7054-40db-a37f-ae05c9705549",
    "home_team": "Souths",
    "away_team": "Newcastle",
    "sport_key": "nrl",
    "snapshots": [
      {
        "recorded_at": "2026-09-07T00:43:24Z",
        "bookmaker": "tab",
        "home_price": 1.4,
        "draw_price": null,
        "away_price": 3.0,
        "home_point": null,
        "away_point": null
      },
      {
        "recorded_at": "2026-09-07T00:43:24Z",
        "bookmaker": "ladbrokes_au",
        "home_price": 1.4,
        "draw_price": null,
        "away_price": 3.0,
        "home_point": null,
        "away_point": null
      },
      {
        "recorded_at": "2026-09-06T22:13:09Z",
        "bookmaker": "tab",
        "home_price": 1.42,
        "draw_price": null,
        "away_price": 2.9,
        "home_point": null,
        "away_point": null
      }
    ]
  },
  {
    "event_id": "ad025e01-04fa-4d79-ae7f-fe756d1a55e7",
    "home_team": "Philadelphia Eagles",
    "away_team": "Los Angeles Rams",
    "sport_key": "nfl",
    "snapshots": [
      {
        "recorded_at": "2026-09-29T04:24:46.464555Z",
        "bookmaker": "sportsbet",
        "home_price": 1.93,
        "draw_price": null,
        "away_price": 1.87,
        "home_point": 46.5,
        "away_point": 46.5
      },
      {
        "recorded_at": "2026-09-29T04:14:29.916138Z",
        "bookmaker": "sportsbet",
        "home_price": 1.93,
        "draw_price": null,
        "away_price": 1.87,
        "home_point": 46.5,
        "away_point": 46.5
      }
    ]
  }
]

Guides that use this endpoint

Related endpoints

Try it against live data

The free tier needs no credit card, and the sandbox endpoints need no key at all.

Get a free API key Quickstart
This site contains wagering-related analysis and is intended for Australian users aged 18+. Gambling involves risk. Please gamble responsibly.