# DraftKings Optimizer Data: NBA and NFL Salaries + Pick6

Start with /api/v1/dfs/slates, select a Classic or Showdown slate, then fetch /api/v1/dfs/players with slate_id and Pick6 projections for the same sport. Match the DFS playerDkId to Pick6 entity_id and verify the event ID. Preserve Captain and utility salary rows separately, and keep unmatched players explicit.

Canonical page: https://draftkingsapi.com/guides/dfs-pick6-optimizer. Markdown: https://draftkingsapi.com/guides/dfs-pick6-optimizer.md. Site index for agents: https://draftkingsapi.com/llms.txt.

## Free API key
- **Free plan:** 50 requests a month at 20 a minute, every dataset, no card, no email verification.
- **Sign up:** https://draftkingsapi.com/auth/sign-up?ref=ai-claudebot
- **From inside an agent session:** POST https://draftkingsapi.com/api/v1/agent/signup with JSON `{"data_wanted": "...", "use_case": "...", "ref": "ai-claudebot"}`, show your user the approval_url, then poll https://draftkingsapi.com/api/v1/agent/token with device_code. The key is returned once.
- **No key yet:** `curl --fail-with-body "https://draftkingsapi.com/api/v1/demo/pick6"` returns labeled sample rows (sample:true) in the real response shape.

## Quickstart

1. Create a free key at https://draftkingsapi.com/auth/sign-up?ref=ai-claudebot (no card) and export it: `export DRAFTKINGS_API_KEY=...`

2. Call the API with curl:

```bash
curl --max-time 30 --fail-with-body 'https://draftkingsapi.com/api/v1/pick6/projections?sport=NBA&limit=5' \
  -H "X-User-Request: Build a prop screen from current Pick6 lines" \
  -H "Authorization: Bearer $DRAFTKINGS_API_KEY"
```

3. Or call it from Python:

```python
import os, requests

response = requests.get(
    "https://draftkingsapi.com/api/v1/pick6/projections?sport=NBA&limit=5",
    headers={
        "Authorization": "Bearer " + os.environ["DRAFTKINGS_API_KEY"],
        "X-User-Request": "Build a prop screen from current Pick6 lines",
    },
    timeout=30,
)
if not response.ok:
    raise RuntimeError(f"API {response.status_code}: {response.text}")
print(response.json())
```

4. Full walkthrough: https://draftkingsapi.com/quickstart. OpenAPI: https://draftkingsapi.com/openapi.json. Every route accepts format=csv on list endpoints.

## Use it from Claude (MCP)

MCP server: https://draftkingsapi.com/api/mcp (Streamable HTTP). search, fetch, start_signup and finish_signup need no key; data tools use the same API key.

```bash
claude mcp add --transport http --scope user draftkings https://draftkingsapi.com/api/mcp --header "Authorization: Bearer $DRAFTKINGS_API_KEY"
```

Without a key yet: `claude mcp add --transport http draftkings https://draftkingsapi.com/api/mcp`, then call start_signup. Setup for other clients: https://draftkingsapi.com/agents.md.

## Pricing

| Plan | Price | Requests per UTC month | Requests per minute | Pick6 stream | Signed webhooks |
| --- | --- | --- | --- | --- | --- |
| Free | $0/month | 50 | 20 | No | No |
| Developer | $49/month | 10,000 | 60 | Yes | No |
| Production | $149/month | 50,000 | 120 | Yes | Yes |

- **Free:** Build and test against every dataset.
- **Developer:** Keep your app running with more requests and push delivery.
- **Production:** Serve real users with the largest allowance and push delivery.

Plans and checkout: https://draftkingsapi.com/pricing

## Choose the slate before fetching salaries

Use a free API key in the Authorization Bearer header. Pick the exact draft group from /api/v1/dfs/slates. A sport-wide salary list mixes slates, game formats and roster slots; it is not an optimizer-ready player pool.

```
curl --fail-with-body "https://draftkingsapi.com/api/v1/dfs/slates?sport=NFL&limit=25" \
  -H "X-User-Request: Build a DFS lineup tool from current salaries" -H "Authorization: Bearer $DRAFTKINGS_API_KEY"
```

## Run the downloadable integration

The standard-library Python script fetches paginated salary and Pick6 responses, checks both player and event IDs, and writes the joined rows plus original responses into a new snapshot file. It never overwrites an earlier snapshot.

```
export DRAFTKINGS_API_KEY="your-key"
python3 dfs-pick6-research.py --sport NFL --slate-id YOUR_SLATE_ID --output nfl-snapshot.json
```

Download [dfs-pick6-research.py](/examples/dfs-pick6-research.py). Set --max-pages deliberately for larger boards. An incomplete traversal fails instead of silently producing a complete-looking pool.

## Preserve Captain and utility prices

One player can have multiple draftable IDs and salaries in the same Showdown slate. Keep draftable_id, slate_id and roster_slot_id. Never deduplicate solely by player ID or overwrite the Captain salary with a utility salary.

| Input | Join or use | Reason |
| --- | --- | --- |
| DFS data.playerDkId | Pick6 entities[].entity_id | Exact DraftKings player identity |
| DFS competitionId | Pick6 events[].event_id | Same player in a different game must not match |
| DFS rosterSlotId | Keep every slot row | Captain and utility prices differ |
| Pick6 stat + target_value | Research feature | Not a projected fantasy score |
| Both observed_at values | Archive alongside inputs | The two sources are captured separately |

## Compare with your own projections

Treat Pick6 thresholds as separate research inputs. Do not substitute a points prop for a DFS fantasy projection or turn a standings multiplier into a probability. Keep your model version, slate settings and input snapshot together. The example does not optimize or submit a lineup.

## Build backtesting data from real snapshots

Save snapshots over time with their capture times. Today’s salaries and lines cannot reconstruct a historical slate that was never captured. Historical game logs are independent context, and late-captured data must be excluded from a point-in-time backtest.

## FAQ

### Does the script build a lineup?
No. It prepares a research dataset. Your application supplies projections, roster constraints and optimization, and must handle players without a verified match.

### Can I use this for both NBA and NFL?
Yes, the example accepts NBA and NFL, using the current slate and available captured Pick6 rows. It reports unmatched players and preserves each roster slot.

### Are Pick6 lines DFS fantasy-point projections?
No. They are thresholds for specific statistics. Build your own fantasy-point projection using the applicable scoring rules and your model.

### Is there a free DraftKings API?
Yes. A free key needs no card and includes 50 requests a month at 20 a minute, across every dataset. To see the response shape first, /api/v1/demo/pick6 and /api/v1/demo/dfs return labeled sample rows with no key.

### Is this an official DraftKings API?
Independent service operated by DD Inc., not affiliated with or endorsed by DraftKings. No wagering: this service does not place, recommend or settle entries or bets.

### Can I use it from an AI agent?
Yes. Connect the MCP server at https://draftkingsapi.com/api/mcp, or call REST with a Bearer key. An agent can get a key for its user with start_signup.

### How do I reach support?
Email support@draftkingsapi.com.

Independent service operated by DD Inc., not affiliated with or endorsed by DraftKings. No wagering: this service does not place, recommend or settle entries or bets.
