DraftKings Sportsbook Odds & Player Props Scraper
Pricing
from $0.10 / 1,000 results
DraftKings Sportsbook Odds & Player Props Scraper
Scrapes DraftKings Sportsbook odds for NBA, NFL, MLB, NHL, UFC, soccer and more: moneylines, spreads, totals, alternate lines, player props and futures, one row per selection with American or decimal odds and implied probability.
Pricing
from $0.10 / 1,000 results
Rating
0.0
(0)
Developer
ActorFlow
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
21 hours ago
Last modified
Categories
Share

Scrape DraftKings Sportsbook odds from sportsbook.draftkings.com for the NBA, NFL, MLB, NHL, UFC, soccer and more: moneylines, spreads, totals, alternate lines, player props and futures, one row per selection with American, decimal and fractional odds, the line and implied probability. This DraftKings odds API gives you betting lines for line shopping, props models and line-movement tracking without an account. Paste a league or game URL, press Start, and export JSON, CSV or Excel, or call it as an API.
Target website: sportsbook.draftkings.com
✨ Features of this DraftKings odds and player props scraper
- Odds extraction — event, teams, league, start time, market, selection, line, American, decimal and fractional odds and implied probability for every selection
- Player props extraction — player name, team, prop type (Points O/U, Rebounds, Passing Yards milestones...), over/under side and line from every player category
- Alternate lines — alternate spreads and totals, 3-way and half-time/full-time markets per game
- Game props and futures — quarters, halves, team props, awards, champions and season markets
- Live games — optional in-play games with the odds at scrape time
- Filtering — market categories, prop type keywords, league pickers and league ids, odds format
- Change tracking — an optional snapshot name marks every selection new, changed or unchanged since your last run, so you can track line movement
- Same game parlay flag — every row says whether DraftKings allows that market in a same game parlay
- No browser required — plain HTTP requests make runs fast and cheap
🚀 How to scrape DraftKings odds and props in 5 steps
- Sign up for a free Apify account — includes $5 monthly credit.
- Open the actor page and click Try for free.
- Keep the prefilled NBA URL or paste any DraftKings league or game URL, then pick the market categories you need.
- Click Start and wait for the run to complete.
- Download results from the Output tab in JSON, CSV, or Excel format.
You can also run this actor via the Apify API or integrate it directly into your workflows using Zapier, Make, or n8n.
💰 Pricing for the DraftKings odds scraper
This actor uses pay-per-result billing based on the compute units a run consumes.
- New Apify accounts include $5 of free monthly credit.
- It uses plain HTTP requests, so it costs significantly less to run than browser-based scrapers.
- DraftKings blocks datacenter IPs, so the actor needs residential proxy traffic. Game lines are one small request per league (about 0.25 MB). Player props add one request (0.07-0.1 MB) per game and category, so keep Max games and Prop types tight for prop runs.
🔧 DraftKings odds scraper input configuration
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
DraftKings league or game URLs (startUrls) | array | — | NBA league page (prefill) | League pages (/leagues/basketball/nba) or single game pages (/event/<name>/<id>). |
Snapshot name (snapshotName) | string | — | — | Same name on each run adds changeSinceLastRun (new, changed, unchanged). Rows are never skipped. |
Max games (maxItems) | integer | — | 5 | Soonest games per start URL; futures events per category. Each game returns all the selected markets. |
Market categories (marketCategories) | array | — | game lines | game_lines, alternate_lines, player_props, game_props, futures. |
Prop types (propTypes) | array | — | everything | Only fetch and keep markets and categories containing these words, e.g. points, rebounds, passing yards, mvp. |
Include live games (includeLive) | boolean | — | false | Also return games already in play. |
Odds format (oddsFormat) | string | — | american | american, decimal or both. |
Leagues (leagues) | array | — | — | NBA, WNBA, NFL, college football, MLB, NHL, UFC, MLS in addition to the start URLs. |
League IDs (leagueIds) | array | — | — | Any other DraftKings league by id, e.g. 42648. |
Proxy configuration (proxyConfiguration) | object | — | Apify Proxy RESIDENTIAL, US | DraftKings blocks datacenter IPs; residential is required. |

The numbered markers in the screenshot show the three fields most runs need:
- DraftKings league or game URLs — paste a league page such as
https://sportsbook.draftkings.com/leagues/basketball/nbaor a single game page. The NBA page is prefilled. - Leagues — or pick leagues directly (NBA, NFL, MLB, NHL...). Fields 1 and 2 are combined, so you can use either or both.
- Max games — how many games to scrape per start URL, soonest first. One game returns many rows: about 6 for game lines, hundreds with player props.
Below these, Market categories switch on alternate lines, player props, game props and futures, and the optional Filters and options section holds prop types, live games, odds format, league IDs and the snapshot name. Proxy configuration is last and defaults to residential.
Supported URL types:
- League pages:
https://sportsbook.draftkings.com/leagues/basketball/nba,/leagues/football/nfl,/leagues/hockey/nhl,/leagues/baseball/mlb,/leagues/mma/ufc,/leagues/soccer/mls,/leagues/football/college-footballand other leagues listed on the site - Game pages:
https://sportsbook.draftkings.com/event/bos-celtics-%40-det-pistons/34510070(the number at the end is the event id)
📦 DraftKings odds scraper output data
The dataset is JSON (exportable as CSV or Excel) with these fields per selection: eventId, eventName, homeTeam, awayTeam, homeTeamShort, awayTeamShort, league, leagueId, sport, startTime, isLive, eventStatus, marketId, marketName, marketType, marketGroup, category, subcategory, isMainLine, isSgpEligible, isCashoutAvailable, selectionId, selectionName, side, playerName, playerId, playerSeasonStat, playerTeam, propType, line, oddsAmerican, oddsDecimal, impliedProbability, oddsFractional, trueOdds, url, scrapedAt and, with a snapshot name, changeSinceLastRun. The odds columns follow your Odds format choice. For "18+" style player milestones line is 18 and side is null. There are 3 views:
- Odds overview — game, market, selection, line, odds, implied probability and same game parlay flag.
- Games and teams — game-level columns (teams, league, sport, start time) next to each selection.
- Player props — player, team, prop type, side, line and odds.
Output at a glance:
| Game | Market | Selection | Line | American | Decimal | Implied |
|---|---|---|---|---|---|---|
| BOS Celtics @ DET Pistons | Total | Over | 221.5 | -115 | 1.86 | 53.5% |
| BOS Celtics @ DET Pistons | Jayson Tatum Points O/U | Over | 26.5 | -118 | 1.84 | 54.1% |
Sample output (raw JSON):
[{"eventId": "34510070","eventName": "BOS Celtics @ DET Pistons","homeTeam": "DET Pistons","awayTeam": "BOS Celtics","homeTeamShort": "DET","awayTeamShort": "BOS","league": "NBA","leagueId": "42648","sport": "Basketball","startTime": "2026-10-20T19:00:00.000Z","isLive": false,"eventStatus": "NOT_STARTED","marketId": "3_85841510","marketName": "Total","marketType": "Total","marketGroup": "game_lines","category": "Game Lines","subcategory": "Game","isMainLine": true,"isSgpEligible": true,"isCashoutAvailable": true,"selectionId": "0OU85841510O22150_1","selectionName": "Over","side": "over","playerName": null,"playerId": null,"playerSeasonStat": null,"playerTeam": null,"propType": null,"line": 221.5,"oddsAmerican": -115,"oddsDecimal": 1.86,"oddsFractional": "20/23","trueOdds": 1.86956522,"impliedProbability": 0.5349,"url": "https://sportsbook.draftkings.com/event/bos-celtics-%40-det-pistons/34510070","scrapedAt": "2026-10-18T04:52:39.473Z"},{"eventId": "34510070","eventName": "BOS Celtics @ DET Pistons","homeTeam": "DET Pistons","awayTeam": "BOS Celtics","homeTeamShort": "DET","awayTeamShort": "BOS","league": "NBA","leagueId": "42648","sport": "Basketball","startTime": "2026-10-20T19:00:00.000Z","isLive": false,"eventStatus": "NOT_STARTED","marketId": "361414976","marketName": "Jayson Tatum Points","marketType": "Points Milestones","marketGroup": "player_props","category": "Player Points","subcategory": "Points","isMainLine": false,"isSgpEligible": true,"isCashoutAvailable": true,"selectionId": "0QA361414976#2250939198_13L42648Q1-1088221744Q20","selectionName": "18+","side": null,"playerName": "Jayson Tatum","playerId": "32876","playerSeasonStat": {"label": "2025-26 PPG","value": 21.8},"playerTeam": "BOS Celtics","propType": "Points Milestones","line": 18,"oddsAmerican": -790,"oddsDecimal": 1.12,"oddsFractional": "10/79","trueOdds": 1.12658228,"impliedProbability": 0.8876,"url": "https://sportsbook.draftkings.com/event/bos-celtics-%40-det-pistons/34510070","scrapedAt": "2026-10-18T04:52:42.044Z"}]
🐍 How to scrape DraftKings odds with Python, JavaScript or the API
Run the actor programmatically with the official Apify clients. Replace <YOUR_API_TOKEN> with the token from your Apify Console.
Python (pip install apify-client):
from apify_client import ApifyClientclient = ApifyClient("<YOUR_API_TOKEN>")run = client.actor("confidential_gnat/draftkings-odds-scraper").call(run_input={"startUrls": [{"url": "https://sportsbook.draftkings.com/leagues/basketball/nba"}],"maxItems": 5,"marketCategories": ["game_lines", "player_props"],"propTypes": ["points"],"oddsFormat": "both",})for item in client.dataset(run["defaultDatasetId"]).iterate_items():print(item)
JavaScript (npm install apify-client):
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: '<YOUR_API_TOKEN>' });const run = await client.actor('confidential_gnat/draftkings-odds-scraper').call({startUrls: [{ url: 'https://sportsbook.draftkings.com/leagues/basketball/nba' }],maxItems: 5,marketCategories: ['game_lines', 'player_props'],propTypes: ['points'],oddsFormat: 'both',});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items);
cURL — start a run and wait for the dataset:
curl -X POST "https://api.apify.com/v2/acts/confidential_gnat~draftkings-odds-scraper/run-sync-get-dataset-items?token=<YOUR_API_TOKEN>" \-H "Content-Type: application/json" \-d '{"startUrls":[{"url":"https://sportsbook.draftkings.com/leagues/basketball/nba"}],"maxItems":5,"marketCategories":["game_lines","player_props"],"propTypes":["points"],"oddsFormat":"both"}'
💡 What you can use DraftKings odds and props data for
- Line shopping and odds comparison against other sportsbooks
- Player prop models and projections that need current lines and prices
- Odds movement and line-change alerts with a scheduled snapshot name
- Implied probability and no-vig research from over/under prices
- Sports analytics dashboards, betting content and fantasy research
Sports bettors, handicappers, odds-comparison sites, data journalists and fantasy sports analysts typically use this kind of data.
⚠️ Limitations of the DraftKings odds scraper
- Terms of service and regulation — DraftKings' terms prohibit automated access, and sportsbook odds are regulated. The actor only reads odds shown to logged-out visitors, never uses an account and places no bets. It is not betting advice. You are responsible for deciding whether and how to use the data.
- Residential proxy required — DraftKings blocks datacenter and home IPs with an Akamai wall. About one request in six is blocked even on residential IPs; the actor retries each on a new IP automatically.
- Odds are snapshots — odds change constantly, so there is no cache. Live odds are the values at scrape time.
- One state's odds — the data comes from DraftKings' public New Jersey feed; lines in other states can differ slightly.
- Futures — only the leagues' futures categories (awards, champions, season markets) are covered, up to Max games futures events per category.
- Fragile by nature — DraftKings changes its internal ids and category names from time to time, so market categories are found dynamically on every run.
❓ DraftKings odds scraper FAQ
Can I scrape DraftKings legally?
The actor only collects odds that DraftKings shows to any logged-out visitor, without login, account or payment. Scraping publicly available data is generally considered lawful (see hiQ Labs v. LinkedIn), but DraftKings' terms of service prohibit scraping and betting data is regulated, so you are responsible for complying with them and with the laws of your jurisdiction.
What data does the DraftKings scraper return?
One row per selection with the game, teams, league, market, selection, line, American and decimal odds, implied probability, same game parlay eligibility, live flag and timestamps. Player prop rows add the player name, team and prop type, and a snapshot name adds changeSinceLastRun.
How many games can I scrape from one DraftKings URL?
Max games limits the games per start URL (5 by default, soonest first). Every game returns all the selected market categories. A league page only lists games DraftKings currently has open.
Do I need a proxy to scrape sportsbook.draftkings.com?
Yes, a residential one. The input defaults to Apify Proxy with the RESIDENTIAL group and country US; datacenter IPs are blocked most of the time and home IPs are blocked too. US, GB and CA residential IPs all work.
How do I scrape DraftKings with Python?
Use the Python example above with the apify-client package and iterate over the dataset items. Add player_props to marketCategories and a keyword such as points in propTypes for player props.
Can I run this DraftKings scraper on a schedule?
Yes, use Apify Schedules. There is no cache because odds are only valid for a moment, but you can set a snapshot name so each run marks every selection as new, changed or unchanged compared with the previous run.
What output formats are supported?
JSON, CSV, Excel, XML and RSS, either from the Output tab or through the Apify API.
Can I get alternate lines and all player props for a game?
Yes. Paste the game URL and select alternate lines and player props. Each player category (points, rebounds, assists, combos...) is one request and returns both the over/under lines and the "18+" style milestone ladders.
🔗 Relevant actors for DraftKings odds and sports betting data
| Scraper | Description |
|---|---|
| 🏈 Action Network Odds & Public Betting Scraper | Sportsbook odds, public betting splits, opening lines and line movement. |
| 📊 Covers.com Odds, Line History & Betting Trends Scraper | Odds from many books, line history and betting trends for the major leagues. |
| 📈 Kalshi Markets Scraper | Prediction market prices, implied probability, spread and volume. |
| 🏀 StatMuse Sports Stats Scraper | Sports stats answers for NBA, NFL, MLB and NHL to pair with props. |
🔗 Other actors you may find useful
| Scraper | Description |
|---|---|
| 🎟️ Gametime Events Website Scraper | Event, venue and ticket offer data from Gametime. |
| 📅 Facebook Events Scraper | Public Facebook events by keyword, location and date, without login. |
| 📰 Google News AI Scraper | Google News search with optional article text and AI summaries. |
| 🍷 Vivino Wine Scraper | Wine names, wineries, vintages, ratings and prices from Vivino. |
| 💼 Dice Jobs Scraper | Tech job listings from Dice by keyword or URL. |
💬 Support & contact
If you encounter any issues or have questions, please open an issue.
You can also find more of our actors on the Actor Flow page.