Projected captain and FLEX ownership by contest, the biggest prize pool first (lobby), and by contest group
How the learned per-contest ownership of STAT_API_LATEST changes from contest to contest on one slate.
The lobby (Frank 2026-10-01): contests lists every contest of the slate with learned rows, the biggest prize pool first (then the largest max_entries, then the lowest id). The tool opens on the biggest pool (default_contest) and compares each value with the biggest cash game (default_compare, the same order among cash contests). contest holds the values of ?contest= (default: default_contest), compare those of ?compare= (default: default_compare), and across the values of contests side by side, in lobby order: with DFS access the 5 biggest GPP contests and the 5 biggest cash games (the page's three filters), without it the free contests. An id that is not a contest of the slate answers 400.
The groups stay. The slate's contests fall into groups by kind (cash vs GPP as the operator labels them: contest_type 1 is cash, every other type GPP; the model's name rule only for a contest without a type), by entry type inside GPP (single_entry: 1 entry per user, else multi_entry) and by size tier of max_entries (2, 3-100, 101-1k, 1k-10k, 10k-100k, 100k+). Qualifiers and cancelled contests are left out, and so is a contest without learned rows. Each group shows the stored values of ONE real contest, its representative: a paid contest first (entry fee above 0), then the largest field (max_entries), then the most entries, then the largest prize pool, then the lowest id. Empty groups are not sent.
Captain (DraftKings CPT, FanDuel MVP) and FLEX are separate projections: a player's captain row holds his captain share and his FLEX row the rest. Each player shows, per group, both values, their total, the captain rate (captain / total) and his captain and FLEX ranks in the group, plus the spread of each slot across the groups. Per slot: salary, projected points and points per $1,000 from the slate's STAT_API_LATEST projections.
Only persisted learned rows are served (stats.ownership_model set, _metadata.contest_ownership = persisted), never STAT_API (2.1) and never a read-time calibration. A slate without them answers 200 with empty contests, groups and players and a reason.
Access (Frank 2026-10-01, about 22:30Z: "top 5 largest contest types on the left, they only have access to top 10 ownership of players for single game formats"; Frank 2026-10-02: "add in the biggest 5 contests for both all | cash | gpp - there should be 10 for both DK and FD"; then "make it 5 records throughout the entire system"): with DFS access (Pro or the DFS add-on) every contest, every player, the groups and the CSV. Without it (no key, the trial key, a Free key) the free contests only: the 5 biggest prize pools of the slate, of any kind (fewer on a slate with fewer). contests lists only them, groups is empty, each player's by_group is empty and his spreads are null. contest or compare on another contest of the slate answers 200 with locked true, no player and no position total. On a pre-game single-game slate (DraftKings Showdown, FanDuel single game; never an in-game format) such a caller sees the featured players: the 5 players with the highest total ownership in any free contest (access.plan = featured). On any other slate the first 5 players (access.plan = preview). Every list of such an answer holds at most 5 records, the record cap of every non-paid read, and the route asks for no exemption from that cap (no x-preview-exempt). A gated answer names the plan in _metadata (required_tier, message, total_actual_records) and in the x-required-plan and x-preview-rows headers. Position totals always cover every player of an open contest.
Request
- Base URL: https://api.stat-api.com
- URL: https://api.stat-api.com/api/v1/dfs/slates/{slate_id}/contest-ownership
- Auth: HTTP bearer
Path parameters
Internal STAT-API slate ID (references dfs.slates.id).
Query parameters
The contest to show in contest (dfs.contests id of a contest of the slate with learned rows). Default default_contest, the biggest prize pool. Without DFS access a contest that is not free answers locked. An id that is not a contest of the slate answers 400.
The contest to show in compare (dfs.contests id of a contest of the slate with learned rows). Default default_compare, the biggest cash game. Without DFS access a contest that is not free answers locked. An id that is not a contest of the slate answers 400.
'json' (default) or 'csv' (DFS access only, 402 otherwise).
With format=csv: 'groups' (default, one row per player and group) or 'contests' (one row per contest and player, every contest in lobby order). Without format=csv it answers 400.
Response
Projected captain and FLEX ownership by contest, the biggest prize pool first (lobby), and by contest group
Changes
No recorded changes to this operation across all 2 revisions of this API.