Sports Odds Scraper — Pinnacle, DraftKings, Bovada & Smarkets
Pricing
from $1.50 / 1,000 odds rows
Sports Odds Scraper — Pinnacle, DraftKings, Bovada & Smarkets
Betting odds from Pinnacle, DraftKings, Bovada and the Smarkets exchange in one dataset: moneyline, spread and total for NFL, NBA, NHL, MLB, college, UFC and 14 soccer leagues, with no-vig fair probabilities, edge vs Pinnacle, best price and arbitrage checks. No login.
Pricing
from $1.50 / 1,000 odds rows
Rating
0.0
(0)
Developer
Yugenox Corp
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
Get betting odds from four books in one clean dataset: Pinnacle (the sharp market), DraftKings, Bovada and the Smarkets betting exchange. Moneyline, point spread and totals for the NFL, NBA, NHL, MLB, college football and basketball, WNBA, CFL, EuroLeague, UFC and 14 soccer leagues — every price already converted to decimal and American odds, with no-vig fair probabilities, the edge of every price against Pinnacle's fair line, best-price flags and an arbitrage check.
No account, no API key, no login. Runs in seconds.
What you get
One row per game × market × line × outcome × book:
- the game: league, teams, start time, one stable
eventKeyacross books and runs - the price: decimal and American odds, implied probability, the book's own no-vig probability and margin
- Pinnacle's no-vig fair probability for the same line (main or alternate line) and the edge of this price against it — positive edge = a +EV bet
- the best price for that outcome across the books you picked, and which book has it
- Smarkets exchange extras: lay price, money available to back and lay, traded volume
- Pinnacle extras: its maximum stake on the market (a good proxy for how sharp the line is)
- DraftKings extras: the opening line and price
Optional best-line rows add, per game, market and line, the best price for every outcome across the books, the combined implied probability and — when it is below 100% — the arbitrage profit and how to split the stake.
Use cases
- +EV betting tools: compare every soft-book price to Pinnacle's no-vig line and keep only positive edges (
minEdgePct). - Arbitrage scanners: let the actor do the cross-book matching and only return arbitrage opportunities (
onlyArbitrage). - Line monitoring: schedule it every few minutes with
onlyChanged— you only pay for prices that moved, each with its previous price. - Tipster and media sites: odds tables, implied probabilities and best prices for your previews.
- Models and research: collect closing lines across books, exchange liquidity and Pinnacle limits for backtesting.
Leagues and books
| Pinnacle | DraftKings | Bovada | Smarkets | |
|---|---|---|---|---|
| NFL, NCAA Football, NBA, NHL, MLB | ✓ | ✓ | ✓ | ✓ |
| NCAA Basketball, WNBA | ✓ | ✓ | ✓ | |
| CFL, EuroLeague, UFC | ✓ | ✓ (CFL, UFC) | ✓ (CFL, EuroLeague) | |
| Premier League, Championship, La Liga, Serie A, Bundesliga, Ligue 1, Champions League, Europa League, MLS, Eredivisie, Primeira Liga, Liga MX, Scottish Premiership | ✓ | ✓* | ✓ | ✓ |
| Brasileirão | ✓ | ✓* | ✓ |
* DraftKings soccer lines appear for the matches DraftKings publishes them for (usually the current matchday).
Markets: moneyline (match result; 3-way with the draw in soccer), spread (point spread, Asian handicap in soccer) and total (over/under), full game. Pre-match by default; live games optional.
Input
{"leagues": ["nfl", "nba", "epl"],"books": ["pinnacle", "draftkings", "bovada", "smarkets"],"markets": ["moneyline", "spread", "total"],"hoursAhead": 48,"includeBestLines": true,"maxItems": 2000}
| Field | What it does |
|---|---|
leagues | Leagues to read (see the list in the input form). Off-season leagues just return no games. |
books | Books whose prices are saved. Pinnacle is always read as the fair-price reference; its rows are saved only if selected. |
markets | moneyline, spread, total. |
hoursAhead | Only games starting within this many hours (default 168 = one week; 0 = everything listed). |
minEdgePct | Keep only prices at least this % above Pinnacle's fair price (0 = every +EV price). |
includeBestLines | Add the best-line / arbitrage rows. |
onlyArbitrage | Save only best-line rows that are an arbitrage. |
onlyChanged | Save only prices that are new or moved since the last run with the same settings. |
allLines | Also save alternate spread and total lines. |
includeLive | Also save games already in play. |
maxItems | Maximum rows for the run (0 = no limit). One NFL week on all four books is about 340 rows. |
Output example
A real row (Thursday Night Football, saved 2026-10-29):
{"rowType": "odds","sport": "american-football","league": "NFL","eventKey": "nfl-2026-10-30-carolina-panthers-at-green-bay-packers","eventName": "Carolina Panthers @ Green Bay Packers","homeTeam": "Green Bay Packers","awayTeam": "Carolina Panthers","startTime": "2026-10-30T00:15:00.000Z","book": "smarkets","bookEventUrl": "https://smarkets.com/event/45247319/sport/american-football/nfl/2026/10/30/00-15/carolina-panthers-at-green-bay-packers","market": "moneyline","line": null,"outcome": "home","outcomeName": "Green Bay Packers","priceDecimal": 1.52,"priceAmerican": -192,"impliedProbability": 0.657895,"noVigProbability": 0.638112,"bookMarginPct": 3.1,"pinnacleFairProbability": 0.643389,"pinnacleFairDecimal": 1.5543,"edgePct": -2.205,"isBestPrice": false,"bestPriceDecimal": 1.5208,"bestPriceBook": "draftkings","booksQuoting": 4,"layPriceDecimal": 1.5499,"backLiquidityGbp": 8.03,"layLiquidityGbp": 89,"matchedVolumeGbp": 369,"booksListingEvent": ["pinnacle", "draftkings", "bovada", "smarkets"],"scrapedAt": "2026-10-29T04:46:43.346Z"}
A best-line row (same run, Premier League):
{"rowType": "bestLine","eventName": "Chelsea vs Manchester United","market": "moneyline","booksQuoting": 4,"bestPrices": [{ "outcome": "home", "outcomeName": "Chelsea", "book": "smarkets", "priceDecimal": 1.9001, "priceAmerican": -111, "pinnacleFairProbability": 0.527139, "edgePct": 0.162 },{ "outcome": "away", "outcomeName": "Manchester United", "book": "smarkets", "priceDecimal": 4.1999, "priceAmerican": 320, "pinnacleFairProbability": 0.23065, "edgePct": -3.129 },{ "outcome": "draw", "outcomeName": "Draw", "book": "smarkets", "priceDecimal": 4.1, "priceAmerican": 310, "pinnacleFairProbability": 0.242211, "edgePct": -0.693 }],"combinedImpliedProbability": 1.008291,"isArbitrage": false,"arbitrageProfitPct": null}
The dataset has two ready-made views: Odds and Best lines & arbitrage. Download as JSON, CSV, Excel, or read it through the API.
Pricing
Pay per result: $1.50 per 1,000 rows (each row = one book's price for one outcome, or one best-line row), plus $0.001 per league read (all selected books' prices for that league fetched and matched) and $0.001 per run (at the default 256 MB memory). You never pay for prices skipped by onlyChanged, filtered out by minEdgePct, or beyond your maxItems, nor for a league none of your selected books answered for.
Examples: one NFL week on all four books (≈ 340 rows) ≈ $0.51; the moneyline of one Premier League round on all four books (120 rows) ≈ $0.18; a scheduled onlyChanged check of one league where nothing moved = $0.002.
Tips
- Polling: schedule the actor (e.g. every 5–15 minutes) with
onlyChanged: true— each run only returns and charges moved prices. - +EV only:
minEdgePct: 1returns just the soft-book prices at least 1% above Pinnacle's fair line. - Arbitrage only:
onlyArbitrage: truereturns nothing (and costs only the run and league-read fees) unless an arbitrage exists. - Narrow the window with
hoursAhead(e.g. 24) for same-day betting. - Join rows across books and runs with
eventKey; join outcomes withmarket+line+outcome. - Smarkets is an exchange: it charges a commission on net winnings (about 2%), which the arbitrage check does not subtract.
FAQ
How fresh are the prices? They are read live from each book when the run starts — a one-league run takes about 5 seconds.
How are games matched across books? By both team names (with spelling variants like "Man Utd" / "Manchester United") and the start time. Games listed with home and away swapped (neutral venues) are re-oriented so every row uses the same home team and spread sign.
What is the edge? The expected return of a 1-unit bet at that price if Pinnacle's no-vig probability is the true probability: edge = fair probability × decimal odds − 1. Pinnacle's own prices show a small negative edge (its margin).
Where do the DraftKings prices come from? From the main lines DraftKings publishes to ESPN's public scoreboards (current and opening line). They cover games within about a day or a week depending on the sport, and only the main line per market.
Why does a league return no games? It is off-season, or no game starts within hoursAhead. The run still succeeds and tells you so; you pay only the run and league-read fees.
Is it legal to scrape sportsbook odds? The actor reads only public odds pages that anyone can see without an account, at a modest pace, and respects each site's robots.txt. Odds are factual price data. Whether and how you may use them depends on your country and purpose — betting itself is restricted in many places — so check the rules that apply to you.
Does it access any private data? No. It reads public prices and team names only — no accounts, no personal data, no bets.
What if a book is unavailable? Each book is read separately: if one is down or refuses, its prices are missing, the other books are still saved, and the run's status message says which book and why. When the missing book is Pinnacle, the fair-probability and edge columns stay empty for that run; the next run usually has them again.