FanDuel API endpoint
Returns a player's overview page: name, position, team, the season, and recent news with the player's updates. NFL players also carry `season_totals` and a `game_log`; NBA players carry `stats` (career and per-season lines) and `projections`. Available for NFL and NBA players; an unknown player id, or a player newly added to a roster whose page is still empty, returns 404.
/fanduel/sportsbook/playerleague (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.season_totals (sections of stat lines) and game_log (one entry per game with the opponent, score and stat line).stats (career and per-season lines, as on the player/stats route) and projections.404 for it instead of an empty profile, and the same player's player/stats also returns 404. Players listed by players or team/roster are not all guaranteed to have a profile.player_updates holds the Sportsbook's short player notes and is empty when there are none.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 | Filled in, of 6 checked | Values in the sample |
|---|---|---|
| info | 6 | |
| stats | 6 | median 10 entries |
| 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?league=nfl&player=josh-allen-53775" \ -H "x-api-key: $CRAWLORA_API_KEY"
{
"code": 200,
"data": {
"league": "nfl",
"player": "josh-allen-53775",
"name": "Josh Allen",
"position": "QB",
"team": "Buffalo Bills",
"team_slug": "buffalo-bills",
"season": {
"season": "2026-2027",
"season_type": "REG",
"season_year": 2026
},
"season_totals": [
{
"section_title": "Passing",
"stats": [
{
"label": "C/A",
"stat_name": "Completions/Attempts",
"value": "114/171"
}
]
}
],
"game_log": [
{
"info": {
"game_date": "2026-10-18",
"is_bye_week": false,
"is_home_game": false,
"is_playoffs": false,
"opponent_team_meta": {
"code": "LV",
"conference": "AFC",
"division": "AFC West",
"est_year": null,
"head_coach": "Antonio Pierce",
"logo": {
"svg": "https://d17odppiik753x.cloudfront.net/teamlogos/NFL/Las-Vegas-Raiders.svg"
},
"market": "Las Vegas",
"name": "Las Vegas Raiders",
"owner": null,
"short_name": "Raiders",
"slug": "las-vegas-raiders",
"stadium": null
},
"player_team_win": true,
"score": {
"opponent_team": 30,
"player_team": 33
},
"week_number": 6
},
"stats": [
"23/33"
]
}
],
"player_updates": [],
"news": [
{
"id": "8462e09c-c08d-4538-8237-35b70073b5b7-d",
"title": "NFL MVP Odds Update: Josh Allen, Brock Purdy in Their Own Tier",
"summary": "NFL MVP odds after Week 6. What does the market look like?",
"author": "Austan Kas",
"published_at": "2026-10-20T14:26:52Z",
"source": "research",
"url": "https://www.fanduel.com/research/nfl-mvp-odds-update-josh-allen-brock-purdy-patrick-mahomes",
"thumbnail_url": "https://cdn.sanity.io/images/pbwem9y5/ch_production/2846405b4b03ca0af1d0feba64e3355b9b075e9e-5024x3349.jpg?rect=762,0,3982,2159&w=332&h=180"
}
],
"fetched_at": "2026-10-23T14:57:52Z"
},
"msg": "OK"
}Request schema
No body schema
Response schema
#/definitions/fanduel.sportsbookPlayerResponseDoc
| Field | Type | Required | Enum | Bounds | Example | Description |
|---|---|---|---|---|---|---|
| code | integer | No | 200 | |||
| data | fanduel.SportsbookPlayerResponse | No | ||||
| data.fetched_at | string | No | ||||
| data.game_log | unknown | No | ||||
| data.league | string | No | ||||
| data.name | string | No | ||||
| data.news | array | No | ||||
| data.news[].author | string | No | ||||
| data.news[].id | string | No | ||||
| data.news[].published_at | string | No | ||||
| data.news[].source | string | No | ||||
| data.news[].summary | string | No | ||||
| data.news[].thumbnail_url | string | No | ||||
| data.news[].title | string | No | ||||
| data.news[].url | string | No | ||||
| data.player | string | No | ||||
| data.player_updates | array | No | ||||
| data.position | string | No | ||||
| data.projections | unknown | No | ||||
| data.season | object | No | ||||
| data.season_totals | unknown | No | ||||
| data.stats | object | No | ||||
| data.team | string | No | ||||
| data.team_slug | 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?league=nfl&player=josh-allen-53775" \
-H "x-api-key: $CRAWLORA_API_KEY"