# Odds API for Bet Tracking & Settlement
URL: https://sockodds.com/use-cases/bet-tracking-settlement-api/

> A bet tracking and settlement API: grade bets from results and the started/ended/finalized flags. Odds and results arrive in one feed.

A bet tracking and settlement API: grade bets from results and the started/ended/finalized flags. Odds and results arrive in one feed.

A bet tracker needs the odds at bet time and the outcome afterwards, joined without ambiguity. SockOdds keeps both in one object: store the `eventID` and `oddID` when the bet is placed, refetch when `status.finalized` flips, and grade from `results`. Finished events are retained, so the refetch always works.

## Why build your settlement on SockOdds

- **One id joins odds and results.** The `oddID` grammar names the period, entity and stat; `results.{periodID}.{statEntityID}.{statID}` is where the outcome lands.
- **Flags say when to grade.** `started`, `ended` and `status.finalized`.
- **scoringSupported per market.** You know in advance which markets the source can grade.
- **Retained events.** The event you bet on is still there after the final siren.
- **Honest gaps.** Where a source does not carry results, `results` is empty rather than guessed.

## How a bet tracker grades with our data

### Store the ticket at bet time

Save `eventID`, `oddID`, the book, the price and the line.

### Refetch finalized events

`/events?eventID=…` and check `status.finalized`.

### Grade from results

Read the stat for the market's grammar and compare with the line; see [handling odds](https://sockodds.com/docs/guides/handling-odds/).

## Example request

```bash
curl "https://api.sockodds.com/v2/events/?eventID=afl_2026-09-03_fremantle_vs_hawthorn" \
  -H "x-api-key: YOUR_API_KEY"
```

A retained, finished event: status, results and the last odds seen.

```json
{
  "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 settlement yourself

| Capability | SockOdds | building settlement yourself |
| --- | --- | --- |
| Result data | `results` on the event, retained | A second results API |
| When to grade | `status.finalized` and per-market flags | Poll a separate feed |
| Odds + result join | Same object, same id | Match by team name and time |
| Grading logic | Compare the stat to the line | Same maths after joining two feeds |
| Market identity | One `oddID` across books | Reconcile per source |

## Frequently asked questions

### What is a bet settlement API?

A feed that returns the outcome needed to grade a bet next to the odds it was placed at.

### How do I auto-grade a bet?

When `status.finalized` is true, read `results.{periodID}.{statEntityID}.{statID}` and compare with the line.

### Which bet types can be settled?

Any market with `scoringSupported: true` whose event has results.

### Do I need a separate results API?

No, where the source carries results; the feed says when it doesn't.

### Can I track closing line value?

Snapshot the last price before kick-off yourself; the feed retains the event.

### How do I know when a bet can be graded?

`status.finalized`.

## Related use cases

- [Sports Odds API for Betting Apps](https://sockodds.com/use-cases/sports-betting-app-api/): The sports betting app API with odds from every major Australian bookmaker, event status, results, and click-to-bet deeplinks in a single feed..
- [Historical Odds Data API](https://sockodds.com/use-cases/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..
- [Odds Data API for Sports Betting Models & Backtesting](https://sockodds.com/use-cases/sports-betting-machine-learning/): Sports betting machine learning data API with retained events, no-vig fair odds labels, and results for training and backtesting models on AFL, NRL and more..
- [Pricing](https://sockodds.com/pricing/): plans priced on request rate and scope, including a free Lite tier with no card.

## Start building today

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