FanDuel API endpoint
Returns one competition's schedule and futures (tabs `schedule` and `futures`) with markets and odds. Get `competition_id` from the `competitions` of a league or sport response.
/fanduel/sportsbook/competitionReturns one competition's schedule and futures with markets and odds. The page has two tabs, schedule and futures.
event_type_id (required): sport id. One of 6423 (American Football), 1 (Soccer), 7522 (Basketball), 3 (Golf), 7511 (Baseball), 7524 (Ice Hockey), 2 (Tennis), 26420387 (Mixed Martial Arts), 2593174 (Table Tennis), 3503 (Darts), 6 (Boxing), 5 (Rugby Union), 4 (Cricket), 8 (Motor Sport), 1477 (Rugby League), 6422 (Snooker), 468328 (Handball), 28608997 (Lacrosse), 998917 (Volleyball), 4726642 (Surfing), 10 (Special Bets), 2378961 (Politics); availability differs by market: 998917 (Volleyball) was Ontario-only on 2026-10-23 and is now also offered in NJ, PA, CO and AZ, and a market that does not offer a sport (NY lists 12) returns 404, so list what a market offers with the sports route. Any other value returns 400. Get names from the sports route.competition_id (required): numeric competition id from the competitions of a home, sport or league response (for example 12282733 for the NFL).state (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.tab (optional): schedule or futures. Any other value returns 400.market_type (optional, repeatable or comma-separated): keep only markets of these types, for example MONEY_LINE. The values present on the page are listed in the response market_types (with counts); a type the page lacks yields events with no markets. market_types is always the unfiltered census so you can discover values.exclude_markets (optional, true or false, default false): return events without their markets for a compact event listing.404.503 on upstream failure.state (for example the NFL league page lists 34 market types in nj and 25 in ny, va and vt); compare states with the same state value.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 |
|---|---|---|
| event_id | 28 | |
| name | 28 | “NFL” and 27 other values |
| event_type_id | 28 | |
| competition_id | 28 | |
| open_date | 28 | 2025-09-28 to 2026-11-03 |
| in_play | 28 | true in 0 of 28 |
| markets | 28 | median 3 entries |
| video_available | 12 | true in 12 of 12 |
| Parameter | Type | Required | Default | Description | Example |
|---|---|---|---|---|---|
| event_type_id | string | Yes | Sport id: 6423 American Football; 1 Soccer; 7522 Basketball; 3 Golf; 7511 Baseball; 7524 Ice Hockey; 2 Tennis; 26420387 Mixed Martial Arts; 2593174 Table Tennis; 3503 Darts; 6 Boxing; 5 Rugby Union; 4 Cricket; 8 Motor Sport; 1477 Rugby League; 6422 Snooker; 468328 Handball; 28608997 Lacrosse; 998917 Volleyball, 4726642 Surfing, 10 Special Bets and 2378961 Politics; availability differs by market (Volleyball is also offered in NJ, PA, CO and AZ), and a sport a market does not offer returns 404 Allowed values: 6423, 1, 7522, 3, 7511, 7524, 2, 26420387, 2593174, 3503, 6, 5, 4, 8, 1477, 6422, 468328, 28608997, 998917, 4726642, 10, 2378961. | 6423 | |
| competition_id | integer | Yes | Competition id from a league, sport or home response `competitions` | 12282733 | |
| 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. | ||
| tab | string | No | Show only one tab of this page: a tab slug from the response `tabs[].slug` (the lowercase-hyphenated tab title, such as `games` or `player-props`). An unknown slug returns 400 listing the page's tabs | ||
| market_type | string | No | Keep only these market types (repeat the parameter or comma-separate), for example `MONEY_LINE`. Valid values are listed in the response `market_types`; unmatched types return no markets | ||
| exclude_markets | boolean | No | Return events without their markets (a cheap event listing); `market_types` is still returned | ||
| x-api-key (header) | string | Yes | API key required |
curl -X GET "https://api.crawlora.net/api/v1/fanduel/sportsbook/competition?event_type_id=6423&competition_id=12282733&state=ar&exclude_markets=true" \ -H "x-api-key: $CRAWLORA_API_KEY"
{
"code": 200,
"data": {
"state": "nj",
"page_type": "COMPETITION_PAGE",
"event_type_id": 6423,
"competition_id": 12282733,
"title": "NFL Betting | FanDuel Sportsbook",
"description": "Bet on pro football with FanDuel! Join today for NFL live betting, odds, parlays, moneylines and more!",
"default_tab": "games",
"tabs": [
{
"id": "1676",
"title": "Games",
"slug": "games",
"event_count": 3,
"market_count": 9
},
{
"id": "100",
"title": "Win Totals",
"slug": "win-totals",
"event_count": 1,
"market_count": 5
},
{
"id": "559",
"title": "Player Props",
"slug": "player-props",
"event_count": 2,
"market_count": 3
}
],
"competitions": [
{
"competition_id": 12282733,
"name": "NFL",
"event_type_id": 6423
}
],
"events": [
{
"event_id": 34100802,
"name": "NFL Futures",
"event_type_id": 6423,
"competition_id": 12721217,
"open_date": "2026-03-06T18:48:05.000Z",
"in_play": false
}
],
"market_types": [
{
"type": "REGULAR_SEASON_WINS_SGP",
"count": 5
},
{
"type": "MATCH_HANDICAP_(2-WAY)",
"count": 3
},
{
"type": "MONEY_LINE",
"count": 3
}
],
"fetched_at": "2026-10-22T23:53:07Z"
},
"msg": "OK"
}Request schema
No body schema
Response schema
#/definitions/fanduel.sportsbookPageResponseDoc
| Field | Type | Required | Enum | Bounds | Example | Description |
|---|---|---|---|---|---|---|
| code | integer | No | 200 | |||
| data | fanduel.SportsbookPageResponse | No | ||||
| data.competition_id | integer | No | ||||
| data.competitions | array | No | SportsbookCompetition record, 4 fields: competition_id, event_type_id, name, region. Described under FanDuel Sportsbook homepage odds API. | |||
| data.custom_page_id | string | No | ||||
| data.default_tab | string | No | ||||
| data.description | string | No | ||||
| data.event_type_id | integer | No | ||||
| data.events | array | No | SportsbookEvent record, 31 fields: competition_id, event_id, event_type_id, in_play, markets, name, open_date, video_available. Described under FanDuel Sportsbook homepage odds API. | |||
| data.fetched_at | string | No | ||||
| data.market_types | array | No | ||||
| data.market_types[].count | integer | No | ||||
| data.market_types[].type | string | No | ||||
| data.page_type | string | No | ||||
| data.selected_tab | string | No | ||||
| data.state | string | No | ||||
| data.tabs | array | No | SportsbookTab record, 6 fields: event_count, id, live_count, market_count, slug, title. Described under FanDuel Sportsbook homepage odds API. | |||
| data.title | string | No | ||||
| 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/fanduel/sportsbook/competition?event_type_id=6423&competition_id=12282733&state=ar&exclude_markets=true" \
-H "x-api-key: $CRAWLORA_API_KEY"