Sports Odds Scraper
Pricing
from $0.50 / 1,000 results
Sports Odds Scraper
Moneyline, spread and total for upcoming games as ESPN shows them, with prices, the favorite and the bookmaker, one row per game. Covers the NFL, college football, MLB, NHL, the WNBA and major soccer leagues; games without a line are left out and not charged.
Pricing
from $0.50 / 1,000 results
Rating
0.0
(0)
Developer
deriverge s.r.o.
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
1
Monthly active users
8 days ago
Last modified
Categories
Share
Sports Odds Scraper reads the betting line ESPN attaches to upcoming games and returns one row per game: the moneyline, the spread and the total with their prices, the favorite and the bookmaker, next to the teams, start time, venue and TV channels. The form is ready to run for the NFL, NBA, MLB, NHL, college football and the Premier League from today to seven days ahead. Games without a line are left out. Lines vanish when a game starts, so the actor has none for past games. It costs $1.00 per 1,000 results on the Free plan ($0.50 on Business), and the $5 of monthly credit in Apify's Free plan covers about 5,000 results.
What is in a row?
The odds object holds the line. The rest of the row describes the game in the same format as our league scrapers.
| Field | Description |
|---|---|
odds.provider | The bookmaker as ESPN names it. Every line in our September 2026 runs came from DraftKings. |
odds.details | ESPN's short summary of the favorite: the spread in football (BUF -5.5), the moneyline in baseball and hockey (CAR -130). |
odds.spread | The home team's spread: -5.5 means the home team gives 5.5 points, 10 means it gets 10. In MLB and the NHL it is the 1.5 run line or puck line, in soccer the home club's goal handicap, such as -1.5. |
odds.homeSpreadLine, odds.homeSpreadOdds, odds.awaySpreadLine, odds.awaySpreadOdds | Each side's handicap with its American price, for example -5.5 at -110. |
odds.overUnder, odds.overOdds, odds.underOdds | The total in points, runs or goals (49.5) and the prices of the over and the under. |
odds.homeMoneyLine, odds.awayMoneyLine, odds.drawMoneyLine | Moneyline prices in American odds, such as -250 for the home team and 205 for the visitors. Soccer rows add the price of a draw in drawMoneyLine, for example 380. |
odds.favorite | home or away, as ESPN marks the favorite. ESPN marks none in soccer, so there it is null and details names the club with the shorter price. |
league, leagueName | The league key, such as nfl, and the league's full name. |
name, shortName | New England Patriots at Buffalo Bills and NE @ BUF. |
startsAt, statusDetail | The start in UTC, and ESPN's text with the start in US Eastern time: Sun, October 4th at 1:00 PM EDT. |
home, away | Each team's name, shortName, season record (2-0) and logo. |
venue, neutralSite, broadcasts | Stadium or arena, whether ESPN lists it as a neutral site, and TV channels such as CBS. |
url | The game page on espn.com. |
How to scrape betting odds
- In Leagues, list the keys you want, for example
nfl,ncaaf,nba,wnba,mlb,nhl,epl,laliga,bundesliga,seriea,ligue1ormls. An empty field reads all 14 leagues that carry lines,ncaabanduclincluded, at one request per league and day: 14 requests without dates, 112 for the prefilled eight days. - Keep From date at
todayand To date at+7, or enter fixed dates. A run can span 120 days, but lines rarely exist that far ahead. - Leave Game status on Not started yet.
- Turn on Include box score and injuries if you also want each team's injury list, up to five players per team, billed as a second event per game.
- Click Start. The Output tab lists the games with their lines and exports them to CSV, Excel or JSON, and the API tab shows how to read the dataset from code.
Through the API, a weekly football board looks like this:
{"leagues": ["nfl", "ncaaf"],"dateFrom": "today","dateTo": "+7","maxItems": 100}
Example output
One row from a run on 27 September 2026, a week before kickoff: Buffalo favored by 5.5 points at home against New England, with the total at 49.5 and both sides of the spread and the total priced at -110.
{"key": "espn:nfl:401872971","type": "game","sport": "americanfootball","league": "nfl","leagueName": "National Football League","gameId": "401872971","name": "New England Patriots at Buffalo Bills","shortName": "NE @ BUF","round": null,"startsAt": "2026-10-04T17:00:00.000Z","status": "pre","statusDetail": "Sun, October 4th at 1:00 PM EDT","completed": false,"period": 0,"clock": "0:00","seasonYear": 2026,"seasonType": "regular-season","home": {"id": "2","kind": "team","name": "Buffalo Bills","shortName": "BUF","location": "Buffalo","score": 0,"winner": null,"record": "2-0","position": 0,"homeAway": "home","periodScores": [],"logo": "https://a.espncdn.com/i/teamlogos/nfl/500/scoreboard/buf.png"},"away": {"id": "17","kind": "team","name": "New England Patriots","shortName": "NE","location": "New England","score": 0,"winner": null,"record": "1-1","position": 1,"homeAway": "away","periodScores": [],"logo": "https://a.espncdn.com/i/teamlogos/nfl/500/scoreboard/ne.png"},"venue": {"name": "Highmark Stadium","city": "Orchard Park","state": "NY","country": "USA","indoor": false},"attendance": 0,"neutralSite": false,"broadcasts": ["CBS"],"odds": {"provider": "DraftKings","details": "BUF -5.5","spread": -5.5,"overUnder": 49.5,"homeMoneyLine": -250,"awayMoneyLine": 205,"homeSpreadLine": -5.5,"homeSpreadOdds": -110,"awaySpreadLine": 5.5,"awaySpreadOdds": -110,"overOdds": -110,"underOdds": -110,"favorite": "home"},"url": "https://www.espn.com/nfl/game/_/gameId/401872971/patriots-bills"}
How much does it cost to scrape odds?
| Free plan | Starter | Scale | Business | |
|---|---|---|---|---|
| 1,000 results | $1.00 | $0.80 | $0.65 | $0.50 |
| Box score and injuries, per 1,000 | $1.00 | $0.80 | $0.65 | $0.50 |
You pay only for the events in the table. There is no start fee, and compute time and proxies are included.
A run on 27 September 2026 over eight days of the NFL, NBA, MLB, NHL, college football and the Premier League found 164 games and returned the 82 that had a line, which comes to $0.082 on the Free plan. The 82 games without a line were dropped and not charged.
Limits
- There are no in-game odds: ESPN removes the line when a game starts.
- Prices are the values ESPN labels
closein its feed at the moment of the run. The opening line is not included. - One bookmaker per game, the first one ESPN lists.
- A market is sometimes missing: in our runs one MLB game had no run-line prices and one college football game had no moneylines.
- For some soccer matches ESPN's only bookmaker is
Bet 365, priced in fractional and decimal odds such as21/4and6.25. The actor reads American odds only and leaves such a match out without charging it. On 30 September 2026 this applied to one Bundesliga and two MLS matches. - Only the three main markets are read. Player props, alternate lines and futures are not.
- The change mode compares the line of each run with the line of the run before, so a price that moves and moves back between two runs goes unnoticed.
Which leagues carry lines
What ESPN showed on 30 September 2026 for the following 12 days:
| League | Lines |
|---|---|
NFL (nfl) | Every game, up to 11 days ahead. |
College football (ncaaf) | 59 of the 117 games listed. |
NHL (nhl) | 28 of 81 games, up to 10 days ahead. Preseason games in our earlier runs had none. |
MLB (mlb) | Only games of the same day. |
WNBA (wnba) and NBA (nba) | A few of the 14 WNBA playoff games, at most a day ahead; none of the 36 NBA preseason games. |
| Premier League, LaLiga, Bundesliga, Serie A, Ligue 1 | Every match up to 11 days ahead, except one Bundesliga match priced only by Bet 365. |
MLS (mls) | 3 of 18 matches, plus 2 priced only by Bet 365. |
Champions League (ucl) | Just past that window: all 9 matches of 13 October already had lines. |
College basketball (ncaab) | None before the season opens on 1 November. ESPN's pages of March 2026 games show DraftKings lines. |
| UFC, tennis, golf and Formula 1 | No lines on any event. |
In the run of 27 September 2026 the split was similar: all 30 NFL games had a line, 26 of 39 NHL games, 12 of 33 MLB games and 14 of 59 college football games.
FAQ
Is it legal to scrape betting odds from ESPN?
The actor reads the lines ESPN shows publicly next to its game listings. It does not log in to a sportsbook or place bets, and game rows describe games and teams; the optional injury list names players as ESPN publishes them. Sports betting is legal in some places and not in others, so check the rules that apply to you and your users. You are responsible for how you use the data.
How do I track line movement?
Schedule the actor, for example every hour before kickoff, with Return only what changed since the last run turned on and a Watch name. Each run then returns only the games that are new or whose price or line moved, and the CHANGES record in the run's key-value store lists the line before and after. To keep the full history instead, save every run's dataset: each game keeps the same key from run to run, so the datasets join on it.
Related scrapers
Support
This actor is built and maintained by deriverge s.r.o., a software company based in the Czech Republic. If a run fails or a field you need is missing, please open an issue in the Issues tab or write to us at info@deriverge.com. We respond in English and Czech. Runs can be scheduled in Apify Console or started from the API tab, which has examples for Python, JavaScript and cURL and works with Make, Zapier, n8n and the Apify MCP server. If the actor saves you time, a short review helps other people find it.