FanDuel API endpoint
Returns the games on today's slate and in progress for the NBA, NFL, NHL and MLB with status (`SCHEDULED`, `IN_PROGRESS`, `FINAL`), the game clock, each team's score and win probability, the TV network, the Sportsbook event link and the money line, spread and total prices with their market and selection ids. A team's `side` is `home` or `away` when it can be read from the event link. Pass `sport` to keep one league; a league with no games returns an empty list.
/fanduel/research/fixturessport (optional): nba, nfl, nhl, mlb (case-insensitive). Omit it for every league that has games. Any other value returns 400; the service rejects NCAAF, NCAAB, WNBA, soccer, golf and the other Research sports.status is SCHEDULED, IN_PROGRESS or FINAL. game_clock is the service's text for a live game (Q1 - 2:53) and is omitted otherwise. scheduled_end is usually empty.teams are in the service's order with score, win_probability (percent) and the three main prices. side is home or away when the team's name matches one side of the event link (chicago-bulls-@-milwaukee-bucks); it is omitted otherwise.money_line, spread and total are {odds, points, side, market_id, selection_id, url}: odds is the American price, points the spread or the total, side is over or under for a total, and market_id and selection_id come from the betslip link and identify the market on the Sportsbook routes.event_url is the Sportsbook event page; network the TV broadcaster. An empty slate returns count 0 and an empty list: on 2026-10-23 the NBA had 12 fixtures, the MLB 1 and the NFL and NHL none.Data is read from the FanDuel Research site's own public service and is shown as published at the time of the request; it is not betting advice. 503 on upstream failure.
| Field | Filled in, of 9 checked | Values in the sample |
|---|---|---|
| id | 9 | |
| sport | 9 | |
| status | 9 | FINAL (6), IN_PROGRESS (2), SCHEDULED (1) |
| scheduled_start | 9 | 2026-10-24 to 2026-10-25 |
| game_clock | 9 | Final (6), OT1 - 00:25 (1), Q3 - 4:28 (1) and 1 more |
| network | 9 | “ALT” and 7 other values |
| event_url | 4 | sportsbook.fanduel.com |
| teams | 9 | median 2 entries |
| Parameter | Type | Required | Default | Description | Example |
|---|---|---|---|---|---|
| sport | string | No | Keep one league Allowed values: nba, nfl, nhl, mlb. | ||
| x-api-key (header) | string | Yes | API key required |
curl -X GET "https://api.crawlora.net/api/v1/fanduel/research/fixtures?sport=nba" \ -H "x-api-key: $CRAWLORA_API_KEY"
{
"code": 200,
"data": {
"sport": "nba",
"count": 1,
"fixtures": [
{
"id": "NBA-36392",
"sport": {
"slug": "nba",
"name": "NBA"
},
"status": "IN_PROGRESS",
"scheduled_start": "2026-10-23T20:16:00.000Z",
"game_clock": "Q1 - 2:53",
"network": "WCGV",
"event_url": "https://sportsbook.fanduel.com/basketball/nba/chicago-bulls-@-milwaukee-bucks-36220987",
"teams": [
{
"id": "G53ONDfF8Mb1ekbevDYHQ7",
"name": "Milwaukee Bucks",
"abbreviation": "MIL",
"number_fire_id": 16,
"side": "home",
"score": 26,
"win_probability": 51.5,
"money_line": {
"odds": -122,
"market_id": "42.618353073",
"selection_id": "237477"
},
"spread": {
"odds": -110,
"points": -1.5,
"market_id": "42.618353071",
"selection_id": "237477"
},
"total": {
"odds": -104,
"points": 239.5,
"side": "under",
"market_id": "42.618625943",
"selection_id": "7017824"
}
},
{
"id": "G53ONDfF8Mb1ekbevDYHEV",
"name": "Chicago Bulls",
"abbreviation": "CHI",
"number_fire_id": 4,
"side": "away",
"score": 11,
"win_probability": 48.5
}
]
}
],
"fetched_at": "2026-10-24T06:00:00Z"
},
"msg": "OK"
}Request schema
No body schema
Response schema
#/definitions/fanduel.researchFixturesResponseDoc
| Field | Type | Required | Enum | Bounds | Example | Description |
|---|---|---|---|---|---|---|
| code | integer | No | 200 | |||
| data | fanduel.ResearchFixturesResponse | No | ||||
| data.count | integer | No | ||||
| data.fetched_at | string | No | ||||
| data.fixtures | array | No | ||||
| data.fixtures[].event_url | string | No | ||||
| data.fixtures[].game_clock | string | No | ||||
| data.fixtures[].head_to_head_slug | string | No | ||||
| data.fixtures[].id | string | No | ||||
| data.fixtures[].network | string | No | ||||
| data.fixtures[].scheduled_end | string | No | ||||
| data.fixtures[].scheduled_start | string | No | ||||
| data.fixtures[].sport | fanduel.ResearchSportRef | No | ||||
| data.fixtures[].sport.name | string | No | ||||
| data.fixtures[].sport.slug | string | No | ||||
| data.fixtures[].status | string | No | ||||
| data.fixtures[].teams | array | No | ||||
| data.fixtures[].teams[].abbreviation | string | No | ||||
| data.fixtures[].teams[].id | string | No | ||||
| data.fixtures[].teams[].money_line | fanduel.ResearchFixtureLine | No | ||||
| data.fixtures[].teams[].money_line.market_id | string | No | ||||
| data.fixtures[].teams[].money_line.odds | integer | No | ||||
| data.fixtures[].teams[].money_line.points | number | No | ||||
| data.fixtures[].teams[].money_line.selection_id | string | No | ||||
| data.fixtures[].teams[].money_line.side | string | No | ||||
| data.fixtures[].teams[].money_line.url | string | No | ||||
| data.fixtures[].teams[].name | string | No | ||||
| data.fixtures[].teams[].number_fire_id | integer | No | ||||
| data.fixtures[].teams[].score | integer | No | ||||
| data.fixtures[].teams[].side | string | No | ||||
| data.fixtures[].teams[].spread | fanduel.ResearchFixtureLine | No | ||||
| data.fixtures[].teams[].spread.market_id | string | No | ||||
| data.fixtures[].teams[].spread.odds | integer | No | ||||
| data.fixtures[].teams[].spread.points | number | No | ||||
| data.fixtures[].teams[].spread.selection_id | string | No | ||||
| data.fixtures[].teams[].spread.side | string | No | ||||
| data.fixtures[].teams[].spread.url | string | No | ||||
| data.fixtures[].teams[].total | fanduel.ResearchFixtureLine | No | ||||
| data.fixtures[].teams[].total.market_id | string | No | ||||
| data.fixtures[].teams[].total.odds | integer | No | ||||
| data.fixtures[].teams[].total.points | number | No | ||||
| data.fixtures[].teams[].total.selection_id | string | No | ||||
| data.fixtures[].teams[].total.side | string | No | ||||
| data.fixtures[].teams[].total.url | string | No | ||||
| data.fixtures[].teams[].win_probability | number | No | ||||
| data.sport | string | No | ||||
| msg | string | No | OK |
| Status | Description | Schema |
|---|---|---|
| 400 | Bad Request | #/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/research/fixtures?sport=nba" \
-H "x-api-key: $CRAWLORA_API_KEY"