# DraftKings Sportsbook Odds & Player Props Scraper (`confidential_gnat/draftkings-odds-scraper`) Actor

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.

- **URL**: https://apify.com/confidential_gnat/draftkings-odds-scraper.md
- **Developed by:** [ActorFlow](https://apify.com/confidential_gnat) (community)
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.10 / 1,000 results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## DraftKings Sportsbook Odds & Player Props Scraper

![DraftKings Sportsbook Odds Scraper cover: a DraftKings odds record with event, teams, market, selection, line, American and fractional odds and implied probability as JSON](https://i.postimg.cc/8z3V7kxB/Gemini-Generated-Image-zeneaezeneaezene.jpg)

**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](https://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

1. [Sign up](https://apify.com/sign-up) for a free Apify account — includes **$5 monthly credit**.
2. Open the actor page and click **Try for free**.
3. Keep the prefilled NBA URL or paste any DraftKings league or game URL, then pick the market categories you need.
4. Click **Start** and wait for the run to complete.
5. Download results from the **Output** tab in JSON, CSV, or Excel format.

You can also run this actor via the [Apify API](https://docs.apify.com/api/v2) or integrate it directly into your workflows using [Zapier](https://zapier.com/apps/apify), [Make](https://www.make.com/), or [n8n](https://n8n.io/).

### 💰 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. |

![DraftKings odds scraper input form in Apify Console with the league or game URLs, leagues and max games fields marked 1, 2 and 3](https://i.postimg.cc/3wRdTwmm/image.png)

The numbered markers in the screenshot show the three fields most runs need:

1. **DraftKings league or game URLs** — paste a league page such as `https://sportsbook.draftkings.com/leagues/basketball/nba` or a single game page. The NBA page is prefilled.
2. **Leagues** — or pick leagues directly (NBA, NFL, MLB, NHL...). Fields 1 and 2 are combined, so you can use either or both.
3. **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-football` and 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](https://sportsbook.draftkings.com/event/bos-celtics-%40-det-pistons/34510070) | Total | Over | 221.5 | -115 | 1.86 | 53.5% |
| [BOS Celtics @ DET Pistons](https://sportsbook.draftkings.com/event/bos-celtics-%40-det-pistons/34510070) | Jayson Tatum Points O/U | Over | 26.5 | -118 | 1.84 | 54.1% |

**Sample output (raw JSON):**

```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](https://console.apify.com/account/integrations).

**Python** (`pip install apify-client`):

```python
from apify_client import ApifyClient

client = 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`):

```javascript
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:

```bash
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](https://apify.com/confidential_gnat/action-network-odds-scraper) | Sportsbook odds, public betting splits, opening lines and line movement. |
| [📊 Covers.com Odds, Line History & Betting Trends Scraper](https://apify.com/confidential_gnat/covers-odds-trends-scraper) | Odds from many books, line history and betting trends for the major leagues. |
| [📈 Kalshi Markets Scraper](https://apify.com/confidential_gnat/kalshi-markets-scraper) | Prediction market prices, implied probability, spread and volume. |
| [🏀 StatMuse Sports Stats Scraper](https://apify.com/confidential_gnat/statmuse-sports-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](https://apify.com/confidential_gnat/gametime-events-scraper) | Event, venue and ticket offer data from Gametime. |
| [📅 Facebook Events Scraper](https://apify.com/confidential_gnat/facebook-events-scraper) | Public Facebook events by keyword, location and date, without login. |
| [📰 Google News AI Scraper](https://apify.com/confidential_gnat/google-news-ai-scraper) | Google News search with optional article text and AI summaries. |
| [🍷 Vivino Wine Scraper](https://apify.com/confidential_gnat/vivino-wine-scraper) | Wine names, wineries, vintages, ratings and prices from Vivino. |
| [💼 Dice Jobs Scraper](https://apify.com/confidential_gnat/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](https://apify.com/confidential_gnat/draftkings-odds-scraper/issues/open).

You can also find more of our actors on the [Actor Flow](https://apify.com/confidential_gnat) page.

# Actor input Schema

## `startUrls` (type: `array`):

DraftKings Sportsbook pages, for example https://sportsbook.draftkings.com/leagues/basketball/nba or https://sportsbook.draftkings.com/leagues/football/nfl (league pages) or a single game page such as https://sportsbook.draftkings.com/event/bos-celtics-%40-det-pistons/34510070. Leave empty to use the league pickers below.

## `leagues` (type: `array`):

Pick leagues to scrape in addition to the start URLs (never applied to them).

## `maxItems` (type: `integer`):

Maximum games per start URL (soonest first). For futures it is the maximum futures events per category. Every game returns all the selected markets. A game page counts as one.

## `marketCategories` (type: `array`):

What to scrape. Game lines = moneyline, spread and total (one request per league). Alternate lines = alternate spreads and totals, 3-way and half-time/full-time (one extra request per game). Player props = all player categories (points, rebounds, passing yards...; one extra request per game and category). Game props = quarters, halves, team props and other game specials. Futures = awards, champions and season markets. Leave empty for game lines only.

## `propTypes` (type: `array`):

Only fetch and keep markets and categories that contain one of these words, for example points, rebounds, assists, passing yards, touchdown, strikeouts, mvp. Leave empty for everything in the selected categories.

## `includeLive` (type: `boolean`):

Also return games that already started. Live odds change every few seconds, so each record shows the odds at scrape time.

## `oddsFormat` (type: `string`):

American odds (+120, -110), decimal odds (2.20, 1.91) or both.

## `leagueIds` (type: `array`):

Optional. Any other DraftKings league by id (the number in the navigation list), for example 89345 for MLS. Or paste the league page into the start URLs.

## `snapshotName` (type: `string`):

Optional. Use the same name on each scheduled run to track line movement. Every record gets changeSinceLastRun: new, changed or unchanged (odds or line moved). Records are never skipped, so odds are always fresh.

## `proxyConfiguration` (type: `object`):

DraftKings blocks datacenter and home IPs. Use Apify Proxy with the RESIDENTIAL group (US, GB and CA all work). Blocked requests are retried on a new IP automatically.

## Actor input object example

```json
{
  "startUrls": [
    {
      "url": "https://sportsbook.draftkings.com/leagues/basketball/nba"
    }
  ],
  "leagues": [],
  "maxItems": 5,
  "marketCategories": [],
  "propTypes": [],
  "includeLive": false,
  "oddsFormat": "american",
  "leagueIds": [],
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ],
    "apifyProxyCountry": "US"
  }
}
```

# Actor output Schema

## `overview` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "startUrls": [
        {
            "url": "https://sportsbook.draftkings.com/leagues/basketball/nba"
        }
    ],
    "proxyConfiguration": {
        "useApifyProxy": true,
        "apifyProxyGroups": [
            "RESIDENTIAL"
        ],
        "apifyProxyCountry": "US"
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("confidential_gnat/draftkings-odds-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "startUrls": [{ "url": "https://sportsbook.draftkings.com/leagues/basketball/nba" }],
    "proxyConfiguration": {
        "useApifyProxy": True,
        "apifyProxyGroups": ["RESIDENTIAL"],
        "apifyProxyCountry": "US",
    },
}

# Run the Actor and wait for it to finish
run = client.actor("confidential_gnat/draftkings-odds-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "startUrls": [
    {
      "url": "https://sportsbook.draftkings.com/leagues/basketball/nba"
    }
  ],
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ],
    "apifyProxyCountry": "US"
  }
}' |
apify call confidential_gnat/draftkings-odds-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,confidential_gnat/draftkings-odds-scraper"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/S7VFcA8NJtnea5eJ4/builds/2h1LnszjZnrahzxkE/openapi.json
