Action Network Odds, Betting Splits & Line Movement Scraper
Pricing
from $5.00 / 1,000 results
Action Network Odds, Betting Splits & Line Movement Scraper
Sports betting odds from every major US sportsbook, public money/ticket percentages, scores, timestamped line movement and player props from Action Network - NFL, NBA, MLB, NHL, college and soccer, with incremental runs.
Pricing
from $5.00 / 1,000 results
Rating
0.0
(0)
Developer
Artsiom Kunitsyn
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
0
Monthly active users
5 days ago
Last modified
Categories
Share
actionnetwork-scraper
Scrapes sports-betting data from Action Network: odds from every major US sportsbook, the public betting splits (money and ticket percentages), scores and game status, timestamped line movement, and player and game props โ for the NFL, NCAA Football, NBA, NCAA Basketball, WNBA, MLB, NHL and soccer. No login required.
Contents
๐ Key features
- Odds from every book. Moneyline, spread and total per game from Consensus, the opening line and the
major US sportsbooks (DraftKings, FanDuel, BetMGM, BetRivers, Caesars, bet365 and more) โ pick the books
you want with
bookIds. Alternate lines and team totals are included where the book lists them. - Public betting splits. The share of bets (
tickets_pct) and of money (money_pct) on each side of every market, so you can spot where the public and the money disagree. - Line movement. Every odds and line change with its timestamp, per outcome, per sportsbook.
- Player and game props. Every prop market with every sportsbook's lines, player name and position.
- Scores and status for every game, with the winner.
- Two ways to choose games. Leave the dates empty for each league's current slate, walk a date range for the daily leagues, or a season and weeks for NFL and NCAA Football (regular season or playoffs).
- Incremental runs. Schedule the
gamesdata type: after the first run you only receive new games and games whose status, score or closing line changed. maxItemsdefaults to 50 โ a fast, cheap preview. Clear it (null) for everything in your scope.
๐ Output
Three data types, chosen with entityType. See .actor/dataset_schema.json
for every field.
games โ one row per game:
{"source": "actionnetwork","external_id": "256552","league": "nfl","season": 2025,"week": 1,"start_time": "2025-09-05T00:20:00.000Z","away_team": "Dallas Cowboys","home_team": "Philadelphia Eagles","status": "complete","away_score": 20,"home_score": 24,"winner": "home","moneyline_home": -425,"spread_home": -8.5,"total_line": 47.5,"consensus": {"spread": {"home": {"odds": -110, "value": -8.5, "tickets_pct": 64, "money_pct": 72},"away": {"odds": -110, "value": 8.5, "tickets_pct": 36, "money_pct": 28}}},"books": [{"book_id": 68, "book": "DK NJ", "moneyline": {}, "spread": {}, "total": {}}],"change_type": "new"}
lineHistory โ one row per game, sportsbook and market line, with outcomes[].history as the
timestamped series [{updated_at, odds, value, line_status}], the opening point and the number of moves.
props โ one row per prop market (a player and stat, or a game-level prop) with lines listing every
sportsbook's odds and value.
๐ง Input
| Field | Type | Default | Description |
|---|---|---|---|
entityType | string | games | games, lineHistory or props. |
leagues | array | all 8 | NFL, NCAA Football, NBA, NCAA Basketball, WNBA, MLB, NHL, soccer. Out-of-season leagues return nothing. |
dateFrom / dateTo | string | โ | Game days (YYYY-MM-DD, US Eastern) for the daily leagues. Empty = the current slate. At most 400 days. |
season | integer | โ | NFL / NCAA Football season year. Setting it walks the weeks below. |
weekFrom / weekTo | integer | 1 / end of season | Week range when season is set. |
seasonType | string | reg | reg or post (playoffs / bowl games). |
bookIds | array | site default | Restrict to these sportsbooks. Consensus is always kept because it carries the splits. |
maxItems | integer | 50 | Stop after this many rows. null = everything in scope. |
mode | string | auto | auto / full / incremental โ games only. |
concurrency | integer | 10 | Parallel requests (max 20). |
impersonate | string | firefox | Browser TLS fingerprint. Change only if requests are blocked. |
proxyConfiguration | object | no proxy | Apify Proxy settings. Not needed in testing. |
๐ฅ Input examples
Default preview (current slate of every league, first 50 games):
{}
Today's MLB slate with only DraftKings and FanDuel:
{ "leagues": ["mlb"], "bookIds": ["68", "69"], "maxItems": null }
A full NFL regular season of closing odds and betting splits:
{ "leagues": ["nfl"], "season": 2025, "maxItems": null }
Daily incremental feed of new and changed games (schedule this):
{ "leagues": ["nfl", "mlb", "nba", "nhl"], "maxItems": null }
Daily line-movement capture (schedule this):
{ "entityType": "lineHistory", "leagues": ["nfl", "mlb", "nba", "nhl"], "maxItems": null }
NBA prop markets for a single night:
{ "entityType": "props", "leagues": ["nba"], "dateFrom": "2025-01-01", "maxItems": 2000 }
๐ Line history: what to expect
Action Network keeps the full timestamped line history for a game for only a few days after it is
played. Games from about a week ago come back with every outcome present but an empty history. That
makes lineHistory a capture product, not a backfill one: schedule it daily (or more often) and each
game's complete history โ from the opening line to the close โ is saved before the site drops it.
Closing odds, the final public betting splits, scores and props are kept much longer (roughly the last
two seasons for odds and splits; props for at least the past year), so games and props can be
back-filled for a season with the season/week or date inputs.
๐ Incremental mode
games only, and only for a run with maxItems cleared (null) โ a capped run is a preview and always returns games. In auto mode the first uncapped run returns every game in scope and remembers it. Later uncapped runs return
only new games and games whose status, start time, score or closing consensus line changed
(change_type is new or changed). The memory covers every league and date you have run and forgets
games that started more than 60 days ago. A run stopped by maxItems, by your spending limit or by an
error does not update it. lineHistory and props are always a fresh pull.
โ FAQ
Which sportsbooks are covered? Consensus, Open (the opening line), DraftKings, FanDuel, BetMGM,
BetRivers, Caesars, bet365 and Unibet across several states. Pick them in bookIds.
Why is a league empty? It is out of season, or has no games in the selected scope.
What are the money and ticket percentages? Ticket % is the share of bets placed on a side; money % is the share of the dollars wagered. A big gap between them usually means large bets are on one side.
Do you cover UFC, tennis or golf? Not yet โ those use a different data shape and were not in season when this actor was built.