DFS slate_settings API
slate_settings
dfs.slate_settingsThe scoring format and roster-construction ruleset a slate is built on — salary cap, position slots, seat multipliers, and the scoring rule (`scoring`) per operator / league / format version. A small reference table that many slates point at; a slate's scoring comes only from its setting.
GET/api/v1/dfs/slate_settingsList slate_settings for DFS
Requires one of:
operator_id or operator — requests satisfying none of these return 400.Parameters
operator_idquerybigintoptionalFilter by operator: by numeric id (1 DraftKings, 2 FanDuel, 3 Yahoo).
operatorquerystringoptionalFilter by operator: by name (draftkings, fanduel) or numeric id (1, 2).
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/slate_settings?operator_id=1'Responses
200slate_settings rows matching the declared filter set, wrapped in { slate_settings, 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(11 fields)show schema ▸
| Field | Type | References | Description |
|---|---|---|---|
idkey | bigint | — | Primary Key |
league_id | bigint | — | — e.g. 2 |
operator_id | bigint | — e.g. 2 | |
operator_setting_id | stringnullable | — | The operator's own id for this format (DraftKings gameTypeId, FanDuel slateFormatId). Operators reuse these ids across versions and formats, so it is unique only together with operator, league, game type and valid_from. e.g. 45 |
contest_type | integer | — | Contest structure code (0 = Tournament / GPP, 1 = Cash game / Double-up). e.g. 0 |
game_style | stringnullable | — | Operator game style label. Values:CLASSICSINGLE_GAMEPICK_EMFULL_ROSTERLATE_SWAPSHOW_DOWNSHOW_DOWN_CAPTAIN_MODESINGLE_GAME_BOOSTSINGLE_GAME_V3NON_LATE_SWAPSTARTING_5WEEKENDSHOW_DOWN_CAPTAIN_MODE_…FINAL_ROUND_ONLYSINGLE_GAME_DEPRECATEDSINGLE_GAME_V2-DEPRECAT…SINGLE_GAME_V2 |
game_type | integer | — | Contest format code (0 = Classic full-slate, 1 = Showdown / Single Game, 2 = Tiers). e.g. 1 |
name | string | — | Ruleset name (e.g. "Classic", "Showdown Captain Mode", "Single Game"). e.g. Showdown |
scoring | jsonbnullable | — | The setting's scoring rule, the only source of its slates' points: `rule` (a name shared by settings that score alike, e.g. fanduel-nfl-2024), `part_of_game` (full, second_half, fourth_quarter), and for a full-game rule `stats`: points per stat, yardage bonuses (stat, at, points), field-goal tiers, and defense points (with the points-allowed figure the operator counts). An in-game rule holds no `stats`: its slates carry the operator's own points. NULL = no rule yet. e.g. {"part_of_game":"full","rule":"fanduel-nba","stats":{"assis… |
settings | jsonb | — | The lineup ruleset as JSON, from the operator's own data: salary cap, roster slots, eligible positions, and the seat multipliers (syntheticPositions, e.g. CPT 1.5x). The points per stat are in `scoring`. e.g. {"containsDuplicatePlayers":false,"lateSwap":false,"maxPlay… |
↳scoring settings.scoring | objectnullable | — | Legacy: per-stat settings copied onto some old rows from an earlier configuration, served as stored. Not read; the scoring rule is the `scoring` column. |
↳lateSwap settings.lateSwap | booleannullable | — | Whether late lineup swapping is permitted. |
↳positions settings.positions | listnullable | — | Roster slot requirements and eligible positions. |
↳salaryCap settings.salaryCap | integernullable | — | Total team salary cap in dollars (e.g. 50000). |
↳minTeamCount settings.minTeamCount | integernullable | — | Minimum distinct teams represented in lineup. |
↳salaryIncrement settings.salaryIncrement | integernullable | — | Minimum salary step unit. |
↳maxPlayersSameTeamCount settings.maxPlayersSameTeamCount | integernullable | — | Maximum players allowed from a single team. |
↳containsDuplicatePlayers settings.containsDuplicatePlayers | booleannullable | — | Whether captain/MVP multiplier slots allow player duplicates. |
valid_from | datenullable | — | First slate day (US Eastern) this version of the format applies to. e.g. 2015-10-01 |
GET/api/v1/dfs/slate_settings/{id}Get a single slate_setting by id
Parameters
idpathbigintrequiredPrimary key (id) of the slate_setting 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/slate_settings/130'Responses
200Single slate_setting row.application/jsonshow example ▸
404Row not found.
Response Schema(11 fields)show schema ▸
| Field | Type | References | Description |
|---|---|---|---|
idkey | bigint | — | Primary Key |
league_id | bigint | — | — e.g. 2 |
operator_id | bigint | — e.g. 2 | |
operator_setting_id | stringnullable | — | The operator's own id for this format (DraftKings gameTypeId, FanDuel slateFormatId). Operators reuse these ids across versions and formats, so it is unique only together with operator, league, game type and valid_from. e.g. 45 |
contest_type | integer | — | Contest structure code (0 = Tournament / GPP, 1 = Cash game / Double-up). e.g. 0 |
game_style | stringnullable | — | Operator game style label. Values:CLASSICSINGLE_GAMEPICK_EMFULL_ROSTERLATE_SWAPSHOW_DOWNSHOW_DOWN_CAPTAIN_MODESINGLE_GAME_BOOSTSINGLE_GAME_V3NON_LATE_SWAPSTARTING_5WEEKENDSHOW_DOWN_CAPTAIN_MODE_…FINAL_ROUND_ONLYSINGLE_GAME_DEPRECATEDSINGLE_GAME_V2-DEPRECAT…SINGLE_GAME_V2 |
game_type | integer | — | Contest format code (0 = Classic full-slate, 1 = Showdown / Single Game, 2 = Tiers). e.g. 1 |
name | string | — | Ruleset name (e.g. "Classic", "Showdown Captain Mode", "Single Game"). e.g. Showdown |
scoring | jsonbnullable | — | The setting's scoring rule, the only source of its slates' points: `rule` (a name shared by settings that score alike, e.g. fanduel-nfl-2024), `part_of_game` (full, second_half, fourth_quarter), and for a full-game rule `stats`: points per stat, yardage bonuses (stat, at, points), field-goal tiers, and defense points (with the points-allowed figure the operator counts). An in-game rule holds no `stats`: its slates carry the operator's own points. NULL = no rule yet. e.g. {"part_of_game":"full","rule":"fanduel-nba","stats":{"assis… |
settings | jsonb | — | The lineup ruleset as JSON, from the operator's own data: salary cap, roster slots, eligible positions, and the seat multipliers (syntheticPositions, e.g. CPT 1.5x). The points per stat are in `scoring`. e.g. {"containsDuplicatePlayers":false,"lateSwap":false,"maxPlay… |
↳scoring settings.scoring | objectnullable | — | Legacy: per-stat settings copied onto some old rows from an earlier configuration, served as stored. Not read; the scoring rule is the `scoring` column. |
↳lateSwap settings.lateSwap | booleannullable | — | Whether late lineup swapping is permitted. |
↳positions settings.positions | listnullable | — | Roster slot requirements and eligible positions. |
↳salaryCap settings.salaryCap | integernullable | — | Total team salary cap in dollars (e.g. 50000). |
↳minTeamCount settings.minTeamCount | integernullable | — | Minimum distinct teams represented in lineup. |
↳salaryIncrement settings.salaryIncrement | integernullable | — | Minimum salary step unit. |
↳maxPlayersSameTeamCount settings.maxPlayersSameTeamCount | integernullable | — | Maximum players allowed from a single team. |
↳containsDuplicatePlayers settings.containsDuplicatePlayers | booleannullable | — | Whether captain/MVP multiplier slots allow player duplicates. |
valid_from | datenullable | — | First slate day (US Eastern) this version of the format applies to. e.g. 2015-10-01 |