DraftKings Odds + Player Props API
Pricing
from $2.00 / 1,000 odds rows
DraftKings Odds + Player Props API
Fetch DraftKings sportsbook odds and player props by event group. Returns moneyline, spread, totals, and player over/unders as normalized dataset rows. MCP-ready.
Pricing
from $2.00 / 1,000 odds rows
Rating
0.0
(0)
Developer
Khadin Akbar
Maintained by CommunityActor stats
0
Bookmarked
13
Total users
1
Monthly active users
a day ago
Last modified
Categories
Share
DraftKings Odds + Player Props API
DraftKings Odds + Player Props API is an Apify Actor for analysts, developers, and automation workflows that need DraftKings sportsbook odds and player props by event group. It accepts an eventGroupId and optional switches for standard odds markets and player props, then returns one normalized dataset row per market selection. The most useful fields are rowType, eventName, marketName, participant, label, line, oddsAmerican, oddsDecimal, marketId, selectionId, eventId, categoryPath, and sourceType, which together support downstream pricing, routing, and structured analysis. The output also includes OUTPUT and RUN_SUMMARY records for run-level status and billing evidence.
Best fit and connected workflows
This Actor fits workflows that start with a DraftKings event group and need structured market rows for a single sport or league at a time. It is useful when you want a clean feed of:
- moneyline, spread, and totals rows from the standard odds markets
- player over/under rows from DraftKings player props
- normalized dataset items that are easy to filter, join, and export
It works well as an ingestion step for spreadsheets, analytics pipelines, dashboards, alerting systems, and Apify MCP-based agents that need sportsbook market data in a predictable schema. The Actor is also a focused standalone workflow, which makes it practical when you want one input, one dataset, and one output contract.
Practical scenario
Mia is reviewing NFL pricing for a Sunday slate. She starts with the DraftKings event group ID for the league, keeps both odds and player props enabled, and sets a row cap for a focused run. The dataset returns eventName, marketName, participant, label, line, oddsAmerican, and oddsDecimal, so she can compare a game total with player receiving yards in the same export. After the run, she uses the rows to decide which markets belong in her analysis file and then sends the dataset into a spreadsheet or notebook for further review.
Input fields
| Field | Type | Default | Description |
|---|---|---|---|
eventGroupId | string | 88808 | DraftKings event group identifier, for example 88808 for NFL and 88809 for NBA. |
includeOdds | boolean | true | Fetches standard odds markets for the event group. |
includePlayerProps | boolean | true | Fetches DraftKings player props markets. |
oddsApiUrl | string | empty | Optional override for the odds endpoint URL. |
propsApiUrl | string | empty | Optional override for the player props endpoint URL. |
maxRows | integer | 500 | Maximum number of normalized dataset rows to output. |
timeoutSecs | integer | 25 | Per-request timeout in seconds for DraftKings endpoint fetches. |
Focused input example
{"eventGroupId": "88808","includeOdds": true,"includePlayerProps": true,"maxRows": 200,"timeoutSecs": 25}
Output fields
The Actor writes normalized market rows to the default dataset and exposes execution artifacts through Apify key-value storage.
| Field | Type | Description |
|---|---|---|
rowType | string | Row classification such as odds or player prop. |
eventName | string | Human-readable game or matchup name. |
marketName | string | Market label such as spread, total, or a player prop category. |
participant | string | Player name when the row represents a player prop. |
label | string | Selection label such as over, under, or a side price. |
line | number | Numeric line when provided. |
oddsAmerican | string | American odds value. |
oddsDecimal | number | Decimal odds value. |
marketId | string | Market identifier. |
selectionId | string | Selection identifier. |
eventId | string | DraftKings event identifier. |
categoryPath | string | Source path in the returned JSON structure. |
sourceType | string | Source category such as odds or props. |
Illustrative dataset record
{"rowType": "player-prop","eventName": "Team A vs Team B","marketName": "Player Receiving Yards","participant": "John Smith","label": "Over 72.5","line": 72.5,"oddsAmerican": "-115","oddsDecimal": 1.87,"marketId": "12345","selectionId": "67890","eventId": "28345678","categoryPath": "eventGroupsResp > eventGroup > offerCategories > offerDisplayGroups","sourceType": "props"}
How it works
This Actor fetches DraftKings sportsbook JSON from public endpoints and converts the returned markets into normalized dataset rows. The contract shows two fetch paths: the event-group odds endpoint and the player props category endpoint. The input schema lets you control which market groups are included, set a maximum row count, and adjust per-request timeout. The live manifest also shows a SCRAPFLY_API_KEY environment variable and a default run setup of 512 MB memory with a 180 second timeout.
Pricing and platform usage
This Actor uses Apify pay per event pricing plus Apify platform usage.
Billing events in the live contract are:
- Actor Start, charged once when the Actor starts
- Odds row, charged for each normalized odds market row written to the dataset
- Player prop row, charged for each normalized player prop row written to the dataset
For a simple planning example, a run with ten odds rows and five player prop rows is billed as ten odds events, five prop events, and one actor start event, plus Apify platform usage for the run itself. Review the live Pricing tab on the Apify Store page for current billing details before running.
Use with AI agents (MCP)
This Actor is usable through Apify MCP as a tool that returns DraftKings market rows in a structured dataset. The exact Actor identity is khadinakbar/scrape-draftkings-odds-player-props.
A practical agent prompt can look like this:
Fetch DraftKings NFL market rows for event group 88808. Include odds and player props, then return the dataset rows with event name, market name, participant, line, and both odds formats. Summarize any rows that look like spreads, totals, moneylines, and player over/under selections.
When interpreting results through MCP:
rowTypeandsourceTypeseparate standard odds markets from player props.eventName,marketName, andlabelidentify the market context.participantis especially useful for player props.line,oddsAmerican, andoddsDecimalsupport downstream calculations.categoryPathprovides provenance from the returned JSON structure.
Pagination and cost guidance are controlled by the Actor input and the underlying dataset size. Use maxRows to cap output during exploratory prompts, then raise it when you want broader coverage. Because billing is per event, larger result sets generally produce more chargeable rows.
Example Apify API usage
import { ApifyClient } from 'apify-client';const client = new ApifyClient({token: process.env.APIFY_TOKEN,});const run = await client.actor('khadinakbar/scrape-draftkings-odds-player-props').call({eventGroupId: '88808',includeOdds: true,includePlayerProps: true,maxRows: 50,timeoutSecs: 25,});const datasetId = run.defaultDatasetId;const { items } = await client.dataset(datasetId).listItems();console.log(`Rows returned: ${items.length}`);console.log(items.slice(0, 3));
Set APIFY_TOKEN in your environment before running the example. The code starts the Actor, waits for completion, and reads back the dataset items from the default dataset.
Best results and outcome guidance
Use a single eventGroupId per run so the dataset stays focused on one sport or league. Keep both market switches enabled when you want a broad view of the DraftKings board, then turn one off when you need a narrower export. Set maxRows lower during testing and higher for broader batch pulls. If you need a different state or category endpoint, supply the optional URL override fields and verify the returned rows in the dataset view before downstream use.
Focused standalone workflow
DraftKings Odds + Player Props API is designed as a focused standalone workflow for the public input and structured output contract described above.
Design note
I found that the live dataset view is centered on a compact normalized row shape, with rowType, eventName, marketName, participant, label, line, oddsAmerican, oddsDecimal, marketId, selectionId, eventId, categoryPath, and sourceType as the core fields. That contract fact makes the README much clearer when it treats the dataset row as the primary output unit.
FAQ
Can I use one run for more than one league?
Each run is centered on one eventGroupId, so the cleanest workflow is one league or sport per run.
Which input should I change for standard markets versus player props?
Use includeOdds for moneyline, spread, and totals rows, and use includePlayerProps for player prop rows. You can also turn either switch off for a focused export.
How do I point the Actor at a specific DraftKings endpoint?
Use oddsApiUrl for the odds endpoint override and propsApiUrl for the player props endpoint override. This is useful when you already know the target endpoint you want the Actor to fetch.
What is the quickest way to control output size?
Set maxRows to a smaller value during testing, then increase it when you want more normalized rows in the dataset.
How does this fit into an Apify MCP workflow?
Use the Actor as the market-data retrieval step in an MCP conversation, then have the agent read the dataset rows and summarize or transform them into the next stage of your workflow.
Responsible use
DraftKings is a trademark of its owner. This independent Actor is not affiliated with, associated with, or endorsed by DraftKings.
Use the Actor in ways that respect the source site's terms, access rules, and applicable laws. Review the live Pricing tab before running production workloads, and verify any downstream use of the returned market data within your own compliance process.