Sports Odds Scraper - NFL, NBA & Soccer Lines, Scores, No Login
Pricing
from $0.83 / 1,000 games
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
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
7 hours ago
Last modified
Categories
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:
| Field | Example |
|---|---|
startTime, league, homeTeam, awayTeam, status | 2026-10-16T00:15:00Z, nfl, Denver Broncos, Seattle Seahawks, upcoming |
homeBestDecimal, homeBestAmerican, homeBestBookmaker | 2.25, 125, Unibet |
drawBest..., awayBest... | the same for the draw (soccer, cricket) and the away side |
homeFairProbability, drawFairProbability, awayFairProbability | 0.4345: the book's margin taken out, averaged across books |
spreadLine, spreadHomeBestDecimal, spreadAwayBestDecimal | 2.5, 1.9346, 1.9524 (best prices at the line most books quote) |
totalLine, overBestDecimal, underBestDecimal | 40.5, 1.93, 1.9524 |
homeScore, awayScore, winner, periodScores | live and final scores, by quarter, period, inning, half or set |
odds | every price from every book (below) |
oddsChangedSinceLastRun, lastRunSeenAt | did anything move since this task last ran |
venue, statusDetail, espnUrl, sourceIds | Empower 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}
marketismoneyline(match result; 1X2 in soccer),spread(handicap) ortotal(over/under). Full game, main lines.outcomeishome,draw,away,overorunder. A spreadlinebelongs to its side (-2.5for the favourite).fairProbabilityandmargincome 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.changeis 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
| Source | What it adds |
|---|---|
| Pinnacle | The sharpest market in the world: low margins, widely used as the reference price. All sports above |
| Unibet | A 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 |
| ESPN | Official 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
| Field | Default | What it does |
|---|---|---|
leagues | nfl, nba, epl | nfl, ncaaf, nba, wnba, ncaab, euroleague, mlb, nhl, epl, championship, laliga, seriea, bundesliga, ligue1, eredivisie, primeira, ucl, uel, mls, ligamx, atp, wta, ufc, cricket |
eventStatus | upcoming, live | add finished for final scores |
daysAhead | 7 | 0 to 14 |
daysBack | 1 | finished games, 0 to 7 days |
bookmakers | all three | pinnacle, unibet, draftkings; empty for scores only |
markets | all three | moneyline, spread, total |
teams | only games with these teams or players | |
includeEventsWithoutOdds | off | also return scheduled games no book prices yet |
onlyChanged | off | only games that are new or moved since the last run |
onlyNew | off | each game once, the first time it appears |
maxResults | 0 (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.