DraftKings Sportsbook API endpoint
Returns the primary betting markets (moneyline, spread, total) for every upcoming event in a DraftKings Sportsbook league. `league_id` is a numeric DraftKings league identifier (find it from a league's DraftKings Sportsbook page). An empty `events` list is a valid response when nothing is currently scheduled.
/draftkings/sportsbook/oddsQuery parameters:
league_id: required. Numeric DraftKings league identifier (for example
84240 for MLB). Find it from a league's DraftKings Sportsbook page.Notable response behavior:
markets list is limited to the primary game-line markets
DraftKings tags as PrimaryMarket (Moneyline, Spread, Total) — it does
not include player props or other secondary markets.points is present on Spread and Total selections (the line, e.g.
3 or -3) and omitted on Moneyline selections.events list is a valid response when nothing is currently
scheduled for the league.| Field | Filled in, of 2 checked | Values in the sample |
|---|---|---|
| id | 2 | |
| name | 2 | “CLE Guardians @ TB Rays” and 1 other value |
| start_time | 2 | 2026-10-14 to 2026-10-15 |
| status | 2 | “NOT_STARTED” |
| participants | 2 | median 2 entries |
| markets | 2 | median 3 entries |
| Parameter | Type | Required | Default | Description | Example |
|---|---|---|---|---|---|
| league_id | string | Yes | Numeric DraftKings league id | 84240 | |
| x-api-key (header) | string | Yes | API key required |
curl -X GET "https://api.crawlora.net/api/v1/draftkings/sportsbook/odds?league_id=84240" \ -H "x-api-key: $CRAWLORA_API_KEY"
{
"code": 200,
"msg": "OK",
"data": {
"league_id": "24685",
"league": "NFL Preseason",
"sport": "Football",
"count": 1,
"source_url": "https://sportsbook-nash.draftkings.com/sites/US-NJ-SB/api/sportscontent/controldata/league/primaryMarkets/v1/markets?...",
"fetched_at": "2026-08-15T12:00:00Z",
"events": [
{
"id": "34240140",
"name": "CAR Panthers @ BUF Bills",
"start_time": "2026-08-15T17:00:00.0000000Z",
"status": "NOT_STARTED",
"participants": [
{
"id": "18302",
"name": "BUF Bills",
"role": "Home"
},
{
"id": "18484",
"name": "CAR Panthers",
"role": "Away"
}
],
"markets": [
{
"id": "1_85036830",
"type": "Moneyline",
"selections": [
{
"label": "CAR Panthers",
"odds": {
"american": "+130",
"decimal": "2.30",
"fractional": "13/10"
},
"outcome_type": "Away"
},
{
"label": "BUF Bills",
"odds": {
"american": "-155",
"decimal": "1.64",
"fractional": "20/31"
},
"outcome_type": "Home"
}
]
},
{
"id": "2_85036830",
"type": "Spread",
"selections": [
{
"label": "CAR Panthers",
"odds": {
"american": "-115",
"decimal": "1.86",
"fractional": "20/23"
},
"points": 3,
"outcome_type": "Away"
},
{
"label": "BUF Bills",
"odds": {
"american": "-105",
"decimal": "1.95",
"fractional": "20/21"
},
"points": -3,
"outcome_type": "Home"
}
]
}
]
}
]
}
}Request schema
No body schema
Response schema
#/definitions/sportsbook.oddsResponseDoc
| Field | Type | Required | Enum | Bounds | Example | Description |
|---|---|---|---|---|---|---|
| code | integer | No | 200 | |||
| data | sportsbook.OddsResponse | No | ||||
| data.count | integer | No | ||||
| data.events | array | No | ||||
| data.events[].id | string | No | ||||
| data.events[].markets | array | No | ||||
| data.events[].markets[].id | string | No | ||||
| data.events[].markets[].selections | array | No | ||||
| data.events[].markets[].selections[].label | string | No | CAR Panthers | |||
| data.events[].markets[].selections[].odds | sportsbook.Odds | No | ||||
| data.events[].markets[].selections[].odds.american | string | No | +130 | |||
| data.events[].markets[].selections[].odds.decimal | string | No | 2.30 | |||
| data.events[].markets[].selections[].odds.fractional | string | No | 13/10 | |||
| data.events[].markets[].selections[].outcome_type | string | No | Away | |||
| data.events[].markets[].selections[].points | number | No | 3 | |||
| data.events[].markets[].subcategory_id | string | No | 4519 | |||
| data.events[].markets[].type | string | No | Moneyline | |||
| data.events[].name | string | No | CAR Panthers @ BUF Bills | |||
| data.events[].participants | array | No | ||||
| data.events[].participants[].id | string | No | ||||
| data.events[].participants[].name | string | No | BUF Bills | |||
| data.events[].participants[].role | string | No | Home | |||
| data.events[].start_time | string | No | ||||
| data.events[].status | string | No | NOT_STARTED | |||
| data.fetched_at | string | No | ||||
| data.league | string | No | NFL | |||
| data.league_id | string | No | ||||
| data.source_url | string | No | ||||
| data.sport | string | No | Football | |||
| msg | string | No | OK |
| Status | Description | Schema |
|---|---|---|
| 400 | Bad Request | #/definitions/app.Response |
| 404 | Not Found | #/definitions/app.Response |
| 429 | Too Many Requests | #/definitions/app.Response |
| 503 | Service Unavailable | #/definitions/app.Response |
Use environment variables for secrets and keep Crawlora API keys server-side.
curl -X GET "https://api.crawlora.net/api/v1/draftkings/sportsbook/odds?league_id=84240" \
-H "x-api-key: $CRAWLORA_API_KEY"