DFS player_stats API
player_stats
dfs.player_statsOne row per slate player: the slate context (slate, salary, position) joined to that player's per-game fantasy result for the scoring rule of the slate's setting — total points, the per-category point columns, and the raw stats behind them. NFL and NBA. The fields marked "NBA only" are null on NFL rows; every NFL-only field is null on NBA rows.
GET/api/v1/dfs/player_statsList player_stats for DFS
Requires one of:
slate_id or player_id or game_id or slate_date or operator_slate_id — requests satisfying none of these return 400.Parameters
slate_idquerybigintoptionalFilter to one slate — every player in that slate's pool.
operator_slate_idquerybigintoptionalOperator-side slate identifier (DraftKings contest group ID, FanDuel fixtureListId). Resolves to slate_id.
player_idquerybigintoptionalFilter to a single player across slates.
game_idquerybigintoptionalFilter to the players whose slate rows resolve to one game.
slate_datequerydateoptionalSlate calendar day (YYYY-MM-DD, US Eastern). Range operators support backtesting windows. Range syntax: slate_date__gte=, slate_date__lte=, slate_date__between=.
team_idquerybigintoptionalFilter by the player's team.
scoring_formatquerystringoptionalScoring format code (classic, showdown, single_game) — e.g. exclude showdown duplicates from a player log.
positionquerystringoptionalRoster position as listed in the slate pool (QB, RB, WR, TE, DST).
operator_idquerybigintoptionalFilter by operator: by numeric id (1 = DraftKings, 2 = FanDuel) or name (draftkings, fanduel).
operatorquerystringoptionalFilter by operator: draftkings, fanduel, yahoo (or numeric operator id).
league_idquerybigintoptionalFilter by league (1 = NFL).
limitqueryintegeroptionaldefault 50Page size. Defaults to 50; max 5000.
from_idquerybigintoptionalReturn rows with id strictly greater than this value; page using the previous response's `next_from_id`. Omit on the first page.
Restores the documented defaults (trial keys only accept the unchanged defaults).
Request
curl -sS --compressed \
-H 'Authorization: Bearer YOUR_API_KEY' \
'https://api.stat-api.com/api/v1/dfs/player_stats?slate_id=676551'Responses
200player_stats rows matching the declared filter set, wrapped in { player_stats, limit, next_from_id }. next_from_id is the last row's id on a full page — pass it back via ?from_id= to walk the full result; null marks the terminal page.application/jsonshow example ▸
400No declared filter set was satisfied — response body matches MissingRequiredFiltersError; pick one combo from the accepted-sets hint and resend.
application/jsonResponse Schema(74 fields)show schema ▸
| Field | Type | References | Description |
|---|---|---|---|
idkey | bigint | — | Primary Key |
game_id | bigintnullable | — | — e.g. 42306 |
league_id | bigint | — | — e.g. 1 |
operator_id | bigint | — | — e.g. 2 |
player_id | bigint | — | — e.g. 1183 |
slate_id | bigint | — e.g. 124469 | |
team_id | bigintnullable | — | — e.g. 28 |
blocked_kick_fpts | decimalnullable | — | — e.g. 0.0000 |
blocked_kicks | integernullable | — | — e.g. 0 |
defense_interception_fpts | decimalnullable | — | — e.g. 0.0000 |
defensive_interceptions | integernullable | — | — e.g. 0 |
defensive_sacks | floatnullable | — | Numeric — half-sacks exist. Player value for humans, team value for DST rows. e.g. 0 |
defensive_td_fpts | decimalnullable | — | — e.g. 0.0000 |
defensive_tds | integernullable | — | — e.g. 0 |
extra_point_fpts | decimalnullable | — | — e.g. 0.0000 |
extra_pts_made | integernullable | — | — e.g. 0 |
fantasy_pts | decimalnullable | — | — e.g. 0.0000 |
field_goal_fpts | decimalnullable | — | — e.g. 0.0000 |
field_goal_missed_fpts | decimalnullable | — | — e.g. 0.0000 |
field_goals_attempted | integernullable | — | — e.g. 0 |
field_goals_made | integernullable | — | — e.g. 0 |
field_goals_made_0_19 | integernullable | — | — e.g. 0 |
field_goals_made_20_29 | integernullable | — | — e.g. 0 |
field_goals_made_30_39 | integernullable | — | — e.g. 0 |
field_goals_made_40_49 | integernullable | — | — e.g. 0 |
field_goals_made_50_plus | integernullable | — | — e.g. 0 |
fumble_lost_fpts | decimalnullable | — | — e.g. 0.0000 |
fumble_recovery_fpts | decimalnullable | — | — e.g. 0.0000 |
fumbles_recovered | integernullable | — | — e.g. 0 |
interception_fpts | decimalnullable | — | — e.g. 0.0000 |
interception_return_tds | integernullable | — | — e.g. 0 |
interceptions_thrown | integernullable | — | — e.g. 0 |
kick_return_tds | integernullable | — | — e.g. 0 |
kick_return_yds | integernullable | — | — e.g. 0 |
passing_2pt_conversion_fpts | decimalnullable | — | — e.g. 0.0000 |
passing_2pt_conversions | integernullable | — | — e.g. 0 |
passing_bonus_fpts | decimalnullable | — | — e.g. 0.0000 |
passing_td_fpts | decimalnullable | — | — e.g. 0.0000 |
passing_tds | integernullable | — | — e.g. 0 |
passing_yds | integernullable | — | — e.g. 0 |
passing_yds_fpts | decimalnullable | — | — e.g. 0.0000 |
position | string | — | — Values:WRRBTEMVPQBCPTDKDST |
pts_allowed_def | integernullable | — | — e.g. 16 |
pts_allowed_dst | integernullable | — | — e.g. 16 |
pts_allowed_fpts | decimalnullable | — | — e.g. 0.0000 |
punt_return_tds | integernullable | — | — e.g. 0 |
punt_return_yds | integernullable | — | — e.g. 0 |
receiving_2pt_conversion_fpts | decimalnullable | — | — e.g. 0.0000 |
receiving_2pt_conversions | integernullable | — | — e.g. 0 |
receiving_bonus_fpts | decimalnullable | — | — e.g. 0.0000 |
receiving_fumbles_lost | integernullable | — | — e.g. 0 |
receiving_td_fpts | decimalnullable | — | — e.g. 0.0000 |
receiving_tds | integernullable | — | — e.g. 0 |
receiving_yds | integernullable | — | — e.g. 0 |
receiving_yds_fpts | decimalnullable | — | — e.g. 0.0000 |
reception_fpts | decimalnullable | — | — e.g. 0.0000 |
receptions | integernullable | — | — e.g. 0 |
return_td_fpts | decimalnullable | — | — e.g. 0.0000 |
return_yds_fpts | decimalnullable | — | — e.g. 0.0000 |
rushing_2pt_conversion_fpts | decimalnullable | — | — e.g. 0.0000 |
rushing_2pt_conversions | integernullable | — | — e.g. 0 |
rushing_bonus_fpts | decimalnullable | — | — e.g. 0.0000 |
rushing_fumbles_lost | integernullable | — | — e.g. 0 |
rushing_td_fpts | decimalnullable | — | — e.g. 0.0000 |
rushing_tds | integernullable | — | — e.g. 0 |
rushing_yds | integernullable | — | — e.g. 0 |
rushing_yds_fpts | decimalnullable | — | — e.g. 0.0000 |
sack_fpts | decimalnullable | — | — e.g. 0.0000 |
sack_fumbles_lost | integernullable | — | — e.g. 0 |
safeties | integernullable | — | — e.g. 0 |
safety_fpts | decimalnullable | — | — e.g. 0.0000 |
salary | integer | — | — e.g. 6000 |
scoring_format | stringnullable | — | Operator scoring format code (classic, showdown, single_game); null when the format has no fantasy scoring. Values:classicsingle_gameshowdown |
slate_date | date | — | — e.g. 2021-08-21 |
GET/api/v1/dfs/player_stats/{id}Get a single player_stat by id
Parameters
idpathbigintrequiredPrimary key (id) of the player_stat row.
Restores the documented defaults (trial keys only accept the unchanged defaults).
Request
curl -sS --compressed \
-H 'Authorization: Bearer YOUR_API_KEY' \
'https://api.stat-api.com/api/v1/dfs/player_stats/43189982'Responses
200Single player_stat row.application/jsonshow example ▸
404Row not found.
Response Schema(74 fields)show schema ▸
| Field | Type | References | Description |
|---|---|---|---|
idkey | bigint | — | Primary Key |
game_id | bigintnullable | — | — e.g. 42306 |
league_id | bigint | — | — e.g. 1 |
operator_id | bigint | — | — e.g. 2 |
player_id | bigint | — | — e.g. 1183 |
slate_id | bigint | — e.g. 124469 | |
team_id | bigintnullable | — | — e.g. 28 |
blocked_kick_fpts | decimalnullable | — | — e.g. 0.0000 |
blocked_kicks | integernullable | — | — e.g. 0 |
defense_interception_fpts | decimalnullable | — | — e.g. 0.0000 |
defensive_interceptions | integernullable | — | — e.g. 0 |
defensive_sacks | floatnullable | — | Numeric — half-sacks exist. Player value for humans, team value for DST rows. e.g. 0 |
defensive_td_fpts | decimalnullable | — | — e.g. 0.0000 |
defensive_tds | integernullable | — | — e.g. 0 |
extra_point_fpts | decimalnullable | — | — e.g. 0.0000 |
extra_pts_made | integernullable | — | — e.g. 0 |
fantasy_pts | decimalnullable | — | — e.g. 0.0000 |
field_goal_fpts | decimalnullable | — | — e.g. 0.0000 |
field_goal_missed_fpts | decimalnullable | — | — e.g. 0.0000 |
field_goals_attempted | integernullable | — | — e.g. 0 |
field_goals_made | integernullable | — | — e.g. 0 |
field_goals_made_0_19 | integernullable | — | — e.g. 0 |
field_goals_made_20_29 | integernullable | — | — e.g. 0 |
field_goals_made_30_39 | integernullable | — | — e.g. 0 |
field_goals_made_40_49 | integernullable | — | — e.g. 0 |
field_goals_made_50_plus | integernullable | — | — e.g. 0 |
fumble_lost_fpts | decimalnullable | — | — e.g. 0.0000 |
fumble_recovery_fpts | decimalnullable | — | — e.g. 0.0000 |
fumbles_recovered | integernullable | — | — e.g. 0 |
interception_fpts | decimalnullable | — | — e.g. 0.0000 |
interception_return_tds | integernullable | — | — e.g. 0 |
interceptions_thrown | integernullable | — | — e.g. 0 |
kick_return_tds | integernullable | — | — e.g. 0 |
kick_return_yds | integernullable | — | — e.g. 0 |
passing_2pt_conversion_fpts | decimalnullable | — | — e.g. 0.0000 |
passing_2pt_conversions | integernullable | — | — e.g. 0 |
passing_bonus_fpts | decimalnullable | — | — e.g. 0.0000 |
passing_td_fpts | decimalnullable | — | — e.g. 0.0000 |
passing_tds | integernullable | — | — e.g. 0 |
passing_yds | integernullable | — | — e.g. 0 |
passing_yds_fpts | decimalnullable | — | — e.g. 0.0000 |
position | string | — | — Values:WRRBTEMVPQBCPTDKDST |
pts_allowed_def | integernullable | — | — e.g. 16 |
pts_allowed_dst | integernullable | — | — e.g. 16 |
pts_allowed_fpts | decimalnullable | — | — e.g. 0.0000 |
punt_return_tds | integernullable | — | — e.g. 0 |
punt_return_yds | integernullable | — | — e.g. 0 |
receiving_2pt_conversion_fpts | decimalnullable | — | — e.g. 0.0000 |
receiving_2pt_conversions | integernullable | — | — e.g. 0 |
receiving_bonus_fpts | decimalnullable | — | — e.g. 0.0000 |
receiving_fumbles_lost | integernullable | — | — e.g. 0 |
receiving_td_fpts | decimalnullable | — | — e.g. 0.0000 |
receiving_tds | integernullable | — | — e.g. 0 |
receiving_yds | integernullable | — | — e.g. 0 |
receiving_yds_fpts | decimalnullable | — | — e.g. 0.0000 |
reception_fpts | decimalnullable | — | — e.g. 0.0000 |
receptions | integernullable | — | — e.g. 0 |
return_td_fpts | decimalnullable | — | — e.g. 0.0000 |
return_yds_fpts | decimalnullable | — | — e.g. 0.0000 |
rushing_2pt_conversion_fpts | decimalnullable | — | — e.g. 0.0000 |
rushing_2pt_conversions | integernullable | — | — e.g. 0 |
rushing_bonus_fpts | decimalnullable | — | — e.g. 0.0000 |
rushing_fumbles_lost | integernullable | — | — e.g. 0 |
rushing_td_fpts | decimalnullable | — | — e.g. 0.0000 |
rushing_tds | integernullable | — | — e.g. 0 |
rushing_yds | integernullable | — | — e.g. 0 |
rushing_yds_fpts | decimalnullable | — | — e.g. 0.0000 |
sack_fpts | decimalnullable | — | — e.g. 0.0000 |
sack_fumbles_lost | integernullable | — | — e.g. 0 |
safeties | integernullable | — | — e.g. 0 |
safety_fpts | decimalnullable | — | — e.g. 0.0000 |
salary | integer | — | — e.g. 6000 |
scoring_format | stringnullable | — | Operator scoring format code (classic, showdown, single_game); null when the format has no fantasy scoring. Values:classicsingle_gameshowdown |
slate_date | date | — | — e.g. 2021-08-21 |