# DraftKings DFS Salaries & Slates Scraper (`scrapers_lat/draftkings-dfs-salaries-scraper`) Actor

Scrape DraftKings daily fantasy slates and player salaries by sport or draft group. Get player, team, opponent, position, salary, game time, status and fantasy points per game. Export to JSON, CSV or Excel.

- **URL**: https://apify.com/scrapers\_lat/draftkings-dfs-salaries-scraper.md
- **Developed by:** [Scrapers Lat](https://apify.com/scrapers_lat) (community)
- **Categories:** Developer tools
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $11.35 / 1,000 dfs salary or slate records

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?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
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.
Actors are written with capital "A".

## 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.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

[![DraftKings DFS Salaries & Slates Scraper](https://scrapers.lat/banners/draftkings-dfs-salaries-scraper.png)](https://console.apify.com/actors/SeebK3uGgT9e1RIWK/input)

## DraftKings DFS Salaries & Slates Scraper

Here is one real result, with every field the actor returns:

```json
{
  "recordType": "salary",
  "draftGroupId": 152383,
  "sport": "MLB",
  "league": "MLB",
  "draftableId": 43877894,
  "playerId": 1217479,
  "playerName": "Jacob Misiorowski",
  "firstName": "Jacob",
  "lastName": "Misiorowski",
  "position": "SP",
  "rosterSlotId": 110,
  "salary": 12200,
  "team": "MIL",
  "opponent": "SEA",
  "homeOrAway": "HOME",
  "game": "SEA @ MIL",
  "gameStartTime": "2026-08-20T18:10:00.0000000Z",
  "status": "None",
  "newsStatus": "Breaking",
  "isDisabled": false,
  "isSwappable": true,
  "fantasyPointsPerGame": null,
  "opponentRank": null,
  "playerImageUrl": "https://dkn.gs/sports/images/mlb/players/160/658796.png",
  "aiValue": null,
  "aiLeverage": null,
  "aiNotes": null,
  "source": "draftkings.com",
  "observedAt": "2026-08-20T15:00:44.352Z"
}
```

The most complete DraftKings daily fantasy scraper available. It returns every player salary field the slate exposes, from salary and position to team, opponent, home or away, exact game start time and injury status, plus derived fields like the resolved opponent and a clean game label, and it gives you a sport filter, a draft group filter and two output modes so you target exactly the slate you need.

**📥 [Input](https://apify.com/scrapers_lat/draftkings-dfs-salaries-scraper/input-schema) · 📤 [Output](https://apify.com/scrapers_lat/draftkings-dfs-salaries-scraper/output-schema) · 💰 [Pricing](https://apify.com/scrapers_lat/draftkings-dfs-salaries-scraper/pricing) · ▶️ [Examples](https://apify.com/scrapers_lat/draftkings-dfs-salaries-scraper/examples)**

![Platform](https://img.shields.io/badge/platform-Apify-green) ![Coverage](https://img.shields.io/badge/coverage-NFL%20NBA%20MLB%20NHL%20PGA%20and%20more-blue) ![Output](https://img.shields.io/badge/output-JSON%20%7C%20CSV%20%7C%20Excel-orange) ![Billing](https://img.shields.io/badge/billing-pay%20per%20result-blueviolet)

### Table of contents

- [What it does](#what-it-does)
- [Quickstart](#quickstart)
- [Input reference](#input-reference)
- [Output reference](#output-reference)
- [Example output record](#example-output-record)
- [Run via API and CLI](#run-via-api-and-cli)
- [Fetch results](#fetch-results)
- [Billing and limits](#billing-and-limits)
- [FAQ and troubleshooting](#faq-and-troubleshooting)
- [More scrapers at scrapers.lat](#more-scrapers-at-scraperslat)

### What it does

This actor pulls live DraftKings daily fantasy sports data in two modes:

- **Player salaries.** For a sport or a specific draft group, it returns one row per draftable player: name, position, salary, roster slot, team, resolved opponent, home or away, the game and its start time, injury and news status, swap eligibility and the player headshot. This is the data you need to build lineups, model points per dollar and track salary movement.
- **Slates.** It lists the current draft groups (slates) for a sport with the draft group ID, contest start time, game count and slate tag, so you can discover which slate to pull salaries for.

It covers NFL, NBA, MLB, NHL, PGA golf, soccer, NASCAR, MMA, tennis, college football, college basketball, WNBA and esports. Only upcoming and live slates are exposed by DraftKings, so results reflect the current slate calendar.

### Quickstart

Return the top MLB player salaries for the current slate:

```json
{
  "mode": "salaries",
  "sport": "MLB",
  "maxResults": 50
}
```

List the current NBA slates to find a draft group ID:

```json
{
  "mode": "slates",
  "sport": "NBA",
  "maxResults": 20
}
```

Pull salaries for one exact draft group:

```json
{
  "mode": "salaries",
  "draftGroupId": "152383",
  "maxResults": 200
}
```

### Input reference

| Name | Type | Required | Description | Example |
| --- | --- | --- | --- | --- |
| `mode` | string (enum) | No | `salaries` returns player salary rows; `slates` lists draft groups. Default `salaries`. | `salaries` |
| `sport` | string (enum) | No | Filter to one sport. Empty scans every current sport. NFL, NBA, MLB, NHL, PGA, SOCCER, NASCAR, MMA, TENNIS, CFB, CBB, WNBA, LOL, CS2. | `MLB` |
| `draftGroupId` | string | No | Pull salaries for one specific DraftKings draft group (slate) ID. Overrides the sport filter for salaries. | `152383` |
| `aiDfsInsight` | boolean | No | Optional paid add-on, off by default, paid Apify plans only. Adds an AI value read, leverage take and matchup note per player. | `false` |
| `maxResults` | integer | No | Maximum records to return across the run. Free plans are capped at 10. | `50` |

### Output reference

| Name | Type | Description |
| --- | --- | --- |
| `recordType` | string | `salary` for a player salary row, `slate` for a draft group. |
| `draftGroupId` | integer | DraftKings draft group (slate) ID. |
| `sport` | string | Sport code, for example MLB, NFL, NBA. |
| `league` | string | League label reported for the slate. |
| `draftableId` | integer | DraftKings draftable ID for the player in this slate. |
| `playerId` | integer | DraftKings player ID. |
| `playerName` | string | Player display name. |
| `firstName` | string | Player first name. |
| `lastName` | string | Player last name. |
| `position` | string | Player position, for example SP, QB, PG. |
| `rosterSlotId` | integer | Roster slot ID for the player in this slate. |
| `salary` | integer | DraftKings salary in dollars for the player. |
| `team` | string | Player team abbreviation. |
| `opponent` | string | Opponent team abbreviation. |
| `homeOrAway` | string | Whether the player team is HOME or AWAY. |
| `game` | string | Game label, for example `SEA @ MIL`. |
| `gameStartTime` | string | Scheduled game start time (ISO 8601). |
| `status` | string | Injury or availability status, for example None, Q, O, IR. |
| `newsStatus` | string | News recency flag for the player. |
| `isDisabled` | boolean | Whether the player is locked for the slate. |
| `isSwappable` | boolean | Whether the player is swappable in a late-swap lineup. |
| `fantasyPointsPerGame` | number | Average fantasy points per game when reported. |
| `opponentRank` | string | Opponent positional rank or matchup metric when reported. |
| `playerImageUrl` | string | Player headshot image URL. |
| `slateName` | string | Slate name or tag (slate records). |
| `contestStartTime` | string | Slate contest start time (slate records). |
| `contestTypeId` | integer | DraftKings contest type ID (slate records). |
| `gameCount` | integer | Number of games in the slate (slate records). |
| `games` | array | Games in the slate as `AWAY @ HOME` labels (slate records). |
| `aiValue` | string | AI add-on: points-per-dollar value read. |
| `aiLeverage` | string | AI add-on: leverage or fade take. |
| `aiNotes` | string | AI add-on: short matchup or status note. |
| `source` | string | Data source. |
| `observedAt` | string | UTC timestamp when the record was collected. |

### Example output record

```json
{
  "recordType": "salary",
  "draftGroupId": 152383,
  "sport": "MLB",
  "playerName": "Chris Sale",
  "position": "SP",
  "salary": 10700,
  "team": "ATL",
  "opponent": "CWS",
  "homeOrAway": "AWAY",
  "game": "ATL @ CWS",
  "gameStartTime": "2026-08-20T18:10:00.0000000Z",
  "status": "None",
  "isSwappable": true,
  "playerImageUrl": "https://dkn.gs/sports/images/mlb/players/160/519242.png",
  "source": "draftkings.com",
  "observedAt": "2026-08-20T15:00:44.352Z"
}
```

### Run via API and CLI

Start a run with the Apify API:

```bash
curl -X POST "https://api.apify.com/v2/acts/scrapers_lat~draftkings-dfs-salaries-scraper/runs?token=YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"mode":"salaries","sport":"MLB","maxResults":50}'
```

Run with the Apify CLI:

```bash
apify call scrapers_lat/draftkings-dfs-salaries-scraper \
  --input '{"mode":"salaries","sport":"NBA","maxResults":100}'
```

### Fetch results

Download dataset items as JSON, CSV or Excel:

```bash
curl "https://api.apify.com/v2/acts/scrapers_lat~draftkings-dfs-salaries-scraper/runs/last/dataset/items?token=YOUR_TOKEN&format=csv"
```

### Billing and limits

- **Pay per result.** You are charged per record returned. Empty runs return no billable records, so a run that finds nothing costs nothing beyond the one-time actor start.
- **Events.** A one-time actor start, one primary result event per record, and an optional AI DFS insight add-on that is off by default, paid plans only, and charged only when the model returns usable output.
- **Free plans** are capped at 10 records per run and cannot use the paid add-on.
- **Spend cap.** Set a maximum spend per run and the actor stops returning records once that cap is reached, so you never pay past your limit.
- Anti-bot handling and proxying are managed internally. You do not configure or supply anything.

### FAQ and troubleshooting

**I asked for a sport and got nothing.** DraftKings only exposes upcoming and live slates. If a sport has no slate on the board right now, there is nothing to return. Try a sport that is in season, or use `slates` mode to see what is live.

**How do I get a draft group ID?** Run in `slates` mode for your sport. Each slate record includes its `draftGroupId`, which you can then pass to `salaries` mode.

**Why is `fantasyPointsPerGame` null for some players?** DraftKings does not publish a projection for every player on every slate. The field is populated when the slate exposes it and left null otherwise.

**Which sports are supported?** NFL, NBA, MLB, NHL, PGA golf, soccer, NASCAR, MMA, tennis, college football, college basketball, WNBA and esports titles.

### More scrapers at scrapers.lat

This actor is part of the scrapers.lat catalog of fast, HTTP-based data scrapers. Browse more at [scrapers.lat](https://scrapers.lat).

Not affiliated with, endorsed by, or sponsored by DraftKings. All product names and trademarks are the property of their respective owners. Use the data in line with the source terms and applicable law.

# Actor input Schema

## `mode` (type: `string`):

What to return. 'salaries' returns individual player salary rows for a slate. 'slates' lists the current draft groups (slates) with their games and start times.

## `sport` (type: `string`):

Filter to one sport. Leave empty to include every current sport. Examples: NFL, NBA, MLB, NHL, PGA, SOCCER, NASCAR, MMA, CFB, CBB, WNBA.

## `draftGroupId` (type: `string`):

Optional. Pull salaries for one specific DraftKings draft group (slate) ID. Get IDs by first running in 'slates' mode. Overrides the sport filter for salaries.

## `aiDfsInsight` (type: `boolean`):

Optional paid add-on, off by default. For each player, an AI model adds a points-per-dollar value read, a leverage/fade take and a short matchup note. Available to paid Apify plans only.

## `maxResults` (type: `integer`):

Maximum number of records (player salary rows or slates) to return across the run. Free Apify plans are capped at 10.

## Actor input object example

```json
{
  "mode": "salaries",
  "sport": "NFL",
  "aiDfsInsight": false,
  "maxResults": 10
}
```

# Actor output Schema

## `results` (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 = {
    "mode": "salaries",
    "sport": "NFL",
    "maxResults": 10
};

// Run the Actor and wait for it to finish
const run = await client.actor("scrapers_lat/draftkings-dfs-salaries-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 = {
    "mode": "salaries",
    "sport": "NFL",
    "maxResults": 10,
}

# Run the Actor and wait for it to finish
run = client.actor("scrapers_lat/draftkings-dfs-salaries-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 '{
  "mode": "salaries",
  "sport": "NFL",
  "maxResults": 10
}' |
apify call scrapers_lat/draftkings-dfs-salaries-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,scrapers_lat/draftkings-dfs-salaries-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/SeebK3uGgT9e1RIWK/builds/QdRj4mVEbjiz1b7Ni/openapi.json
