FanDuel API endpoint
Returns a team's season statistics. The groups differ by sport (scoring, offense, defense and special teams for the NFL; totals and averages for the NBA), so `stats` is an object with snake_case keys. Available for the NFL and NBA only.
/fanduel/sportsbook/team/statsleague (required): nfl, nba, mlb, college-football, college-basketball. Any other value returns 400. Statistics exist for nfl and nba only.team (required): team slug from the teams route (groups[].teams[].slug), such as arizona-cardinals. A malformed slug returns 400; a slug the league does not have returns 404.Data is read from the Sportsbook's own team pages 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 team page.
| Field | Filled in, of 89 checked | Values in the sample |
|---|---|---|
| games_played | 89 | 0 to 6, median 4 |
| games_started | 89 | 0 to 6, median 0 |
| name | 89 | “Elijah Wilkinson” and 88 other values |
| position | 89 | “OL” and 16 other values |
| Parameter | Type | Required | Default | Description | Example |
|---|---|---|---|---|---|
| league | string | Yes | League: `nfl`, `nba`, `mlb`, `college-football`, `college-basketball` Allowed values: nfl, nba, mlb, college-football, college-basketball. | nfl | |
| team | string | Yes | Team slug from the `teams` route (`groups[].teams[].slug`), such as `arizona-cardinals` | arizona-cardinals | |
| x-api-key (header) | string | Yes | API key required |
curl -X GET "https://api.crawlora.net/api/v1/fanduel/sportsbook/team/stats?league=nfl&team=arizona-cardinals" \ -H "x-api-key: $CRAWLORA_API_KEY"
{
"code": 200,
"data": {
"league": "nfl",
"team": "arizona-cardinals",
"stats": {
"current_team": {
"defense_team_stats": {
"defensive_knockdowns": 15,
"forced_fumbles": 6,
"interceptions_defensive": 3,
"passes_defended": 24,
"quarterback_hits": 31,
"quarterback_hurries": 11,
"quarterback_sacks": 14,
"tackles": 182,
"tackles_for_loss": 30,
"total_blitzes": 54
},
"offense_team_stats": {
"average_passing_yards_per_game": 211,
"average_rushing_yards_per_game": 96.333,
"fumbles_lost": 0,
"interceptions_thrown": 6,
"pass_attempts": 235,
"pass_comp_percentage": 66.809,
"passing_rating": 83.6,
"receiving_yards": 1335,
"receptions": 157,
"rushing_attempts": 157,
"rushing_yards": 578,
"targets": 228,
"yards_after_catch": 581
},
"scoring_stats": {
"field_goal_made": 14,
"field_goal_percentage": 87.5,
"fumbles_returned_for_touchdowns": 0,
"int_touchdowns": 0,
"passing_touchdowns": 9,
"red_zone_conversion_percentage": 47.826,
"rushing_touchdowns": 3,
"total_red_zone_conversions": 11,
"total_special_teams_return_touchdowns": 0,
"total_touchdowns": 12
},
"special_team_stats": {
"extra_point_percentage": 100,
"extra_points_made": 12,
"field_goal_percentage": 87.5,
"kick_return_average_yards": 27.107,
"kick_return_touchdowns": 0,
"kick_return_yards": 759,
"longest_field_goal": 60,
"made_field_goals": 14,
"punt_return_average_yards": 9.2,
"punt_return_touchdowns": 0,
"punting_average": 45.179,
"punting_net_average": 38.179,
"punting_touchbacks": 3,
"punts_inside_opponent20": 8,
"total_punt_return_yards": 46
}
},
"opponent_against_team": {
"defense_team_stats": {
"defensive_knockdowns": 28,
"forced_fumbles": 1,
"interceptions_defensive": 6,
"passes_defended": 39,
"quarterback_hits": 43,
"quarterback_hurries": 13,
"quarterback_sacks": 12,
"tackles": 217,
"tackles_for_loss": 27,
"total_blitzes": 79
},
"offense_team_stats": {
"average_passing_yards_per_game": 229.667,
"average_rushing_yards_per_game": 120.833,
"fumbles_lost": 5,
"interceptions_thrown": 3,
"pass_attempts": 172,
"pass_comp_percentage": 65.698,
"passing_rating": 116.5,
"receiving_yards": 1484,
"receptions": 113,
"rushing_attempts": 164,
"rushing_yards": 725,
"targets": 169,
"yards_after_catch": 675
},
"scoring_stats": {
"field_goal_made": 7,
"field_goal_percentage": 100,
"fumbles_returned_for_touchdowns": 0,
"int_touchdowns": 1,
"passing_touchdowns": 16,
"red_zone_conversion_percentage": 71.429,
"rushing_touchdowns": 6,
"total_red_zone_conversions": 15,
"total_special_teams_return_touchdowns": 0,
"total_touchdowns": 23
},
"special_team_stats": {
"extra_point_percentage": 89.474,
"extra_points_made": 17,
"field_goal_percentage": 100,
"kick_return_average_yards": 24.35,
"kick_return_touchdowns": 0,
"kick_return_yards": 487,
"longest_field_goal": 57,
"made_field_goals": 7,
"punt_return_average_yards": 9.067,
"punt_return_touchdowns": 0,
"punting_average": 46.778,
"punting_net_average": 42,
"punting_touchbacks": 2,
"punts_inside_opponent20": 7,
"total_punt_return_yards": 136
}
},
"players": {
"all_categories": [
{
"games_played": 6,
"games_started": 6,
"name": "Elijah Wilkinson",
"position": "OL"
},
{
"games_played": 6,
"games_started": 6,
"name": "Hjalte Froholdt",
"position": "OL"
}
],
"defense": [
{
"assisted_tackles": 25,
"combined_tackles": 44,
"forced_fumbles": 1,
"fumble_recoveries": 0,
"interceptions": 0,
"knockdowns": 0,
"name": "Mack Wilson Sr.",
"passes_defended": 1,
"position": "LB",
"quarterback_hits": 0,
"sacks": 0,
"safeties": 0,
"tackles_for_loss": 1
},
{
"assisted_tackles": 5,
"combined_tackles": 8,
"forced_fumbles": 0,
"fumble_recoveries": 1,
"interceptions": 0,
"knockdowns": 0,
"name": "Will Johnson",
"passes_defended": 1,
"position": "CB",
"quarterback_hits": 0,
"sacks": 0,
"safeties": 0,
"tackles_for_loss": 0
}
],
"kicking": [
{
"average_punting_net_yards": 38.179,
"average_punting_yards": 45.179,
"field_goal_percentage": null,
"field_goals_made": null,
"field_goals_made20_and29_yards": null,
"field_goals_made30_and39_yards": null,
"field_goals_made40_and49_yards": null,
"field_goals_made50_plus_yards": null,
"field_goals_made_between1_and19_yards": null,
"longest_made_field_goal": null,
"name": "Blake Gillikin",
"position": "P",
"punt_attempts": 28,
"punting_touchbacks": 3,
"punts_landed_inside_the_opponents20": 8
},
{
"average_punting_net_yards": null,
"average_punting_yards": null,
"field_goal_percentage": 87.5,
"field_goals_made": 14,
"field_goals_made20_and29_yards": 4,
"field_goals_made30_and39_yards": 4,
"field_goals_made40_and49_yards": 5,
"field_goals_made50_plus_yards": 1,
"field_goals_made_between1_and19_yards": 0,
"longest_made_field_goal": 60,
"name": "Chad Ryland",
"position": "K",
"punt_attempts": null,
"punting_touchbacks": null,
"punts_landed_inside_the_opponents20": null
}
],
"passing": [
{
"average_pocket_time": 2.316,
"completion_percentage": 66.667,
"completions": 156,
"hurries": 12,
"interceptions": 6,
"name": "Jacoby Brissett",
"passer_rating": 83.4,
"passing_attempts": 234,
"passing_touchdowns": 9,
"passing_yards": 1328,
"position": "QB",
"sacks": 12
},
{
"average_pocket_time": 2.895,
"completion_percentage": 100,
"completions": 1,
"hurries": 0,
"interceptions": 0,
"name": "Michael Wilson",
"passer_rating": 95.8,
"passing_attempts": 1,
"passing_touchdowns": 0,
"passing_yards": 7,
"position": "WR",
"sacks": 0
}
],
"receiving": [
{
"average_receiving_yards": 7.5,
"dropped_passes": 0,
"name": "Teagan Quitoriano",
"position": "TE",
"receiving_touchdowns": 2,
"receiving_yards": 15,
"receptions": 2,
"targets": 2,
"yards_after_catch": 0
},
{
"average_receiving_yards": 9,
"dropped_passes": 0,
"name": "Bam Knight",
"position": "RB",
"receiving_touchdowns": 0,
"receiving_yards": 18,
"receptions": 2,
"targets": 2,
"yards_after_catch": 12
}
],
"returning": [
{
"average_kick_return_yards": 26.2,
"average_punt_return_yards": null,
"kick_return_touchdowns": 0,
"kick_return_yards": 393,
"kick_returns": 15,
"longest_kick_return": 37,
"longest_punt_return": null,
"name": "Jalen Brooks",
"position": "WR",
"punt_return_touchdowns": null,
"punt_return_yards": null,
"punt_returns": null
},
{
"average_kick_return_yards": 28.154,
"average_punt_return_yards": 9.2,
"kick_return_touchdowns": 0,
"kick_return_yards": 366,
"kick_returns": 13,
"longest_kick_return": 40,
"longest_punt_return": 12,
"name": "Devin Duvernay",
"position": "WR",
"punt_return_touchdowns": 0,
"punt_return_yards": 46,
"punt_returns": 5
}
],
"rushing": [
{
"average_rushing_yards": 6.222,
"name": "Bam Knight",
"position": "RB",
"rushing_attempts": 18,
"rushing_touchdowns": 0,
"rushing_yards": 112,
"yards_after_contact": 35
},
{
"average_rushing_yards": 3.368,
"name": "Jacoby Brissett",
"position": "QB",
"rushing_attempts": 19,
"rushing_touchdowns": 1,
"rushing_yards": 64,
"yards_after_contact": 15
}
]
}
},
"fetched_at": "2026-10-23T14:02:44Z"
},
"msg": "OK"
}Request schema
No body schema
Response schema
#/definitions/fanduel.sportsbookTeamStatsResponseDoc
| Field | Type | Required | Enum | Bounds | Example | Description |
|---|---|---|---|---|---|---|
| code | integer | No | 200 | |||
| data | fanduel.SportsbookTeamStatsResponse | No | ||||
| data.fetched_at | string | No | ||||
| data.league | string | No | ||||
| data.stats | object | No | ||||
| data.team | 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/team/stats?league=nfl&team=arizona-cardinals" \
-H "x-api-key: $CRAWLORA_API_KEY"