Odds API · 8 October 2026 · updated 14 October 2026

Sports Betting API Explained: Which Kind You Need in Australia

Odds data, bookmaker betting, sportsbook platform and results APIs, sorted, with the Australian rules that change your build.

A sports betting API is any interface that lets your code read or act on betting data, and the phrase covers four different products: odds data APIs that return bookmaker prices, bookmaker betting APIs that place bets, sportsbook platform APIs that power a licensed operator, and scores and results APIs that report what happened. Most developers searching for one want the first kind. If you want to place bets from code in Australia, Betfair's Exchange API is the documented route, and a sportsbook platform API needs a wagering licence and a contract.

This guide sorts the four, then covers the Australian rules that change what you can build.

The four kinds of sports betting API

KindWhat it doesWho can get itTypical use
Odds data APIReturns prices from many bookmakers in one schemaAnyone, often with a free tierComparison sites, models, alerts, content
Bookmaker betting APIPlaces and manages bets on one book or exchangeAccount holders, where the book offers oneAutomated betting on your own account
Sportsbook platform APIRuns accounts, bets, risk and settlement for an operatorLicensed operators under a commercial contractLaunching a sportsbook
Scores and results APIFixtures, scores, results and player statsVaries from free hobby feeds to official data licencesGrading, tipping comps, analytics

Odds data APIs

An odds data API collects prices from many bookmakers and serves them through one set of endpoints, so you write one integration instead of one per book. Very few bookmakers publish an API of their own for reading prices, so aggregated odds APIs are the common kind.

This is what SockOdds is: a REST API for bookmaker prices that we record ourselves, for Australian and global sport. Prices are decimal, exactly as each bookmaker showed them, never converted, rounded or devigged, and every outcome carries the time we saw it. Market and outcome ids are the same at every bookmaker, so comparing books is a matter of grouping by id. It is a data service: it does not take bets, give tips or make predictions, which our common odds API questions post covers.

Bookmaker betting APIs

A bookmaker betting API lets you place, cancel and track bets on your own account from code. Most bookmakers don't publish one, so their bets go through their own site or app.

Betfair is the exception, and it has a documented route for Australian accounts. More on that below.

Sportsbook platform APIs

This is the B2B layer behind a bookmaker's website: accounts, wallets, bet acceptance, risk and settlement. You only reach it by contract, and only if you are licensed to run a wagering business. For a sense of the scale of licensed operators, The Straight reported that NT-licensed bookmakers "had over 10 million customers combined and accepted 1.8 billion bets across 2024/25". If you are building a tool rather than a bookmaker, you don't need this kind.

Scores and results APIs

Results are a separate kind of data, from free hobby feeds through to official data licences, though some odds APIs carry them too. SockOdds has GET /v1/results, which grades the outcomes we quoted on finished events from official result sources only, never from a bookmaker's settlement. Each outcome gets a verdict (won, lost, void or dead_heat) and keeps the same outcome id as its price, so a bet tracker settles by id. Outcomes official evidence cannot settle are left out, never guessed. See results.

Can you place bets through an API in Australia?

Through an odds data API, no. Through a bookmaker's own API, only where the bookmaker publishes one. Betfair does, and it documents a separate process for Betfair Australia accounts.

Betfair Exchange API: delayed key and live key

Betfair issues two application keys per account. From its Application Keys documentation:

Delayed keyLive key
UseDevelopmentLive betting applications
Price dataDelayed, 1 to 180 secondsLive
Read-only accessAllowedNot allowed
Stream APILimited to 2 connections and 200 marketsYes
Activation feeNone£499, debited from your Betfair account once activated

Betfair Australia account holders follow a separate path. The Betfair Data Scientists guide for Australia says you'll need to place at least one bet through the delayed key before activation of the live key will be considered, and warns that "if the live key is used to pull data from the Exchange without corresponding bets being placed a delay may be automatically applied to the live key".

That second point matters. The Betfair API is a betting API that happens to return prices, not a free live odds feed for one exchange. If you want Betfair prices next to Sportsbet, TAB and the rest without betting, an odds data API is the fit: SockOdds includes Betfair Exchange from the Rookie plan.

Australian rules that change your build

Online in-play betting is banned

The biggest one. "In-play betting via online is banned in Australia under the federal Interactive Gambling Act", The Straight reported in September 2025. The exceptions it lists are phone betting and in-venue betting through Tabcorp. When apps used "click-to-call" to auto-dial a phone bet during play, the government announced in 2016 that it would legislate to ban them, as ABC News reported at the time.

For a developer that means:

  • An app for Australians can show live scores and game state, but it cannot route online in-play bets to an Australian-licensed bookmaker.
  • Pre-match prices are the core product for Australian books. SockOdds is pre-match first and is not a low-latency in-play feed; each event carries a status of scheduled, live, final, postponed or cancelled, so a product knows the state of the game.
  • If your plan depends on sub-second in-play prices, check that the market you're serving can legally use them before you pay for latency.

BetStop sits in front of every licensed account

BetStop, the National Self-Exclusion Register, is described as "a free and secure way to exclude yourself from all online and phone wagering providers licensed in Australia in one go". If you build a betting product that opens accounts, you work inside a licensed operator's systems and its obligations. If you build a data or comparison tool, the user goes to the bookmaker to bet, and the bookmaker handles the account.

Which kind do you need?

  1. Showing or comparing prices, building a model, sending alerts: an odds data API.
  2. Placing bets automatically on your own account: a bookmaker betting API, which in practice means Betfair's Exchange API.
  3. Grading bets or running a tipping comp: a results API, or an odds API that grades results against its own outcome ids.
  4. Launching a sportsbook: a wagering licence first, then a platform contract.

Most products are the first, sometimes with the third. Our sports betting app API page covers that build in more detail.

What to check in an odds data API

Once you know you want odds data, these are the questions that separate providers. Ask each one for documented answers, not marketing. Our comparison pages put SockOdds side by side with other odds data APIs.

  • Australian books by name. Which of Sportsbet, TAB, Ladbrokes, Neds, PointsBet, Betfair and the rest are on the plan you'd buy? On SockOdds, the free Developer plan reads Sportsbet, TAB and Ladbrokes; Rookie reads 9 bookmakers (Sportsbet, TAB, Ladbrokes, Neds, PointsBet, Unibet, Betfair Exchange, Dabble and Betr); Pro reads every supported bookmaker. Our Australian bookmakers guide lists who delivers what.
  • How you tell a price's age. Every SockOdds outcome carries observed_at, the time we saw it, and a price we have not seen again within ten minutes is withheld rather than shown as current. No refresh cadence is promised, so decide from observed_at how fresh is fresh enough.
  • History. Whether past prices are included and on which plan. On SockOdds, recorded history, opening and closing snapshots and the odds stream come with Pro. History holds only prices we recorded ourselves, back to 22 December 2025 for some leagues and 8 October 2026 for the rest.
  • Limits per plan. SockOdds counts requests a minute and objects a month: 10 requests a minute and 2,500 objects on Developer, 50 and 100,000 on Rookie, and 300 a minute with no monthly object cap on Pro. Each record returned is one object, plus one for each bookmaker price inside it. See limits.
  • Where the key lives. Anyone can read a key shipped in browser code or an app bundle. Call the API from your own server, with the key in an Authorization: Bearer header, and serve your users from there.

Try an odds data API on a real response

The free Developer plan needs no card: 10 requests a minute and 2,500 objects a month, on MLB, NFL, AFL, NRL and the two Rugby League World Cups, from Sportsbet, TAB and Ladbrokes. Here are those three bookmakers' head to head prices on one NFL game:

curl -sS "https://api.sockodds.com/v1/events/ev_000ckk0ee4ze/odds?markets=winner&bookmakers=sportsbet,tab,ladbrokes" \
  -H "Authorization: Bearer $SOCKODDS_API_KEY"
const response = await fetch("https://api.sockodds.com/v1/events/ev_000ckk0ee4ze/odds?markets=winner&bookmakers=sportsbet,tab,ladbrokes", {
  headers: { Authorization: `Bearer ${process.env.SOCKODDS_API_KEY}` },
});
console.log(JSON.stringify(await response.json(), null, 2));
import json, os, urllib.request

request = urllib.request.Request(
    "https://api.sockodds.com/v1/events/ev_000ckk0ee4ze/odds?markets=winner&bookmakers=sportsbet,tab,ladbrokes",
    headers={"Authorization": "Bearer " + os.environ["SOCKODDS_API_KEY"]},
)
with urllib.request.urlopen(request) as response:
    print(json.dumps(json.load(response), indent=2))

Response from a local copy of the API with invented test prices

{
  "data": {
    "id": "ev_000ckk0ee4ze",
    "name": "Arizona Cardinals v Atlanta Falcons",
    "league": {
      "key": "nfl",
      "name": "NFL"
    },
    "scheduled_start": "2026-10-16T19:00:00.000Z",
    "status": "scheduled",
    "participants": [
      {
        "role": "away",
        "identity": {
          "key": "atlanta_falcons",
          "name": "Atlanta Falcons"
        }
      },
      {
        "role": "home",
        "identity": {
          "key": "arizona_cardinals",
          "name": "Arizona Cardinals"
        }
      }
    ],
    "markets": [
      {
        "id": "mk_1e3spch3ksp3ptf7",
        "key": "winner",
        "name": "Winner",
        "period": "full",
        "subject": null,
        "alternate": false,
        "outcomes": [
          {
            "id": "oc_2b675wjrrdr96ngx",
            "name": "Arizona Cardinals",
            "side": "home",
            "line": null,
            "prices": [
              {
                "bookmaker": "tab",
                "decimal_odds": 1.77,
                "implied_probability": 0.564972,
                "available": true,
                "observed_at": "2026-10-15T07:58:00.000Z"
              },
              {
                "bookmaker": "sportsbet",
                "decimal_odds": 1.72,
                "implied_probability": 0.581395,
                "available": true,
                "observed_at": "2026-10-15T07:58:00.000Z"
              }
            ]
          },
          {
            "id": "oc_hsr6kxp5rq99zsfx",
            "name": "Atlanta Falcons",
            "side": "away",
            "line": null,
            "prices": [
              {
                "bookmaker": "tab",
                "decimal_odds": 2.18,
                "implied_probability": 0.458716,
                "available": true,
                "observed_at": "2026-10-15T07:58:00.000Z"
              },
              {
                "bookmaker": "sportsbet",
                "decimal_odds": 2.12,
                "implied_probability": 0.471698,
                "available": true,
                "observed_at": "2026-10-15T07:58:00.000Z"
              }
            ]
          }
        ]
      }
    ]
  },
  "meta": {
    "count": 1,
    "cursor": null
  },
  "links": {
    "next": null
  }
}

The prices come from a local copy of the API with invented numbers. The same winner outcome has the same id at all three bookmakers, which is what makes comparison a grouping job rather than a matching job. The quickstart takes you from a new key to your first response.

Questions people ask

What is a sports betting API?

Any interface that lets software read or act on betting data. Most of the time it means an odds data API that returns bookmaker prices as JSON. It can also mean a bookmaker's own API for placing bets, a B2B sportsbook platform, or a scores and results feed.

Can I place bets through an API in Australia?

Only where the bookmaker publishes one. Betfair does: its Exchange API has a free delayed key for development and a live key with a one-off £499 activation fee. Odds data APIs, including SockOdds, return prices but do not place bets.

Is there a free sports betting API?

Yes. The SockOdds Developer plan is free with no card: 10 requests a minute on MLB, NFL, AFL, NRL and the two Rugby League World Cups, from Sportsbet, TAB and Ladbrokes. Betfair's delayed application key is also free, with prices delayed by 1 to 180 seconds.

Can I build an in-play betting app for Australians?

Not one that takes online in-play bets. Online in-play sports betting is banned under the Interactive Gambling Act, with exceptions for phone betting and in-venue betting through Tabcorp. Live scores and pre-match prices are fine to display.

What is the difference between an odds API and a sportsbook API?

An odds API aggregates prices from many bookmakers so you can display and compare them. A sportsbook API is run by one bookmaker or platform and handles accounts, bets and settlement.

Sources

Next

SockOdds provides data only. It does not offer tips or predictions on any game.

Search across the SockOdds documentation and catalogue.