Bovada odds API · affiliate 2
Bovada odds API.
Main lines and alternate rungs, together.
Request Bovada prices through TheRundown beside DraftKings, FanDuel, and the rest of the 25+ books. One response shape keeps the book, participant, and exact line with each quote.
Free key · 20,000 data points a day · No credit card · Every book and live odds from $49/mo
RequestPython 3 · requests
import os
from datetime import datetime, timezone
import requests
key = os.environ["THERUNDOWN_API_KEY"]
api = "https://therundown.io/api/v2"
headers = {"X-TheRundown-Key": key}
# Next game date across the NFL (2), NBA (4), and NHL (6)
dates = requests.get(
f"{api}/sports/dates",
params={
"sport_ids": "2,4,6",
"format": "epoch",
"exclude_canceled": "true",
},
headers=headers,
timeout=30,
).json()
now = datetime.now(timezone.utc).timestamp()
upcoming = [
(sport_id, stamp)
for sport_id, body in dates.items()
for stamp in body.get("dates") or []
if stamp > now
]
sport_id, stamp = min(upcoming, key=lambda row: row[1], default=("2", now))
date = datetime.fromtimestamp(stamp, timezone.utc).date().isoformat()
# Bovada next to DraftKings and FanDuel: moneyline, spread, and total
odds = requests.get(
f"{api}/sports/{sport_id}/events/{date}",
params={"market_ids": "1,2,3", "affiliate_ids": "2,19,23", "main_line": "true"},
headers=headers,
timeout=30,
)
print(odds.text)Response200 · trimmed
{
"events": [
{
"event_id": "061bb212f95220c351f78a7731e29dcd",
"sport_id": 2,
"event_date": "2026-11-01T18:00:00Z",
"markets": [
{
"market_id": 1,
"name": "moneyline",
"participants": [
{
"id": 61,
"type": "TYPE_TEAM",
"name": "Buffalo Bills",
"lines": [
{
"prices": {
"2": {
"price": -175,
"is_main_line": true,
"updated_at": "2026-10-29T12:30:55Z"
}
}
}
]
}
]
}
]
}
]
}Baltimore Ravens at Buffalo Bills, November 1, 2026. Captured October 29 and trimmed to the Buffalo moneyline from Bovada (2). Prices are an example, not a live quote.
Markets
The Bovada prices we sampled.
Open NFL, NBA, and NHL game lines and alternates; NFL and NBA first-half lines, player props, and team totals. Availability varies by source, sport, game, and market.
- Game linesNFL, NBA, and NHL moneylines, spreads, and totals
1 · 2 · 3Starter - Alternate linesAdditional spread and total rungs in all three sampled leagues; NBA points, rebounds, assists, and team-total rungs
omit main_lineStarter - First halvesNFL and NBA first-half moneylines, spreads, and totals
4 · 5 · 6Starter - Player propsNFL passing, rushing, receiving yards, and receptions; NBA points, rebounds, and assists
51 · 53 · 57 · 58 · 29 · 35 · 39Starter - Team totalsNFL and NBA team totals
94Starter
Verified October 29, 2026 using one November 1 NFL event and one October 30 event each from the NBA and NHL. These rows describe the open pre-match prices in those samples, not a guarantee that every game carries every market.
Books
25+ books. One schema.
Use affiliate_ids=2 for Bovada alone, or 2,19,23 for Bovada, DraftKings, and FanDuel. Keep each source ID with its price when comparing an exact line.
Sportsbooks · 20
- DraftKingsFree19
- FanDuelFree23
- BetMGMFree22
- Caesars Sportsbook35
- Pinnacle3
- Circa Sports32
- BookMaker7
- BetCRIS9
- Bovada2
- theScore Bet24
- Unibet21
- HardRock28
- Bet10533
- Heritage Sports34
- BetOnline6
- SportsBetting4
- LowVig11
- Intertops14
- Matchbook16
- YouWager18
Prediction markets · 3
- Kalshi25
- Polymarket26
- Polymarket US31
Exchanges · 2
- ProphetX29
- Novig30
Live from GET /api/v2/affiliates. GET /api/v2/affiliates lists the current sources and their status. Each source posts its own prices and market selection. Coverage varies by league, game, and market.
Free vs paid
Try the schema free. Add Bovada on Starter.
Choose TheRundown for odds and scores joined under one event ID, with participant and signed-line identities and explicit price closure signals. Request the books and markets your application uses, then measure X-Datapoints. Paid subscriptions have a fixed fee and included volume; unrequested price rows conserve that volume without reducing the base fee. Read the sports odds API guide · Explore joined sports data · Metering rules
Free covers DraftKings, FanDuel, and BetMGM pre-match game lines, five minutes delayed. Bovada is not included.
Bovada starts on Starter ($49 a month) with a 60-second delay for internal or personal use. Pro ($149 a month) adds commercial end-user display and a 30-second delay. Ultra ($399 a month) delivers available prices in real time over REST and WebSocket.
Questions
Before you build.
Plans, markets, books, and IDs for the Bovada odds API.
- Does Bovada have an odds API?
- TheRundown provides Bovada odds through its sports data API, using affiliate ID 2. This page describes TheRundown access, not an official Bovada developer program.
- How do I request Bovada odds?
- Choose Starter or above, send your TheRundown API key in the X-TheRundown-Key header, and set affiliate_ids=2 on an events request. Add other affiliate IDs to compare sources in the same response.
- Is Bovada included on the free API plan?
- No. Free keys cover DraftKings, FanDuel, and BetMGM pre-match game lines with a five-minute delay. Bovada requires Starter or above. You can test the shared response shape on Free.
- Which Bovada markets did you verify?
- Open NFL, NBA, and NHL moneylines, spreads, totals, and alternate rungs; NFL and NBA first-half lines, player props, and team totals; and NBA player-prop alternates. The rows above list the sampled market IDs and dates. Coverage varies by sport, game, and market.
- How do I request Bovada alternate lines?
- Omit main_line=true to request all posted rungs. Keep the event, market, participant, signed line value, and affiliate ID together. A different main line at another book remains a different selection.
- How do I tell whether a Bovada quote is open?
- Use the exact price object: a nonempty closed_at marks a closed quote, while an omitted or empty closed_at means open, including a reopened quote. Do not infer closure from updated_at age. Exclude closed and off-board prices when comparing available quotes.Compare open sportsbook prices in Python →