Historical Odds Data API

Finished events are never pruned from the feed, so an odds archive of every Australian book starts the day you start pulling.

SockOdds never prunes a finished event. From the day you start pulling, every event your plan can see stays queryable with its last-seen prices from every book, its status and its results — an archive of the Australian market that grows on its own. What the feed does not do yet is snapshot opening and closing prices; that part is yours.

Why build your odds history on SockOdds

  • Retention by design. The source never deletes; a stale event is flagged, not dropped.
  • Every book, every market, last price seen. byBookmaker with lastUpdatedAt.
  • Fair prices as labels. fairOdds on Base and above.
  • Results in the same object. Grade the archive.
  • Date windows. startsAfter / startsBefore / finalized=true.

How an odds-history backtest works with our data

Acquire finalized events

/events?leagueID=AFL&startsAfter=…&startsBefore=…&finalized=true, paging with cursor.

Derive features

Last price per book, consensus, fair price, and — if you snapshot on a schedule — line movement.

Grade and measure

Compare with results.

Example request

curl "https://api.sockodds.com/v2/events/?leagueID=NRL&finalized=true&startsAfter=2026-09-01T00:00:00Z&limit=100" \
  -H "x-api-key: YOUR_API_KEY"

Finished NRL events with the last odds seen and results:

{
  "eventID": "afl_2026-09-03_fremantle_vs_hawthorn",
  "leagueID": "AFL",
  "odds": {
    "points-all-game-eo-odd": {
      "oddID": "points-all-game-eo-odd",
      "opposingOddID": "points-all-game-eo-even",
      "marketName": "Odd/Even Total Points",
      "statID": "points",
      "statEntityID": "all",
      "periodID": "game",
      "betTypeID": "eo",
      "sideID": "odd",
      "fairOdds": null,
      "bookOdds": "-116",
      "byBookmaker": {
        "unibet": {
          "odds": "-115",
          "decimal": 1.87,
          "available": true
        },
        "tabtouch": {
          "odds": "-118",
          "decimal": 1.85,
          "available": true
        }
      }
    }
  }
}

SockOdds vs building your own odds archive

CapabilitySockOddsbuilding your own odds archive
RetentionFinished events keptSnapshot and store every poll forever
No-vig fair oddsBuilt inDe-vig yourself
ResultsOn the eventA separate results feed
Opening & closing linesNot snapshotted yet — poll and storeSame
Normalised idsOne oddIDReconcile per book

Frequently asked questions

What is a historical odds data API?

A feed from which past events and their prices can be queried. SockOdds retains events from 2026-09 onward.

Which plan includes historical odds?

Every plan can query retained events it is scoped to.

Do you provide opening and closing lines?

Not yet; poll and store them yourself.

Can I compute closing line value?

If you snapshot before kick-off, yes.

Are results included?

Where the source carries them.

How do I join across books and sports?

On eventID and oddID.

Related use cases

Start building today

Free plan available. Set up in 5 minutes. Scale when you're ready.