DraftKings Odds + Player Props API avatar

DraftKings Odds + Player Props API

Pricing

from $2.00 / 1,000 odds rows

Go to Apify Store
DraftKings Odds + Player Props API

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

Khadin Akbar

Maintained by Community

Actor stats

0

Bookmarked

13

Total users

1

Monthly active users

a day ago

Last modified

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

FieldTypeDefaultDescription
eventGroupIdstring88808DraftKings event group identifier, for example 88808 for NFL and 88809 for NBA.
includeOddsbooleantrueFetches standard odds markets for the event group.
includePlayerPropsbooleantrueFetches DraftKings player props markets.
oddsApiUrlstringemptyOptional override for the odds endpoint URL.
propsApiUrlstringemptyOptional override for the player props endpoint URL.
maxRowsinteger500Maximum number of normalized dataset rows to output.
timeoutSecsinteger25Per-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.

FieldTypeDescription
rowTypestringRow classification such as odds or player prop.
eventNamestringHuman-readable game or matchup name.
marketNamestringMarket label such as spread, total, or a player prop category.
participantstringPlayer name when the row represents a player prop.
labelstringSelection label such as over, under, or a side price.
linenumberNumeric line when provided.
oddsAmericanstringAmerican odds value.
oddsDecimalnumberDecimal odds value.
marketIdstringMarket identifier.
selectionIdstringSelection identifier.
eventIdstringDraftKings event identifier.
categoryPathstringSource path in the returned JSON structure.
sourceTypestringSource 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:

  • rowType and sourceType separate standard odds markets from player props.
  • eventName, marketName, and label identify the market context.
  • participant is especially useful for player props.
  • line, oddsAmerican, and oddsDecimal support downstream calculations.
  • categoryPath provides 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.