Sports Odds Scraper - NFL, NBA & Soccer Lines, Scores, No Login avatar

Sports Odds Scraper - NFL, NBA & Soccer Lines, Scores, No Login

Pricing

from $0.83 / 1,000 games

Go to Apify Store
Sports Odds Scraper - NFL, NBA & Soccer Lines, Scores, No Login

Sports Odds Scraper - NFL, NBA & Soccer Lines, Scores, No Login

Sports odds scraper at $1.50 per 1,000 games. Moneyline, spread and total from Pinnacle, Unibet and DraftKings for NFL, NBA, MLB, NHL, soccer, tennis, UFC and cricket: best price, implied and margin-free probability, line movement, live and final scores. No login.

Pricing

from $0.83 / 1,000 games

Rating

0.0

(0)

Developer

locaihost data

locaihost data

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

7 hours ago

Last modified

Share

Odds from three bookmakers and official scores, merged into one row per game: moneyline, spread and total from Pinnacle, Unibet and DraftKings, the best price for every outcome, margin-free probabilities, the opening line, what moved since your last run, and live and final scores. NFL, NCAA, NBA, WNBA, MLB, NHL, 12 soccer competitions, ATP and WTA tennis, UFC and cricket.

$1.50 per 1,000 games. No login, no API key, no setup.

Try it

Paste this into the input (JSON tab) and press Start. It takes a few seconds.

{
"leagues": ["nfl", "epl"],
"daysAhead": 3
}

Or from code:

curl -X POST "https://api.apify.com/v2/acts/locaihost~sports-odds/run-sync-get-dataset-items?token=YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{"leagues": ["nba", "nhl"], "markets": ["moneyline", "total"], "daysAhead": 1}'

What you get

One row per game. The columns people use most come first:

FieldExample
startTime, league, homeTeam, awayTeam, status2026-10-16T00:15:00Z, nfl, Denver Broncos, Seattle Seahawks, upcoming
homeBestDecimal, homeBestAmerican, homeBestBookmaker2.25, 125, Unibet
drawBest..., awayBest...the same for the draw (soccer, cricket) and the away side
homeFairProbability, drawFairProbability, awayFairProbability0.4345: the book's margin taken out, averaged across books
spreadLine, spreadHomeBestDecimal, spreadAwayBestDecimal2.5, 1.9346, 1.9524 (best prices at the line most books quote)
totalLine, overBestDecimal, underBestDecimal40.5, 1.93, 1.9524
homeScore, awayScore, winner, periodScoreslive and final scores, by quarter, period, inning, half or set
oddsevery price from every book (below)
oddsChangedSinceLastRun, lastRunSeenAtdid anything move since this task last ran
venue, statusDetail, espnUrl, sourceIdsEmpower Field at Mile High, Thu, October 15th at 8:15 PM EDT

Each entry in odds:

{
"bookmaker": "draftkings", "bookmakerName": "DraftKings",
"market": "spread", "outcome": "home", "line": 2.5,
"decimal": 1.9259, "american": -108, "impliedProbability": 0.5192,
"fairProbability": 0.4957, "margin": 0.0475,
"openDecimal": 1.8696, "openLine": 2.5,
"previousDecimal": 1.9091, "previousLine": 2.5, "change": 0.0168,
"updatedAt": null
}
  • market is moneyline (match result; 1X2 in soccer), spread (handicap) or total (over/under). Full game, main lines.
  • outcome is home, draw, away, over or under. A spread line belongs to its side (-2.5 for the favourite).
  • fairProbability and margin come from that book's own prices in that market.
  • openDecimal / openLine: the opening line (DraftKings).
  • previousDecimal / previousLine / change: the value at your last run of the same task, so you can track line movement over time. change is empty when the line itself moved.

Dataset views: Best prices, American odds, Scores, and All prices and movement. Export as JSON, CSV, Excel or through the API.

Where the data comes from

SourceWhat it adds
PinnacleThe sharpest market in the world: low margins, widely used as the reference price. All sports above
UnibetA large European book. All sports above; soccer comes with 1X2 and total goals
DraftKings (via ESPN)US book, with the opening line. NFL, NCAA, NBA, WNBA, MLB, NHL and the major soccer leagues
ESPNOfficial schedules, venues, live scores, final scores and scores by period

The three listings of a game are matched by start time and team names (with the usual spellings handled: "Man Utd", "Manchester United"). A game only one source lists still gets its own row.

Common setups

Line movement tracker. Save a task with your leagues, turn on onlyChanged, and schedule it every 15 minutes or every hour. Each run returns only the games whose prices, lines, status or score changed, with the previous value next to every price. You pay only for those rows.

Results feed. "eventStatus": ["finished"], "daysBack": 1, "bookmakers": [] returns yesterday's and today's final scores with scores by period.

One team. "teams": ["Chiefs"] keeps only games involving the Chiefs. Part of a name is enough.

Market comparison for a model. All three books, all three markets, then use odds for each book's price and margin, or the *FairProbability columns as a consensus.

Input

FieldDefaultWhat it does
leaguesnfl, nba, eplnfl, ncaaf, nba, wnba, ncaab, euroleague, mlb, nhl, epl, championship, laliga, seriea, bundesliga, ligue1, eredivisie, primeira, ucl, uel, mls, ligamx, atp, wta, ufc, cricket
eventStatusupcoming, liveadd finished for final scores
daysAhead70 to 14
daysBack1finished games, 0 to 7 days
bookmakersall threepinnacle, unibet, draftkings; empty for scores only
marketsall threemoneyline, spread, total
teamsonly games with these teams or players
includeEventsWithoutOddsoffalso return scheduled games no book prices yet
onlyChangedoffonly games that are new or moved since the last run
onlyNewoffeach game once, the first time it appears
maxResults0 (no limit)stop after this many games

Price

$1.50 per 1,000 games (one game = one row, with every book and market in it), less on higher Apify plans. A run that finds nothing, input that can't work, and games skipped by onlyChanged cost nothing. Typical runs: one league for the week is 10 to 100 rows; all 24 competitions for the next two weeks is around 400 to 600 rows, under $1.

Free Apify plan: up to 1,000 games per run. Any paid plan removes the cap.

Honest limits

  • Main lines only: full-game moneyline, spread and total. No player props, alternate lines, halves or quarters.
  • Bookmakers stop listing a game when it ends, so finished games come with scores, not closing odds. To keep the last prices before kick-off, run on a schedule with onlyChanged.
  • DraftKings lines are the ones ESPN shows, so they cover US sports and the major soccer leagues only.
  • Unibet's soccer feed has no handicap; Pinnacle and DraftKings cover the soccer spread.
  • Cricket and EuroLeague have odds but no score feed. Tennis covers tour-level singles (ATP, WTA), not Challenger, ITF or doubles.
  • In tennis and MMA, "home" and "away" are just the order the players or fighters are listed.
  • Prices change constantly. A row is a snapshot at scrapedAt.

Lawful use

This is odds and results data for analysts, apps, media and research: market comparison, model inputs, historical records. It does not place bets, use betting accounts or give tips, and it is not meant for anyone under the legal age for gambling where they live. Respect each source's terms and the laws where you are. The data comes from public pages a logged-out visitor can see.

Questions

Open an issue on this Actor's Issues tab. We read every one and usually reply within a day.

Did it help?

If this saved you time, a quick rating on the Store helps other people find it. Something not working? Open an issue on the Issues tab and we usually reply within a day.