Growing Discord community — direct access to the developer, live coverage & picks. Join the Discord Join now →
Leagues Matches Predictions Stats Coverage
Docs / Guides

Odds & best prices#

BSD exposes odds at three levels: consensus (one number per market), per-bookmaker comparison, and a dedicated multi-sport Odds API with tick-level prices. All odds are decimal.

Consensus odds for a match (free)#

curl -H "Authorization: Token YOUR_API_KEY" \
     "https://sports.bzzoiro.com/api/v2/events/223510/odds/"
{
  "event_id": 223510,
  "odds": {
    "1x2": { "home": 2.45, "draw": 3.10, "away": 3.05 },
    "over_under_25": { "over": 2.10, "under": 1.75 },
    "btts": { "yes": 2.05, "no": 1.72 }
  }
}

The odds feed (free)#

/api/v2/odds/ is a filterable feed of current prices, one row per market/outcome/bookmaker:

# All 1x2 prices for one match
curl -H "Authorization: Token YOUR_API_KEY" \
  "https://sports.bzzoiro.com/api/v2/odds/?event_id=223510&market=1x2"

# Everything that moved in the last 10 minutes in a league
curl -H "Authorization: Token YOUR_API_KEY" \
  "https://sports.bzzoiro.com/api/v2/odds/?league_id=85&updated_after=2026-08-02T14:50:00Z"

Useful filters: market, outcome, bookmaker_slug, movement (up/down), min_decimal_odds/max_decimal_odds, is_max_quote (only rows that are the best current price for their outcome). Each row carries previous_decimal_odds + movement so you can render drift arrows without storing history.

Markets: 1x2, over_under_15/25/35, btts, double_chance, draw_no_bet, plus lined markets (total_corners, total_red_cards) which include a line field.

Best price per outcome (free)#

curl -H "Authorization: Token YOUR_API_KEY" \
  "https://sports.bzzoiro.com/api/v2/odds/best/?market=1x2&league_id=85"

Returns, per event, the single best decimal price for each outcome with the bookmaker that offers it — the endpoint behind price-comparison tables.

Per-bookmaker grid for one match (free)#

curl -H "Authorization: Token YOUR_API_KEY" \
  "https://sports.bzzoiro.com/api/v2/events/223510/odds/comparison/"

All markets × all bookmakers for one event, ready to render as a comparison grid. Bookmaker names/slugs come from GET /api/v2/bookmakers/.

Prediction-market probabilities (free)#

curl -H "Authorization: Token YOUR_API_KEY" \
  "https://sports.bzzoiro.com/api/v2/events/223510/polymarket/"

Polymarket implied probabilities (0–1 floats) for matches that have an active market — an independent signal to show against bookmaker odds.

Model predictions vs the market (free)#

curl -H "Authorization: Token YOUR_API_KEY" \
  "https://sports.bzzoiro.com/api/v2/events/223510/prediction/"

Forecast probabilities per market (match result, totals, BTTS, corners) with expected goals and a most-likely score. Compare prob_* against the implied probability of the odds feed to build value screens.

Tick-level, multi-sport: the Odds API (separate product)#

For odds across all sports (football, tennis, basketball, hockey, darts, esports…), with observation timestamps and the pre-match closing price per market, use the dedicated Odds API — a separate $5/mo subscription, currently free for everyone until 2026-08-17.

Live odds without polling#

The football WebSocket pushes consensus odds (~30 s cadence) and, with bookmaker_slug subscriptions, per-bookmaker updates for a match — no polling loop needed.

View this page as Markdown · Found a mistake? Tell us