DraftKings Player Props Scraper & Line Movement Monitor avatar

DraftKings Player Props Scraper & Line Movement Monitor

Pricing

from $2.00 / 1,000 price row returneds

Go to Apify Store
DraftKings Player Props Scraper & Line Movement Monitor

DraftKings Player Props Scraper & Line Movement Monitor

DraftKings odds API for player props, alternate lines and game lines (moneyline, spread, total) across NFL, NBA, MLB, NHL, college and soccer. Turn on monitoring and each later run returns only the prices that moved, with the previous and current odds and line.

Pricing

from $2.00 / 1,000 price row returneds

Rating

0.0

(0)

Developer

NeverEmpty

NeverEmpty

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

1

Monthly active users

5 days ago

Last modified

Share

A DraftKings odds API for player props, alternate lines and game lines: pick a league (NFL, NBA, MLB, NHL, college, soccer and more) and get every DraftKings price as a flat JSON row - market, selection, player, line, American and decimal odds, start time. Turn on monitoring to track line movement on DraftKings: after a free first run, each scheduled run returns only the selections whose odds or line moved since the last run, with the previous value, the current value and the size of the move, plus any market that newly appeared.

Built for bettors, prop modellers, odds-screen and Discord-alert builders, and analysts who want DraftKings props and line moves in a spreadsheet, database or bot without copying them by hand.

What you get

  • Player props - passing, rushing and receiving yards, receptions, touchdown scorers, kicking and defensive props (NFL, college football), batter and pitcher props (MLB), goalscorers and goalie props (NHL), player points, rebounds and threes (NBA), both the over/under line and the milestone ladders ("250+ yards").
  • Alternate lines - every alternate spread and alternate total DraftKings has posted for a game, each point on its own row.
  • Game lines - moneyline, spread and total for every game on a league board, from a single request per league.
  • Any other DraftKings category by name - Quarters, Halves, Team Props, Game Props and so on.
  • Line movement - in monitoring mode a row says what changed (odds-moved, line-moved, line-and-odds-moved, new-selection, new-market) and carries previousLine, previousOddsAmerican, previousOddsDecimal, lineMove, oddsDecimalMove and when the previous price was seen.

One row is one selection, so the output drops straight into a sheet or a database table with no nested arrays to unpack.

Why this Actor

  • Props and alternate lines, not just the headline line. Game lines come from the league board; props and alternate lines are read game by game, only for the categories each game actually has, so no request is spent on markets that are not posted yet.
  • Pay for moves, not for repeats. With monitoring on, unchanged prices are not returned and not charged. If nothing at all moved, the run charges one small monitoring check per league instead of re-selling the same board.
  • Stable keys for tracking. DraftKings changes a selection's ID when its line moves; this Actor follows each selection by market, side, player and label (selectionKey), so a spread moving from -3 to -3.5 shows up as one line-moved row, not as a disappearing and a new selection.
  • Clean numbers. DraftKings prints negative American odds with a typographic minus sign; every row carries real numbers (oddsAmerican: -112, oddsDecimal: 1.89, impliedProbability: 0.5291).
  • Every empty result explains itself in a free row: off-season league, unknown league ID, a game that is no longer on the board, a page DraftKings refused.

Input

FieldWhat it does
leaguesShort names (nfl, ncaaf, nba, wnba, ncaab, mlb, nhl, mls, epl, laliga, bundesliga, seriea, ligue1, ucl, ligamx, ufc, euroleague) or any DraftKings league ID (88808 is the NFL).
marketGroupsgame-lines, alternate-lines, player-props. Empty = game lines only.
extraCategoriesOther DraftKings categories by name, for example Quarters, Team Props.
maxGamesPerLeagueHow many games per league are opened for props and alternate lines, soonest first (default 10).
maxRowsCap on returned rows (default 1000).
monitoringModeReturn only what moved since the previous run with the same input.
resetMonitoringStateStart monitoring over from a fresh starting point.
minOddsMoveMonitoring: return an odds move only once it reaches this size in decimal odds, measured from the last value you received, so small moves add up instead of being lost. Line moves and new markets are always returned.
eventIds, teams, players, marketNames, excludeMarketNamesNarrow down to games, teams, players or market names.

Example - NFL game lines and player props for the next three games:

{ "leagues": ["nfl"], "marketGroups": ["game-lines", "player-props"], "maxGamesPerLeague": 3, "maxRows": 300 }

Example - track one quarterback's props every 15 minutes:

{ "leagues": ["nfl"], "marketGroups": ["player-props"], "players": ["Mahomes"], "monitoringMode": true }

Output

A player-prop row (values as DraftKings listed them on 2026-10-12):

{
"status": "ok",
"changeType": null,
"sport": "Football",
"league": "nfl",
"leagueName": "NFL",
"leagueId": "88808",
"eventId": "34118277",
"eventName": "SEA Seahawks @ DEN Broncos",
"startTime": "2026-10-16T00:15:00.000Z",
"eventStatus": "NOT_STARTED",
"homeTeam": "DEN Broncos",
"awayTeam": "SEA Seahawks",
"marketGroup": "player-props",
"categoryName": "Passing Props",
"marketName": "Sam Darnold Passing + Rushing Yards O/U",
"marketType": "Passing + Rushing Yards O/U",
"isPlayerProp": true,
"isAlternateLine": false,
"isMainLine": true,
"selectionLabel": "Over",
"outcomeType": "Over",
"playerName": "Sam Darnold",
"line": 225.5,
"oddsAmerican": -112,
"oddsDecimal": 1.89,
"oddsFractional": "25/28",
"impliedProbability": 0.5291
}

In monitoring mode the same row comes back only when it changes, for example with "changeType": "odds-moved", "previousOddsAmerican": -112, "oddsAmerican": -125, "previousOddsDecimal": 1.89, "oddsDecimal": 1.8, "oddsDecimalMove": -0.09.

Every row also has marketId, selectionId, selectionKey, playerId, sourceUrl and scrapedAt.

Pricing

Pay per event:

  • line-returned - one returned price row (one selection). Rows dropped by your filters are not charged.
  • league-checked - monitoring only, and only when a run finds that nothing moved: one per league compared. The first monitoring run, which only records the starting point, is free, and so is every run that returns at least one moved price.

Free rows (never charged) explain empty results: no-such-league, no-events, event-not-found, blocked, unreadable, no-filter-match, no-markets-yet, no-line-move, baseline-saved, budget-reached, row-limit-reached.

Scheduling a line-movement monitor

  1. Run once with monitoringMode: true - it remembers the current prices and returns a free baseline-saved row.
  2. Save the input as a task and schedule it (every 5, 15 or 60 minutes).
  3. Each run returns only moves and new markets. Connect the dataset to a webhook, Google Sheets, Slack or your own API.

Monitoring memory is kept per input (leagues, market groups, extra categories, games and maxGamesPerLeague), so different watch lists do not interfere. Prices that did not fit within maxRows or the maximum charge are not marked as seen and are returned on the next run.

Good to know

  • This is an unofficial tool and is not affiliated with DraftKings. It reads only the public odds that the DraftKings Sportsbook website shows to any visitor, with no login. It is not betting advice.
  • Prices are DraftKings' New Jersey board. When this Actor was built, the New York, Pennsylvania and Ohio boards returned the same prices for the NFL.
  • Player props and alternate lines are posted closer to the game, often a few days before kick-off; a game far in the future may have game lines only. Off-season leagues return a free no-events row.
  • Props and alternate lines are read game by game, so a full league with many games takes longer and costs more requests than game lines; maxGamesPerLeague keeps runs short.
  • Odds move quickly once a game is live. A monitoring run is a snapshot at the moment it runs; moves between two runs are reported as one move from the old value to the new value.
  • If DraftKings refuses a page several times in a row, that page is reported in a free row and nothing is guessed.

Thanks for using this Actor

We build these tools for people who run them every day, and we improve them from what users tell us.

  • Missing a field, or need another filter? Tell us in the Issues tab. If the data is there, we add it.
  • Found a bug or a wrong value? Post the run ID in the Issues tab. Wrong data is the thing we fix first.

If this Actor saved you time, a short review helps other people find it.