# 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

| Kind | What it does | Who can get it | Typical use |
| --- | --- | --- | --- |
| Odds data API | Returns prices from many bookmakers in one schema | Anyone, often with a free tier | Comparison sites, models, alerts, content |
| Bookmaker betting API | Places and manages bets on one book or exchange | Account holders, where the book offers one | Automated betting on your own account |
| Sportsbook platform API | Runs accounts, bets, risk and settlement for an operator | Licensed operators under a commercial contract | Launching a sportsbook |
| Scores and results API | Fixtures, scores, results and player stats | Varies from free hobby feeds to official data licences | Grading, 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](https://sockodds.com/blog/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](https://thestraight.com.au/nt-licensed-bookies-take-1-8-billion-bets-a-year/) 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](https://sockodds.com/docs/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](https://betfair-developer-docs.atlassian.net/wiki/spaces/1smk3cen4v3lu3yomq5qye0ni/pages/2687105/Application+Keys):

|  | Delayed key | Live key |
| --- | --- | --- |
| Use | Development | Live betting applications |
| Price data | Delayed, 1 to 180 seconds | Live |
| Read-only access | Allowed | Not allowed |
| Stream API | Limited to 2 connections and 200 markets | Yes |
| Activation fee | None | £499, debited from your Betfair account once activated |

Betfair Australia account holders follow a separate path. The [Betfair Data Scientists guide](https://betfair-datascientists.github.io/api/apiappkey/) 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](https://sockodds.com/bookmakers/betfair-exchange-odds-api/) 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](https://thestraight.com.au/the-push-to-open-up-live-in-play-sports-betting-in-australia/) 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](https://www.abc.net.au/news/2016-04-28/government-closes-online-live-sports-betting-loophole/7367406) 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](https://www.betstop.gov.au/), 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](https://sockodds.com/use-cases/sports-betting-app-api/) 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](https://sockodds.com/compare/) 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](https://sockodds.com/blog/australian-bookmakers-odds-api/) 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](https://sockodds.com/docs/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:

```bash
curl -sS "https://api.sockodds.com/v1/events/ev_000ckk0ee4ze/odds?markets=winner&bookmakers=sportsbet,tab,ladbrokes" \
  -H "Authorization: Bearer $SOCKODDS_API_KEY"
```

```javascript
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));
```

```python
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):

```json
{
  "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](https://sockodds.com/docs/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

- [Betfair Exchange API Documentation: Application Keys](https://betfair-developer-docs.atlassian.net/wiki/spaces/1smk3cen4v3lu3yomq5qye0ni/pages/2687105/Application+Keys)
- [Betfair Data Scientists: Betfair Australia, how to access the Betfair API](https://betfair-datascientists.github.io/api/apiappkey/)
- [The Straight: The push to open up live in-play sports betting in Australia](https://thestraight.com.au/the-push-to-open-up-live-in-play-sports-betting-in-australia/)
- [ABC News: Live online sports betting loophole to be closed by Federal Government](https://www.abc.net.au/news/2016-04-28/government-closes-online-live-sports-betting-loophole/7367406)
- [The Straight: NT-licensed bookies take 1.8 billion bets a year](https://thestraight.com.au/nt-licensed-bookies-take-1-8-billion-bets-a-year/)
- [BetStop: The National Self-Exclusion Register](https://www.betstop.gov.au/)

## Next

- [Quickstart](https://sockodds.com/docs/quickstart/)
- [Pricing](https://sockodds.com/pricing/)
- [Reading prices](https://sockodds.com/docs/odds/)
- [Scores and odds: grading AFL and NRL bets](https://sockodds.com/blog/scores-and-odds-api-grading-afl-nrl-bets/)

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