VOOZH about

URL: https://apify.com/scrapesage/sports-betting-odds-scraper

โ‡ฑ Sports Betting Odds Scraper: Live Odds & Arbitrage ยท Apify


๐Ÿ‘ Sports Betting Odds Scraper - Live Lines, Arbitrage & +EV avatar

Sports Betting Odds Scraper - Live Lines, Arbitrage & +EV

Pricing

from $8.00 / 1,000 game / event odds records

Go to Apify Store

Sports Betting Odds Scraper - Live Lines, Arbitrage & +EV

Scrape live sports betting odds from FanDuel, Bovada & Pinnacle (sharp lines): moneyline, spread & totals for NFL, NBA, MLB, NHL, UFC, soccer & more. Best price per outcome, no-vig fair odds, arbitrage & +EV value detection, line-movement monitoring. No third-party API key. JSON, CSV, Excel.

Pricing

from $8.00 / 1,000 game / event odds records

Rating

0.0

(0)

Developer

๐Ÿ‘ Scrape Sage

Scrape Sage

Maintained by Community

Actor stats

0

Bookmarked

3

Total users

2

Monthly active users

a day ago

Last modified

Share

Sports Betting Odds Scraper โ€” Live Lines, Best Price, Arbitrage & +EV

Pull live sports betting odds from FanDuel, Bovada and Pinnacle in one run โ€” moneyline, spread/handicap and totals for NFL, NBA, MLB, NHL, WNBA, UFC/MMA, FIFA World Cup, soccer, tennis, golf and more. Every game comes back as one clean record with every book's price side by side, the best price per outcome (line shopping), no-vig fair odds, and automatic arbitrage and +EV value-bet detection.

No third-party odds API key. The actor reads each sportsbook's own JSON directly โ€” fast, keyless, no browser. Add monitoring mode to capture only new games and line movement since your last run.

Why this sports odds scraper?

Most odds scrapers give you one book, or wrap a paid third-party odds API, and return raw prices with no analysis. This actor aggregates multiple books directly and ships the richest, most actionable odds dataset in the category:

FeatureTypical scrapersThis actor
Books in a single run1โœ… FanDuel + Bovada + Pinnacle (sharp)
Needs a paid third-party odds API keyoftenโœ… No โ€” direct from each book
Best price per outcome (line shopping)โŒโœ…
No-vig fair odds & implied probabilityโŒโœ… per book + sharp/consensus
Arbitrage detection with stake splitโŒโœ…
+EV value bets vs the sharp lineโŒโœ…
Moneyline + spread + totals (full game)partialโœ… all three
2-way and 3-way (soccer draw) marketsโŒโœ…
Live / in-play oddsโŒโœ… opt-in
Line-movement monitoring (only changes)โŒโœ…
Output as rich per-game records or flat rowsโŒโœ… both

Pinnacle is the book sharp bettors price off because it runs the lowest margin (often ~2% vs 4โ€“5% at recreational books). This actor uses Pinnacle's no-vig line as the fair-value reference, so a FanDuel or Bovada price that beats it is flagged as +EV automatically.

Use cases

  • Line shopping โ€” always bet the best available number. Each outcome shows every book's price and which book has the best one.
  • Arbitrage / sure bets โ€” surface games where the best price on each side guarantees a profit, with the exact stake split per leg.
  • +EV / value betting โ€” find recreational-book prices that beat Pinnacle's sharp no-vig fair odds.
  • Line-movement & steam tracking โ€” schedule the actor with monitoring mode to capture only odds that moved, perfect for alerts.
  • Models & backtesting โ€” feed clean, normalized moneyline/spread/total data (American + decimal + implied probability) into your prediction or pricing models.
  • Odds comparison sites, bots & dashboards โ€” power a comparison widget, Discord/Telegram bot, or BI dashboard with structured multi-book odds.

How to use

  1. Sign up for Apify โ€” the free plan is enough to try this actor.
  2. Open the Sports Betting Odds Scraper, pick your leagues, books and markets, and click Start.
  3. Watch games stream into the dataset table.
  4. Export as JSON, CSV, Excel, XML or RSS โ€” or pull results via the Apify API.

Input

{
"leagues":["MLB","WORLDCUP","NBA","UFC"],
"books":["pinnacle","fanduel","bovada"],
"markets":["moneyline","spread","total"],
"outputMode":"events",
"includeLive":true,
"onlyArbitrage":false,
"maxEvents":200
}
  • leagues โ€” MLB, NBA, WNBA, NCAAB, NFL, NCAAF, NHL, UFC, FIFA World Cup, EPL, UCL, MLS, La Liga, ATP, WTA, PGA, Boxing. Out-of-season leagues simply return nothing.
  • books โ€” pinnacle (sharp reference), fanduel, bovada. Use 2+ to unlock best price + arbitrage.
  • markets โ€” moneyline, spread (run line / puck line / handicap), total (over/under).
  • outputMode โ€” events (one rich record per game, default) or rows (one flat row per book ร— market ร— selection).
  • includeLive (default true) โ€” include in-play games.
  • includeAlternateLines (default false) โ€” capture every alternate spread & total, not just the main line.
  • onlyArbitrage / onlyValueBets โ€” emit only games with an arbitrage or a +EV bet.
  • minArbitrageProfit / minValueEdge โ€” minimum % thresholds for those flags.
  • monitorMode (default false) โ€” emit only new games and moved lines since the last run (great with Schedules).
  • maxEvents โ€” cap on games per run.
  • fanduelState โ€” which state's FanDuel lines to read (default Virginia).

Output

Event mode โ€” one rich record per game (type: "event"):

{
"type":"event",
"eventKey":"MLB|2026-06-17|cincinnati reds-new york mets",
"sport":"Baseball",
"league":"MLB",
"leagueName":"MLB",
"eventName":"New York Mets @ Cincinnati Reds",
"homeTeam":"Cincinnati Reds",
"awayTeam":"New York Mets",
"startTime":"2026-06-17T16:40:00.000Z",
"isLive":false,
"books":["pinnacle","fanduel","bovada"],
"bookCount":3,
"sharpBook":"pinnacle",
"markets":{
"moneyline":{
"selections":{
"home":{
"team":"Cincinnati Reds",
"prices":[
{"book":"bovada","american":111,"decimal":2.11,"impliedProbability":0.4739},
{"book":"fanduel","american":114,"decimal":2.14,"impliedProbability":0.4673},
{"book":"pinnacle","american":115,"decimal":2.15,"impliedProbability":0.4651}
],
"best":{"book":"pinnacle","american":115,"decimal":2.15}
},
"away":{"team":"New York Mets","prices":["..."],"best":{"book":"pinnacle","american":-127}}
},
"fairProbabilities":{"home":0.454,"away":0.546},
"fairReference":"pinnacle",
"bestPrice":{"home":{"book":"pinnacle","american":115},"away":{"book":"pinnacle","american":-127}}
},
"spread":{"lines":[{"point":1.5,"awayPoint":-1.5,"home":{"best":{"book":"pinnacle","american":-141}},"away":{"best":{"book":"bovada","american":125}}}]},
"total":{"lines":[{"point":9,"over":{"best":{"book":"fanduel","american":-108}},"under":{"best":{"book":"bovada","american":-105}}}]}
},
"arbitrage":{"exists":false,"count":0,"opportunities":[]},
"valueBets":[],
"scrapedAt":"2026-06-17T15:30:00.000Z"
}

Rows mode โ€” one flat record per price (type: "oddsRow"):

{"type":"oddsRow","league":"MLB","eventName":"New York Mets @ Cincinnati Reds","market":"moneyline","selection":"home","team":"Cincinnati Reds","point":null,"book":"fanduel","american":114,"decimal":2.14,"impliedProbability":0.4673,"isBestPrice":false,"fairProbability":0.454}

When an arbitrage exists, each opportunity includes the legs and the exact stake split:

{"market":"moneyline","profitPercent":1.84,"impliedBookSum":0.982,
"legs":[{"side":"home","book":"bovada","american":118,"stakePercent":47.1},
{"side":"away","book":"fanduel","american":-115,"stakePercent":52.9}]}

Automate & schedule

Run this actor on autopilot and pull odds into your own stack:

  • Apify API โ€” start runs, fetch datasets, manage schedules over REST.
  • apify-client for JavaScript and apify-client for Python โ€” official SDKs.
  • Schedules โ€” run every few minutes/hourly to track line movement, or daily to grab the next slate. Combine with monitoring mode to capture only what changed.
  • Webhooks โ€” fire a Slack/Discord alert or CRM/sheet update the moment a run finds an arbitrage or a moved line.
import{ ApifyClient }from'apify-client';
const client =newApifyClient({token:'MY_APIFY_TOKEN'});
const run =await client.actor('scrapesage/sports-betting-odds-scraper').call({
leagues:['MLB','WORLDCUP','NBA'],
books:['pinnacle','fanduel','bovada'],
markets:['moneyline','spread','total'],
onlyArbitrage:false,
});
const{ items }=await client.dataset(run.defaultDatasetId).listItems();
console.log(`Got odds for ${items.length} games`);

Integrate with any app

Connect the dataset to 5,000+ apps โ€” no code required:

  • Make โ€” multi-step automation scenarios.
  • Zapier โ€” push arbs or line moves straight into a sheet or chat.
  • Slack โ€” get notified when a monitored slate has a value bet.
  • Google Drive / Sheets โ€” auto-export every run to a spreadsheet.
  • Airbyte โ€” pipe odds into your data warehouse.
  • GitHub โ€” trigger runs from commits or releases.

Use with AI assistants (MCP)

The output is clean, LLM-ready JSON. Call this actor from Claude, ChatGPT or any agent framework through the Apify MCP server โ€” ask your assistant to "find tonight's MLB games where FanDuel beats the Pinnacle no-vig line" and let it run this scraper for you.

More scrapers from scrapesage

Build a complete real-time data stack:

Tips

  • Get data right now: pick an in-season league. In summer, MLB, WNBA and the FIFA World Cup are live; in fall/winter, NFL, NBA, NHL and college sports.
  • Best price & arbitrage need 2+ books โ€” keep at least two books selected (Pinnacle + one recreational book is the most useful pairing).
  • More opportunities: arbitrage and +EV fire most often on live games, alternate lines, soccer and less efficient markets โ€” enable includeLive and includeAlternateLines.
  • Line-movement monitoring: turn on monitorMode and schedule the run; you'll only get games whose odds changed.
  • Proxies: the default Apify Proxy (datacenter, US) works for all three books. If one starts blocking, switch to Residential in the proxy settings.

FAQ

Do I need a sportsbook account or a paid odds API key? No. The actor reads each sportsbook's own public JSON directly. No login, no third-party odds API, no browser.

Which books are supported? FanDuel, Bovada and Pinnacle. Pinnacle is included as the sharp reference book used for no-vig fair odds and +EV detection.

What are no-vig / fair odds? Sportsbooks bake a margin ("vig") into their prices. Removing it gives the implied "fair" probability of each outcome. The actor reports per-book no-vig probabilities and a sharp/consensus fair line so you can spot mispriced sides.

How does arbitrage detection work? For each market it takes the best available price on every outcome across your selected books; if their implied probabilities sum to under 100%, it's an arbitrage, and the actor returns the guaranteed profit % and the stake split per leg.

Can I get only the opportunities? Yes โ€” enable onlyArbitrage and/or onlyValueBets, and set minArbitrageProfit / minValueEdge thresholds.

How do I track line movement? Turn on monitorMode and run on a Schedule. The actor remembers prior odds and emits only games that are new or whose lines moved.

American or decimal odds? Both โ€” every price includes American odds, decimal odds and implied probability.

Is scraping odds legal? This actor collects publicly available odds data. You are responsible for using the data in compliance with applicable laws and each site's terms, and for gambling responsibly where legal.

Need help?

Open an issue on the actor's Issues tab, or visit the Apify help center. Feature requests (more books, leagues, player props) are welcome โ€” this actor is actively maintained.

You might also like

Sports Odds Live Feed: DraftKings, Pinnacle, FanDuel, BetMGM

scrapemint/sports-odds-scraper

Pull live sports betting odds across DraftKings, Pinnacle, FanDuel, BetMGM, Caesars, Bet365 and more. H2H, spreads, totals, props. Normalized schema, best price per outcome, arbitrage detection. No third party API key. Pay per row.

195

5.0

(1)

FanDuel Sportsbook Odds Scraper

parseforge/fanduel-scraper

Scrape live FanDuel Sportsbook odds in real time: moneylines, spreads, totals, futures, and runners across NFL, NBA, MLB, NHL, MMA, soccer, and tennis.

44

5.0

(1)

Pinnacle Odds Scraper โ€” h2h, spreads, totals + 5K specials

zhorex/sports-odds-aggregator

Pre-match + live Pinnacle odds. 11 sports, h2h / spreads / totals + 5,000+ specials per sport (futures, yes-no, exact totals, first-to-score, team props). PPE $0.01-0.04 per snapshot. Datacenter proxy. The Odds API + OddsJam alternative for sharp bettors and EV teams.

YallaMotor Scraper | GCC Used & New Cars Marketplace

haketa/yallamotor-scraper

YallaMotor scraper & API (GCC cars): search new and used cars and export make, model, year, price, mileage, specs, seller, location, photos and listing URL. Gulf automotive marketplace data and dealer lead generation โ€” fast, no login.

Sports Betting Odds Scraper โ€” Live Lines by Bookmaker

sian.agency/sports-betting-odds-scraper

Pull live sports betting odds from 8+ bookmakers in one run โ€” moneyline, spreads and totals for NFL, NBA, MLB, NHL, soccer and more. One row per bookmaker line, plus live scores and a sports directory. American or decimal odds, US/UK/EU/AU regions. Export JSON, CSV or Excel.

๐Ÿ‘ User avatar

SIรN Oรœ

2

Sports Betting Intelligence - Odds & Arbitrage AI

viralanalyzer/sports-betting-intelligence

Real-time odds comparison across 20+ bookmakers. Arbitrage detection.

107

5.0

(3)

Flashscore Betting Odds Extractor

extractify-labs/flashscore-matches-odds

Extract live and opening betting odds from Flashscore for football and basketball. Get odds by bookmaker, bet type, and match for odds comparison, arbitrage detection, and prediction models.

๐Ÿ‘ User avatar

Extractify Labs

36

DraftKings Odds API - Real-Time Lines & Player Props

zen-studio/draftkings-odds

Extract real-time DraftKings sportsbook odds for 11 sports and 43+ leagues. Get spreads, moneylines, totals, player props, and futures in 3 odds formats. Always-on HTTP API. Live in-play odds with scores. NBA, NFL, MLB, NHL, EPL, and more. No login required.