GET /api/odds
Returns current bookmaker odds — one row per(event × bookmaker × market_type × period) combination. The odds field is an object keyed by selection text, making it easy to compare prices across bookmakers for the same market.
For the full market breakdown of a single event (all bookmakers, all markets, grouped), use GET /api/events/{id} instead.
Query Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
sport | string | — | Filter by sport name (e.g. Football, Tennis) |
competition | string | — | Filter by competition code (e.g. EPL, NBA) |
bookmaker | string | — | Filter by bookmaker name (e.g. Winamax, Betclic) |
market_type | string | — | Filter by market type (e.g. moneyline, spread, total) |
is_live | boolean | — | true = in-play only, false = pre-match only |
limit | integer | 100 | Max rows returned, up to 500 |
Response
Response Fields
| Field | Type | Description |
|---|---|---|
bookmaker | string | Bookmaker name |
match_name | string | Canonical event name from the scraper |
competition | string | Competition code |
sport | string | Sport derived from competition code |
market_type | string | Market type — see table below |
period | integer | Time segment (0=full time, 1=1st half, etc.) |
is_live | boolean | true if this is an in-play market |
odds | object | Keyed by selection text → decimal odds value |
match_date | ISO-8601 string | null | Scheduled kick-off (UTC) |
scraped_at | ISO-8601 string | When these odds were last scraped |
url | string | null | Direct deep-link to this market on the bookmaker site |
liquidity | float | null | Pinnacle max bet size (only populated for Pinnacle rows) |
odds Object Format
The odds field groups all selections for this (bookmaker, event, market, period) combination into a single object. Selection texts vary by market type:
| Market Type | Typical odds keys |
|---|---|
moneyline (football) | "Home Team", "Draw", "Away Team" |
moneyline (other) | "Home Team", "Away Team" |
spread | "Home Team +1.5", "Away Team -1.5" |
total | "Over 2.5", "Under 2.5" |
btts | "Yes", "No" |
double_chance | "1X", "X2", "12" |
player_prop | "Player Name Stat Over X.X", "Player Name Stat Under X.X" |
team_total | "Home Over 1.5", "Home Under 1.5" |
GET /api/odds/live
Same asGET /api/odds but returns only in-play events. Requires Pro+ Live plan.
Query Parameters
Identical toGET /api/odds (same filters, same limit).
Notes
- Live odds update every 5–10 seconds. Poll accordingly.
- Bookmakers with live coverage: Betclic, Winamax (selected events), Unibet.fr (selected events).
GET /api/odds/
Returns all current odds for a specific bookmaker. Equivalent toGET /api/odds?bookmaker={bookmaker} but slightly more efficient.
Path Parameter
| Parameter | Description |
|---|---|
bookmaker | Exact bookmaker name (e.g. Winamax, Betclic) — use GET /api/bookmakers to get valid names |
Query Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
sport | string | — | Filter by sport |
competition | string | — | Filter by competition code |
market_type | string | — | Filter by market type |
is_live | boolean | — | In-play filter |
limit | integer | 100 | Max rows, up to 500 |
Response
Same format asGET /api/odds.