DFS

Contest-calibrated player projections, payout profile, and ownership

Changed on

Returns player projections calibrated specifically to this contest's field size, entry fee, and payout convexity ladder (omega, tau, alpha parameters), along with crowd mixture and post-lock actuals.

The player rows come in the same three formats as the slate projections: nested in projections (default), flat in player_stats (format=flat), or the flat rows as CSV (format=csv: one column per player_stats field, then one per enrich tag). A contest on an in-game slate answers 200 with projection_status: none_by_design and empty arrays, and one on a slate with no player pool 200 with projection_status: no_player_pool.

One route for every league, as the slate projections. An NBA contest carries the NBA rows of its slate, each with the projected ownership of the contest's segment (the contest profile it belongs to by operator, format, kind, entries per user, size and entry fee) in ownership; contest_profile is null. A contest whose segment has no ownership yet has ownership: null on its rows. A contest of a league our engines do not project answers 200 with projection_status: league_not_projected.

get/api/v1/dfs/contests/{contest_id}/projections

Request

  • Base URL: https://api.stat-api.com
  • URL: https://api.stat-api.com/api/v1/dfs/contests/{contest_id}/projections
  • Auth: HTTP bearer

Path parameters

contest_idinteger required

Internal DFS contest ID (references dfs.contests.id).

Query parameters

positionstring

Roster position filter (e.g. QB, RB, WR, TE, DST, K).

formatstring

Row format: 'json' (default) sends the nested rows in projections; 'flat' sends the flat rows in player_stats; 'csv' returns the flat rows as text/csv, one column per player_stats field, then one per enrich tag.

enrichstring

Comma-separated tags that join related data onto each player row, the same tags as on /dfs/slate_players: dfs.player_stats, nfl.games, nfl.teams, nfl.projected_player_snaps (or dfs., nfl., *; a sub-path picks one field). Each tag adds one key (one CSV column) named by its table. NFL contests only: an NBA contest answers 400 with this parameter.

projection_idinteger

NBA contests only: a version of our NBA engine (main.projections id). Default: its active version. An NFL contest answers 400 with this parameter.

Response

Contest-calibrated player projections, payout profile, and ownership

projection_status'available' | 'none_by_design' | 'no_player_pool' | 'not_projected_yet' | 'not_projected' | 'league_not_projected' required

Whether the slate's format has projections. available: the format has a projection source, and the arrays hold its rows (a player without a projection has null values). none_by_design: the format has no projections by decision (the in-game formats: DraftKings In-Game Showdown H2 and Q4, FanDuel single game 2nd half and 4th quarter); source is null and the arrays are empty. no_player_pool: the slate has no player pool yet, so there is nothing to project; source is null and the arrays are empty. not_projected_yet (NBA): no player of the slate has a projection of our NBA engine yet. A game's first projection appears on game day, once its betting line and roster are in, and preseason games are never projected; the arrays are empty. not_projected (NBA): every game of the slate tipped with no projection of our NBA engine (the games before the engine ran), so none will come; the arrays are empty. league_not_projected: our engines do not project the slate's league (MLB, NHL, golf); the arrays are empty.

Changes

    • warning

      added the new not_projected enum value to the response property for the response status