Sports Odds Scraper avatar

Sports Odds Scraper

Pricing

from $0.50 / 1,000 results

Go to Apify Store
Sports Odds Scraper

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.

deriverge s.r.o.

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

1

Monthly active users

8 days ago

Last modified

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.

FieldDescription
odds.providerThe bookmaker as ESPN names it. Every line in our September 2026 runs came from DraftKings.
odds.detailsESPN's short summary of the favorite: the spread in football (BUF -5.5), the moneyline in baseball and hockey (CAR -130).
odds.spreadThe 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.awaySpreadOddsEach side's handicap with its American price, for example -5.5 at -110.
odds.overUnder, odds.overOdds, odds.underOddsThe total in points, runs or goals (49.5) and the prices of the over and the under.
odds.homeMoneyLine, odds.awayMoneyLine, odds.drawMoneyLineMoneyline 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.favoritehome 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, leagueNameThe league key, such as nfl, and the league's full name.
name, shortNameNew England Patriots at Buffalo Bills and NE @ BUF.
startsAt, statusDetailThe start in UTC, and ESPN's text with the start in US Eastern time: Sun, October 4th at 1:00 PM EDT.
home, awayEach team's name, shortName, season record (2-0) and logo.
venue, neutralSite, broadcastsStadium or arena, whether ESPN lists it as a neutral site, and TV channels such as CBS.
urlThe game page on espn.com.

How to scrape betting odds

  1. In Leagues, list the keys you want, for example nfl, ncaaf, nba, wnba, mlb, nhl, epl, laliga, bundesliga, seriea, ligue1 or mls. An empty field reads all 14 leagues that carry lines, ncaab and ucl included, at one request per league and day: 14 requests without dates, 112 for the prefilled eight days.
  2. Keep From date at today and To date at +7, or enter fixed dates. A run can span 120 days, but lines rarely exist that far ahead.
  3. Leave Game status on Not started yet.
  4. 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.
  5. 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 planStarterScaleBusiness
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 close in 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 as 21/4 and 6.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:

LeagueLines
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 1Every 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 1No 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

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.

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.