# DraftKings odds API: current lines, line history and Pick6

GetOdds provides DraftKings sportsbook moneylines, spreads and totals for the NFL, NBA, NHL, NCAAF, NCAAB, Premier League and MLS, captured from ESPN's DraftKings odds data, plus seven days of line changes and a WebSocket stream of new changes. DraftKings Pick6 player lines are a separate source on the same key. GetOdds is independent and not affiliated with DraftKings.

Canonical page: https://getoddsapi.com/draftkings-odds-api

**Price.** Free development allowance: 1,000 requests per UTC day and 60 per minute per account, with no payment step. Paid: the Developer Bundle at $149 per month, with 10,000 monthly requests or credits on each of four sources.

## Free API key

Get a free GetOdds API key: **1,000 requests per UTC day and 60 per minute, no card**. One key covers REST and the hosted MCP server.

Sign up: https://getoddsapi.com/sign-up?ref=ai-claudebot

## Quickstart

1. Create an account at https://getoddsapi.com/sign-up?ref=ai-claudebot, open https://getoddsapi.com/dashboard and issue a key with the sources you need (draftkings, fanduel, betrivers, prizepicks or underdog). Keep it in a server environment variable named GETODDS_API_KEY.
2. Read current DraftKings NBA spreads with curl:

```bash
curl --fail-with-body "https://getoddsapi.com/api/v1/odds?sport=NBA&market=spread&fresh_only=true&limit=50" \
  -H "Authorization: Bearer $GETODDS_API_KEY"
```

3. The same request in Python (standard library only):

```python
import json, os, urllib.request

req = urllib.request.Request(
    "https://getoddsapi.com/api/v1/odds?sport=NBA&market=spread&fresh_only=true&limit=50",
    headers={"Authorization": "Bearer " + os.environ["GETODDS_API_KEY"]},
)
with urllib.request.urlopen(req) as res:
    rows = json.load(res)["data"]
for row in rows:
    print(row["away"], "at", row["home"], row["side"], row["line"], row["american"], row["observed_at"])
```

4. Check `observed_at`, `age_seconds` and `stale` on every row before using a price. Full reference: https://getoddsapi.com/docs

## Use with Claude (MCP)

```bash
claude mcp add --transport http getodds https://getoddsapi.com/api/mcp \
  --header "Authorization: Bearer $GETODDS_API_KEY"
```

The MCP tools follow the key's source grants and share its allowance. Setup guide: https://getoddsapi.com/use-with-claude

## Pricing

| Plan | Allowance | Price |
| --- | --- | --- |
| Free key | 1,000 requests a day, 60 a minute | $0, no card |
| Developer Bundle | 10,000 requests or credits a month on each of four sources | $149 a month |

Free development allowance: 1,000 requests per UTC day and 60 per minute per account, with no payment step. Paid: the Developer Bundle at $149 per month, with 10,000 monthly requests or credits on each of four sources.
Details: https://getoddsapi.com/bundle

## Facts

- **Source:** DraftKings via ESPN odds data
- **Markets:** Moneyline, spread, total
- **History:** 7 days, plus replay cursors
- **Also:** Pick6 player lines

## Read DraftKings lines

Create an account at /sign-up, open /dashboard and issue a key with the source grants you need (draftkings, fanduel, betrivers, prizepicks or underdog). Keep the key in a server environment variable named GETODDS_API_KEY and send it as a bearer token. Never put it in a URL or in browser code.

DraftKings is the default bookmaker on new accounts, so a key with the draftkings grant can read prices immediately. The source parameter defaults to draftkings on these endpoints.

```bash
curl --fail-with-body "https://getoddsapi.com/api/v1/odds?sport=NFL&fresh_only=true&limit=200" \
  -H "Authorization: Bearer $GETODDS_API_KEY"

curl --fail-with-body "https://getoddsapi.com/api/v1/market-types" \
  -H "Authorization: Bearer $GETODDS_API_KEY"
```

## Where the DraftKings prices come from

These prices are DraftKings observations published through ESPN's odds data and stored by our collector. That matters in three ways. First, the jurisdiction behind each price is not verified, and DraftKings prices can differ slightly by state. Second, coverage is what ESPN publishes: main game lines, not the full DraftKings menu of alternates and player props. Third, freshness depends on our capture cadence, so check observed_at and age_seconds on every row.

If you need every DraftKings prop and alternate line, a direct sportsbook feed is the right tool. If you need reliable main lines with honest timestamps and history, this is.

| Field | Meaning |
| --- | --- |
| id, event_id | Source-native offer and event IDs, for example espn-draftkings:espn:NBA:401909287 |
| sport | League code: NFL, NBA, NHL, NCAAF, NCAAB, MLB, EPL or MLS |
| home, away, starts_at | Teams and scheduled start (UTC ISO 8601) |
| market, period, side | moneyline, spread or total; the period; home, away, draw, over or under |
| line | Spread or total number; null on a moneyline |
| american, decimal | The recorded price in both formats |
| observed_at, age_seconds, stale | When the price was captured, its age, and whether it is older than 900 seconds |

## Track DraftKings line movement

Three endpoints cover movement. /api/v1/history returns one event or offer's changes from the last seven days. /api/v1/odds/replay returns every retained change in order with decimal-string sequence cursors, which suits a backfill job. /api/v1/odds/stream pushes the same changes over a WebSocket.

```bash
# Replay retained changes in order; keep after/through as strings
curl --fail-with-body "https://getoddsapi.com/api/v1/odds/replay?after=0&sport=NBA&limit=200" \
  -H "Authorization: Bearer $GETODDS_API_KEY"
```

## DraftKings Pick6 is a different product

Pick6 is DraftKings' pick'em game. Its rows are player stat lines with no odds, read from /api/v1/markets?source=draftkings. Do not merge them with sportsbook prices: a Pick6 line of 24.5 points is not a sportsbook over/under at a price.

```bash
curl --fail-with-body "https://getoddsapi.com/api/v1/markets?source=draftkings&limit=50" \
  -H "Authorization: Bearer $GETODDS_API_KEY"
```

## FAQ

### Does DraftKings have a public odds API?

DraftKings does not offer a public developer odds API. GetOdds stores DraftKings prices as published through ESPN's odds data and serves them with timestamps.

### Does the DraftKings odds API include player props?

Not sportsbook player props. DraftKings Pick6 player lines are available as a separate pick'em source without odds.

### How fresh are DraftKings prices?

Each row reports observed_at and age_seconds, and rows older than 900 seconds are flagged stale. fresh_only=true returns only the last 15 minutes of captures.

### Is GetOdds affiliated with DraftKings?

No. GetOdds is an independent data product.

---

GetOdds is an independent developer product and is not affiliated with any sportsbook or pick’em operator. Prices describe data, not betting advice.
