> ## Documentation Index
> Fetch the complete documentation index at: https://docs.odds-api.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Prediction Markets

> Access sports betting odds from prediction markets like Polymarket and Kalshi through our unified API. Get order book depth, lay odds, and real-time prices.

## Overview

Prediction markets like **Polymarket** and **Kalshi** allow users to trade on the outcome of events using an order book model. Unlike traditional bookmakers with fixed odds, these platforms have buyers and sellers creating a dynamic market.

Our API normalizes this data into the same format as traditional bookmakers, making it easy to compare odds across all sources.

<Note>
  Our API covers sports events on Polymarket and Kalshi, normalizing their order books into the same format as traditional bookmakers.
</Note>

## How Prediction Markets Work

On platforms like Polymarket and Kalshi, prices are shown in **cents** (0-100), representing the implied probability. For example:

* **60 cents** = 60% implied probability
* **21 cents** = 21% implied probability

We convert these prices to **decimal odds** for consistency with traditional bookmakers.

### Price to Odds Conversion

Prediction markets have a spread between buy (back) and sell (lay) prices. The table below shows **back prices** - what you pay to bet on an outcome:

| Platform Price | Implied Probability | Decimal Odds |
| -------------- | ------------------- | ------------ |
| 60¢            | 60%                 | 1.67         |
| 21¢            | 21%                 | 4.76         |
| 23¢            | 23%                 | 4.35         |

**Formula:** `Decimal Odds = 1 / (Price in cents / 100)`

## Visual Comparison

Here's how the same match appears on Kalshi and Polymarket, and how our API returns the data.

### Kalshi

<Frame>
  <img src="https://mintcdn.com/odds-apiio/SrRZV6uCznnn5e55/images/kalshi-example.png?fit=max&auto=format&n=SrRZV6uCznnn5e55&q=85&s=376f85125f2de2c2f2e384514a00d8be" alt="Kalshi showing Leeds United vs Arsenal match" width="1606" height="1324" data-path="images/kalshi-example.png" />
</Frame>

Kalshi displays prices in cents with Yes/No buttons. Arsenal at 63¢ means you pay 63 cents to win 1 dollar if they win.

### Polymarket

<Frame>
  <img src="https://mintcdn.com/odds-apiio/SrRZV6uCznnn5e55/images/polymarket-example.png?fit=max&auto=format&n=SrRZV6uCznnn5e55&q=85&s=31f3bfc746c79ccd613c0c8d8a065b29" alt="Polymarket showing Leeds vs Arsenal with order book" width="1484" height="1476" data-path="images/polymarket-example.png" />
</Frame>

Polymarket shows the same match with decimal odds (LEE 6.67, DRAW 4.35, ARS 1.56) and a full order book with bids and asks at multiple price levels.

<Note>
  Our API returns **top-of-book prices** (best bid and ask) rather than the full order book depth. This gives you the actionable prices without the complexity of managing multiple price levels.
</Note>

## API Response

Fetch prediction market odds using the standard `/v3/odds` endpoint:

```bash theme={null}
curl "https://api.odds-api.io/v3/odds?eventId=61300983&bookmakers=Polymarket,Kalshi&apiKey=YOUR_API_KEY"
```

### Example Response

```json theme={null}
{
  "id": 61300983,
  "home": "Leeds United",
  "away": "Arsenal FC",
  "date": "2026-01-31T15:00:00Z",
  "status": "pending",
  "sport": {
    "name": "Football",
    "slug": "football"
  },
  "league": {
    "name": "England - Premier League",
    "slug": "england-premier-league"
  },
  "urls": {
    "Kalshi": "https://kalshi.com/events/KXEPLGAME-26JAN31LEEARS",
    "Polymarket": "https://polymarket.com/event/epl-lee-ars-2026-01-31"
  },
  "bookmakerIds": {
    "Kalshi": "KXEPLGAME-26JAN31LEEARS",
    "Polymarket": "170912"
  },
  "bookmakers": {
    "Kalshi": [
      {
        "name": "ML",
        "updatedAt": "2026-01-28T10:06:39.424Z",
        "odds": [
          {
            "home": "6.25",
            "draw": "4.35",
            "away": "1.56",
            "layHome": "1.61",
            "layAway": "7.14",
            "layDraw": "4.76",
            "depthHome": "9215",
            "depthAway": "2164",
            "depthDraw": "7670",
            "depthLayHome": "5371",
            "depthLayAway": "250",
            "depthLayDraw": "1197"
          }
        ]
      }
    ],
    "Polymarket": [
      {
        "name": "ML",
        "updatedAt": "2026-01-28T09:55:32.185Z",
        "odds": [
          {
            "home": "6.67",
            "draw": "4.35",
            "away": "1.56",
            "layHome": "1.61",
            "layAway": "7.14",
            "layDraw": "4.55",
            "depthHome": "12128",
            "depthAway": "331",
            "depthDraw": "26086",
            "depthLayHome": "9401",
            "depthLayAway": "2112",
            "depthLayDraw": "1630"
          }
        ]
      }
    ]
  }
}
```

## Field Reference

### Standard Fields

These fields work the same as traditional bookmakers:

| Field       | Description                        |
| ----------- | ---------------------------------- |
| `home`      | Decimal odds for home team to win  |
| `draw`      | Decimal odds for a draw            |
| `away`      | Decimal odds for away team to win  |
| `updatedAt` | ISO timestamp of last price update |

### Prediction Market Fields

These additional fields are unique to prediction markets:

| Field          | Description                                   |
| -------------- | --------------------------------------------- |
| `layHome`      | Odds to bet **against** the home team winning |
| `layDraw`      | Odds to bet **against** a draw                |
| `layAway`      | Odds to bet **against** the away team winning |
| `depthHome`    | Available liquidity (USD) to back home team   |
| `depthDraw`    | Available liquidity (USD) to back a draw      |
| `depthAway`    | Available liquidity (USD) to back away team   |
| `depthLayHome` | Available liquidity (USD) to lay home team    |
| `depthLayDraw` | Available liquidity (USD) to lay a draw       |
| `depthLayAway` | Available liquidity (USD) to lay away team    |

### URLs and IDs

| Field                     | Description                            |
| ------------------------- | -------------------------------------- |
| `urls.Kalshi`             | Direct link to the event on Kalshi     |
| `urls.Polymarket`         | Direct link to the event on Polymarket |
| `bookmakerIds.Kalshi`     | Kalshi's internal event identifier     |
| `bookmakerIds.Polymarket` | Polymarket's internal event identifier |

<Tip>
  Use `bookmakerIds` to execute trades directly via Kalshi or Polymarket APIs. Fetch odds from our API, then place orders on their platforms using their native event IDs.
</Tip>

## Understanding Back vs Lay Odds

Prediction markets operate like betting exchanges where you can either:

* **Back** (buy yes): Bet on an outcome to happen
* **Lay** (buy no): Bet against an outcome happening

<AccordionGroup>
  <Accordion title="Back Odds (home, draw, away)">
    The `home`, `draw`, and `away` fields represent the best available price to **back** (bet for) each outcome. This is equivalent to standard bookmaker odds.

    Example: `"away": "1.56"` means you can back Arsenal to win at odds of 1.56 (stake $100 to win $56 profit).
  </Accordion>

  <Accordion title="Lay Odds (layHome, layDraw, layAway)">
    The `layHome`, `layDraw`, and `layAway` fields represent the best available price to **lay** (bet against) each outcome. When you lay, you're acting as the bookmaker.

    Example: `"layAway": "7.14"` means you can bet against Arsenal winning. To win $100 if Arsenal doesn't win, you risk $614 in liability if they do win. The lay odds represent your potential liability, not your payout.
  </Accordion>

  <Accordion title="Depth (Liquidity)">
    The `depth` fields show how much money (in USD) is available at the current best price.

    **Why this matters:** A price with \$50 depth looks good on paper, but you can't get meaningful size on it. Always check depth before assuming a price is actionable.

    Example: `"depthAway": "2164"` means there's \$2,164 available to back Arsenal at the current price. Bets larger than this will get worse prices as they eat into the order book.
  </Accordion>
</AccordionGroup>

## Available Markets

### Kalshi Markets

Kalshi offers several market types for sports events:

| Market                | Description                   |
| --------------------- | ----------------------------- |
| `ML`                  | Match result (Home/Draw/Away) |
| `Spread`              | Handicap betting              |
| `Totals`              | Over/under total goals        |
| `Both Teams To Score` | Yes/No on both teams scoring  |

### Polymarket Markets

| Market                | Description                   |
| --------------------- | ----------------------------- |
| `ML`                  | Match result (Home/Draw/Away) |
| `Totals`              | Over/under total goals        |
| `Both Teams To Score` | Yes/No on both teams scoring  |

## Comparing with Traditional Bookmakers

You can mix prediction markets with traditional bookmakers in the same request:

```bash theme={null}
curl "https://api.odds-api.io/v3/odds?eventId=61300983&bookmakers=Polymarket,Kalshi,Bet365,Unibet&apiKey=YOUR_API_KEY"
```

This allows you to:

* Find the best odds across all platforms
* Identify arbitrage opportunities
* Compare exchange prices with fixed-odds bookmakers

<Tip>
  Prediction markets often have better odds for popular events due to lower margins, but may have less liquidity for obscure matches.
</Tip>

## Use Cases

<CardGroup cols={2}>
  <Card title="Arbitrage Detection" icon="scale-balanced">
    Compare back/lay odds across prediction markets to find guaranteed profit opportunities.
  </Card>

  <Card title="Best Odds Search" icon="trophy">
    Include prediction markets in your odds comparison to find the highest available prices.
  </Card>

  <Card title="Liquidity Analysis" icon="water">
    Use depth fields to understand how much you can bet before moving the market.
  </Card>

  <Card title="Market Sentiment" icon="chart-line">
    Track how prediction market prices move compared to traditional bookmakers.
  </Card>
</CardGroup>

## Next Steps

<CardGroup cols={2}>
  <Card title="Fetching Odds" icon="download" href="/guides/fetching-odds">
    Learn more about fetching odds from any bookmaker
  </Card>

  <Card title="Value Bets" icon="magnifying-glass-dollar" href="/guides/value-bets">
    Use prediction market odds to identify value bets
  </Card>
</CardGroup>
