> ## Documentation Index
> Fetch the complete documentation index at: https://oddsstream.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Bookmakers

> List active bookmakers and their current odds coverage.

## GET /api/bookmakers

Returns all bookmakers that have odds scraped within the last 10 minutes. Use the `name` field as the `bookmaker` filter on `/api/odds`, `/api/events`, and `/api/value-bets`.

### Query Parameters

| Parameter | Type    | Default | Description                                                  |
| --------- | ------- | ------- | ------------------------------------------------------------ |
| `is_live` | boolean | —       | `true` to filter to bookmakers with live (in-play) odds only |

### Response

```json theme={null}
{
  "data": [
    {
      "name": "Betsson",
      "odds_count": 12548,
      "has_live": false,
      "last_scraped_at": "2026-04-20T14:09:16Z"
    },
    {
      "name": "Winamax",
      "odds_count": 3581,
      "has_live": false,
      "last_scraped_at": "2026-04-20T14:07:11Z"
    },
    {
      "name": "Betclic",
      "odds_count": 4508,
      "has_live": true,
      "last_scraped_at": "2026-04-20T14:09:00Z"
    },
    {
      "name": "Unibet.fr",
      "odds_count": 3846,
      "has_live": false,
      "last_scraped_at": "2026-04-20T14:09:11Z"
    }
  ],
  "meta": {
    "count": 4,
    "rate_limit_remaining": 298
  }
}
```

### Response Fields

| Field             | Type            | Description                                                               |
| ----------------- | --------------- | ------------------------------------------------------------------------- |
| `name`            | string          | Bookmaker display name — use this value exactly as the `bookmaker` filter |
| `odds_count`      | integer         | Number of distinct odds rows scraped in the last 10 minutes               |
| `has_live`        | boolean         | `true` if this bookmaker has in-play odds available right now             |
| `last_scraped_at` | ISO-8601 string | Timestamp of the most recent scrape for this bookmaker                    |

### Active Bookmakers

| Bookmaker    | Country | Notes                           |
| ------------ | ------- | ------------------------------- |
| `Betsson`    | FR      | High market depth, all sports   |
| `Winamax`    | FR      | Strong French football coverage |
| `Betclic`    | FR      | Live odds available             |
| `Unibet.fr`  | FR      | Wide player prop coverage       |
| `1xbet`      | —       | Broad international coverage    |
| `Bet365`     | UK      | All major sports                |
| `DaznBet`    | FR      | French leagues, Swarm data      |
| `Vbet`       | FR      | French leagues, Swarm data      |
| `Stake`      | —       | Crypto bookmaker                |
| `Cloudbet`   | —       | Crypto bookmaker                |
| `Polymarket` | —       | Prediction market prices        |

### Notes

* Only bookmakers with scrapes in the **last 10 minutes** appear. Use `GET /api/health` (internal) to see all scrapers' staleness.
* `odds_count` reflects the number of individual odds lines (one row per selection), not the number of events.
* Cache TTL: 60 seconds.

### Code Examples

```bash theme={null}
# All active bookmakers
curl "https://api.oddsstream.io/api/bookmakers" \
  -H "X-Api-Key: os_live_YOUR_KEY"

# Only bookmakers with live odds
curl "https://api.oddsstream.io/api/bookmakers?is_live=true" \
  -H "X-Api-Key: os_live_YOUR_KEY"
```

```python theme={null}
import requests

resp = requests.get(
    "https://api.oddsstream.io/api/bookmakers",
    headers={"X-Api-Key": "os_live_YOUR_KEY"}
)
bookmakers = [b["name"] for b in resp.json()["data"]]
print("Active bookmakers:", bookmakers)
# → ['Betsson', 'Winamax', 'Betclic', ...]
```

```javascript theme={null}
const resp = await fetch("https://api.oddsstream.io/api/bookmakers", {
  headers: { "X-Api-Key": "os_live_YOUR_KEY" }
});
const { data } = await resp.json();
const liveBookmakers = data.filter(b => b.has_live).map(b => b.name);
```
