FanDuel API endpoint
Returns the Sportsbook's navigation: the sports with their `event_type_id` (the set a market offers changes: on 2026-10-24 NJ and CO listed 19, PA and AZ 18, NY only 12, and Ontario 22 on 2026-10-23), the featured league pages (each with the `custom_page_id` accepted by the league route), quick links, teaser-bet competitions, and the 28 supported markets (27 U.S. states and Ontario, `state`) the other routes can query. Use it to discover valid `event_type_id` and `custom_page_id` values.
/fanduel/sportsbook/sportsstate (optional, default nj): U.S. market whose Sportsbook host is queried. Prices and the markets offered can differ by state. One of ar, az, co, ct, dc, ia, il, in, ks, ky, la, ma, md, mi, mo, mr, nc, nj, ny, oh, on, pa, pr, tn, va, vt, wv, wy. Any other value returns 400.popular_links[].kind is custom_page (a league page; use custom_page_id), live (the in-play page) or other (marketing, account or help links, kept for completeness). Featured league pages and event-specific pages such as a tournament come and go, so read them from this route rather than hard-coding them.states always lists the 28 supported markets (ar, az, ... wy, including on for Ontario) regardless of the state queried.state returns 400; an upstream, parser or transport failure returns 503.The route is read-only and needs no account. Odds are shown as the Sportsbook publishes them for the chosen state at the moment of the request and are not a betting recommendation.
| Field | Filled in, of 28 checked | Values in the sample |
|---|---|---|
| code | 28 | |
| name | 28 | “Arkansas” and 27 other values |
| Parameter | Type | Required | Default | Description | Example |
|---|---|---|---|---|---|
| state | string | No | U.S. market to query (prices and offered markets differ by state); default nj Allowed values: ar, az, co, ct, dc, ia, il, in, ks, ky, la, ma, md, mi, mo, mr, nc, nj, ny, oh, on, pa, pr, tn, va, vt, wv, wy. | ||
| x-api-key (header) | string | Yes | API key required |
curl -X GET "https://api.crawlora.net/api/v1/fanduel/sportsbook/sports?state=ar" \ -H "x-api-key: $CRAWLORA_API_KEY"
{
"code": 200,
"data": {
"state": "nj",
"sports": [
{
"event_type_id": 6423,
"name": "American Football"
},
{
"event_type_id": 1,
"name": "Soccer"
},
{
"event_type_id": 7522,
"name": "Basketball"
}
],
"popular_links": [
{
"id": 1017,
"title": "Live now",
"kind": "live",
"icon": "live",
"display_order": 1
},
{
"id": 1019,
"title": "Rewards",
"kind": "other",
"url": "/promotions",
"icon": "rewards",
"display_order": 2
},
{
"id": 5230,
"title": "NFL",
"kind": "custom_page",
"custom_page_id": "nfl",
"url": "https://sportsbook.fanduel.com/navigation/nfl",
"icon": "nfl",
"display_order": 3
}
],
"quick_links": [
{
"id": 3581,
"title": "NFL Team Odds",
"kind": "other",
"url": "https://sportsbook.fanduel.com/teams/nfl/teams",
"display_order": 1
},
{
"id": 1054,
"title": "Terms and Conditions",
"kind": "other",
"url": "/terms",
"display_order": 7
}
],
"teaser_competitions": [
{
"competition_id": 10547864,
"name": "NBA",
"icon": "nba",
"starting_spread": 5
}
],
"states": [
{
"code": "ar",
"name": "Arkansas"
},
{
"code": "az",
"name": "Arizona"
},
{
"code": "co",
"name": "Colorado"
}
],
"fetched_at": "2026-10-22T23:53:07Z"
},
"msg": "OK"
}Request schema
No body schema
Response schema
#/definitions/fanduel.sportsbookSportsResponseDoc
| Field | Type | Required | Enum | Bounds | Example | Description |
|---|---|---|---|---|---|---|
| code | integer | No | 200 | |||
| data | fanduel.SportsbookSportsResponse | No | ||||
| data.fetched_at | string | No | ||||
| data.popular_links | array | No | ||||
| data.popular_links[].custom_page_id | string | No | ||||
| data.popular_links[].display_order | integer | No | ||||
| data.popular_links[].icon | string | No | ||||
| data.popular_links[].id | integer | No | ||||
| data.popular_links[].kind | string | No | ||||
| data.popular_links[].title | string | No | ||||
| data.popular_links[].url | string | No | ||||
| data.quick_links | array | No | ||||
| data.quick_links[].custom_page_id | string | No | ||||
| data.quick_links[].display_order | integer | No | ||||
| data.quick_links[].icon | string | No | ||||
| data.quick_links[].id | integer | No | ||||
| data.quick_links[].kind | string | No | ||||
| data.quick_links[].title | string | No | ||||
| data.quick_links[].url | string | No | ||||
| data.sports | array | No | ||||
| data.sports[].event_type_id | integer | No | ||||
| data.sports[].name | string | No | ||||
| data.state | string | No | ||||
| data.states | array | No | ||||
| data.states[].code | string | No | ||||
| data.states[].name | string | No | ||||
| data.teaser_competitions | array | No | ||||
| data.teaser_competitions[].competition_id | integer | No | ||||
| data.teaser_competitions[].icon | string | No | ||||
| data.teaser_competitions[].name | string | No | ||||
| data.teaser_competitions[].starting_spread | number | No | ||||
| msg | string | No | OK |
| Status | Description | Schema |
|---|---|---|
| 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/fanduel/sportsbook/sports?state=ar" \
-H "x-api-key: $CRAWLORA_API_KEY"