FanDuel API endpoint
Returns a player's prop markets for upcoming games, with event, market and selection ids and the current odds of each selection. A player with no listed props returns an empty `events` list. Available for NFL and NBA players.
/fanduel/sportsbook/player/propsleague (required): nfl, nba. Any other value returns 400; only these two leagues have player pages.player (required): player slug ending in its id, such as josh-allen-53775, from the players route (players[].slug) or team/roster (players[].slug). A malformed slug returns 400; an id the Sportsbook does not know returns 404.events list.content_text is the page's descriptive text for the markets when the Sportsbook provides one.selection_id and its market's market_id can be priced live with the market-prices route.Data is read from the Sportsbook's own team pages and services and is shown as published at the time of the request; it is not a betting recommendation. 503 on upstream failure, including when the Sportsbook serves a bot-check page instead of the requested page.
| Field | In the sample | Value in the sample |
|---|---|---|
| league | Has a value | “nfl” |
| player | Has a value | “josh-allen-53775” |
| name | Has a value | “Josh Allen” |
| events | Empty |
| Parameter | Type | Required | Default | Description | Example |
|---|---|---|---|---|---|
| league | string | Yes | League: `nfl`, `nba` Allowed values: nfl, nba. | nfl | |
| player | string | Yes | Player slug ending in its id, such as `josh-allen-53775`; take it from the `players` route (`players[].slug`) or `team/roster` (`players[].slug`) | josh-allen-53775 | |
| x-api-key (header) | string | Yes | API key required |
curl -X GET "https://api.crawlora.net/api/v1/fanduel/sportsbook/player/props?league=nfl&player=josh-allen-53775" \ -H "x-api-key: $CRAWLORA_API_KEY"
{
"code": 200,
"data": {
"league": "nba",
"player": "jayson-tatum-2514",
"name": "Jayson Tatum",
"content_text": "Will Jayson Tatum...",
"events": [
{
"event_id": 36220759,
"event_name": "New York Knicks @ Boston Celtics",
"date": "2026-10-23T23:10:00.000Z",
"markets": [
{
"market_id": "754.193200846",
"name": "Jayson Tatum - Assists",
"market_type": "PLAYER_B_TOTAL_ASSISTS",
"selections": [
{
"selection_id": 15552473,
"runner": "Jayson Tatum Over",
"odds": "-104",
"handicap": 6.5
}
]
}
]
}
],
"fetched_at": "2026-10-23T14:57:52Z"
},
"msg": "OK"
}Request schema
No body schema
Response schema
#/definitions/fanduel.sportsbookPlayerPropsResponseDoc
| Field | Type | Required | Enum | Bounds | Example | Description |
|---|---|---|---|---|---|---|
| code | integer | No | 200 | |||
| data | fanduel.SportsbookPlayerPropsResponse | No | ||||
| data.content_text | string | No | ||||
| data.events | array | No | ||||
| data.events[].date | string | No | ||||
| data.events[].event_id | integer | No | ||||
| data.events[].event_name | string | No | ||||
| data.events[].markets | array | No | ||||
| data.events[].markets[].market_id | string | No | ||||
| data.events[].markets[].market_type | string | No | ||||
| data.events[].markets[].name | string | No | ||||
| data.events[].markets[].selections | array | No | ||||
| data.events[].markets[].selections[].handicap | number | No | ||||
| data.events[].markets[].selections[].odds | string | No | ||||
| data.events[].markets[].selections[].runner | string | No | ||||
| data.events[].markets[].selections[].selection_id | integer | No | ||||
| data.fetched_at | string | No | ||||
| data.league | string | No | ||||
| data.name | string | No | ||||
| data.player | string | No | ||||
| msg | string | No | OK |
| Status | Description | Schema |
|---|---|---|
| 400 | Bad Request | #/definitions/app.Response |
| 404 | Not Found | #/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/player/props?league=nfl&player=josh-allen-53775" \
-H "x-api-key: $CRAWLORA_API_KEY"