# Odds API for Prediction Market Arbitrage
URL: https://sockodds.com/use-cases/prediction-market-arbitrage-api/

> Compare Kalshi and Polymarket prices against Australian sportsbook odds in one schema. Find exchange-vs-book arbitrage in one odds API.

Compare Kalshi and Polymarket prices against Australian sportsbook odds in one schema. Find exchange-vs-book arbitrage in one odds API.

Kalshi and Polymarket prices sit in the same `byBookmaker` object as the Australian sportsbooks, keyed like any other book. That makes exchange-vs-book comparison a loop over one object rather than two integrations.

## Why build your prediction market arbitrage on SockOdds

- **Exchanges and books together.** `polymarket`, `kalshi`, `betfairexchange`, `prophetexchange` next to `sportsbet`.
- **Outcome alignment.** Shared `oddID`.
- **No-vig benchmark.** `fairOdds`.
- **Freshness per entry.** `available` and `lastUpdatedAt`.
- **One schema.** American string plus decimal on every entry.

## How exchange-vs-sportsbook arbitrage works with our data

### Pull exchange and book prices together

`bookmakerID=polymarket,kalshi,sportsbet,tab`.

### Convert each price to implied probability

`1 / decimal`.

### Benchmark against fairOdds

Flag the side where the book and the exchange disagree most.

## Example request

```bash
curl "https://api.sockodds.com/v2/events/?leagueID=NFL&bookmakerID=polymarket,kalshi,sportsbet,pointsbet&oddID=points-home-game-ml-home&includeOpposingOdds=true&limit=1" \
  -H "x-api-key: YOUR_API_KEY"
```

Contract prices and book prices on the same outcome:

```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 it yourself

| Capability | SockOdds | building it yourself |
| --- | --- | --- |
| Exchanges + books together | Same `byBookmaker` object | Separate exchange APIs plus an odds API |
| Outcome alignment | Shared `oddID` | Match by hand |
| No-vig benchmark | `fairOdds` | De-vig every book |
| Freshness | `available` + `lastUpdatedAt` | Track each source |
| Price normalisation | One schema | Map each source's format |

## Frequently asked questions

### What is a prediction market arbitrage API?

A feed with contract prices and book prices on the same outcome, in one schema.

### Does it include Kalshi and Polymarket?

Yes, where they price a covered fixture.

### How do I compare exchange prices to sportsbook odds?

Convert both to implied probability.

### Is exchange-vs-sportsbook arbitrage risk-free?

No — settlement rules differ and exchange liquidity is finite.

### How is this different from sportsbook arbitrage?

The counterparty and the settlement terms.

### How does this relate to the Prediction Market API?

[Same feed](https://sockodds.com/prediction-market-api/), framed for arbitrage.

## Related use cases

- [Odds API for Arbitrage Betting](https://sockodds.com/use-cases/arbitrage-betting-api/): An arbitrage betting API that returns every Australian book's price per market through byBookmaker, so you can scan every bookmaker and alt line for arbs and middles..
- [Odds API for Positive EV Betting](https://sockodds.com/use-cases/positive-ev-betting-api/): Positive EV betting API with no-vig fairOdds and every AU book's price side by side, so you can surface +EV bets without building your own devig pipeline..
- [Odds Comparison & Line Shopping API](https://sockodds.com/use-cases/odds-comparison-api/): Compare bookmaker odds with one API call.
- [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.
