# Fixture isolation: test parsers without polluting live data

Use fixture isolation to test a parser without mixing sample and observed records. There is no public sandbox, so label fixtures and check live reads apart. Published 2026-11-10 by DraftKings API.

Canonical page: https://draftkingsapi.com/blog/draftkings-api-fixture-isolation. Markdown: https://draftkingsapi.com/blog/draftkings-api-fixture-isolation.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/history?sport=NBA&limit=5' \
  -H "X-User-Request: Track Pick6 line moves for an alert bot" \
  -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/history?sport=NBA&limit=5",
    headers={
        "Authorization": "Bearer " + os.environ["DRAFTKINGS_API_KEY"],
        "X-User-Request": "Track Pick6 line moves for an alert bot",
    },
    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

Fixture isolation matters more when a sample looks exactly like a live row. Keep fixtures in test-only storage, and mark them so a parser test can never be read as live evidence.

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

## No public sandbox to lean on

Every data route needs a real key, so your fixtures have to be your own.

All /api/v1 endpoints require a Bearer key. /api/health and /api/openapi are public. The JSON shape in the documentation is illustrative and is not a current source record.

## Write fixtures that test the hard cases

Cover missing values and one-sided rows on purpose.

The standings_multiplier field is a nullable number on each selection, and formatted_standings_multiplier is a separate nullable label. Every explicit source selection is retained, even when one-sided. Missing side, period and promo labels remain unknown.

## Verify the live path separately

A passing parser test says nothing about current coverage.

The playground makes a real call with your own key. Valid authenticated requests count even if no rows match. Invalid queries and unavailable datasets do not count, except that native sportsbook routes spend the request at the key check.

## Keep the check honest

Inspect what was captured rather than assuming a fixture still matches.

/api/v1/coverage returns measured fresh and retained rows and captured and discovered scopes. Capture age is measured per row through age_seconds and stale.

```
curl --fail-with-body "https://draftkingsapi.com/api/v1/coverage" \
  -H "X-User-Request: Check which DraftKings datasets fit a new app" -H "Authorization: Bearer $DRAFTKINGS_API_KEY"
```

## Sources
- [Docs: endpoints](https://draftkingsapi.com/docs#endpoints)
- [Docs: data semantics](https://draftkingsapi.com/docs#data)
- [Docs: quickstart](https://draftkingsapi.com/docs#start)
- [Docs: responses and errors](https://draftkingsapi.com/docs#responses)
- [Docs: filters and pagination](https://draftkingsapi.com/docs#parameters)
- [API documentation](https://draftkingsapi.com/docs)
- [Sources and status](https://draftkingsapi.com/status)
- [OpenAPI contract](https://draftkingsapi.com/api/openapi)

## FAQ

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