{"openapi":"3.1.0","info":{"title":"FootballQuants customer tools","version":"1.0.0"},"servers":[{"url":"https://footballquants.com/api/v1/agent-access"}],"paths":{"/tools/search":{"post":{"operationId":"search","description":"Search citable free player evidence by name or Sleeper ID. Returns document IDs, titles and canonical URLs for fetch. Public half-PPR evidence only.","security":[{},{"AgentBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"query":{"maxLength":80,"minLength":1,"title":"Query","type":"string"},"page":{"default":1,"maximum":1000,"minimum":1,"title":"Page","type":"integer"}},"required":["query"],"title":"Search","type":"object"}}}},"responses":{"200":{"description":"FootballQuants evidence with provenance, pagination and freshness context","content":{"application/json":{"schema":{"type":"object","properties":{"data":{},"retrieved_at":{"type":"string"},"source_url":{"type":"string"}}}}}},"401":{"description":"Connect an account"},"403":{"description":"Existing website entitlement required"},"422":{"description":"Invalid arguments or narrow the result"},"503":{"description":"Evidence unavailable"}}}},"/tools/fetch":{"post":{"operationId":"fetch","description":"Fetch a complete citable public player evidence document by the id returned from search. Includes capture timestamps and missing/stale source warnings. Public half-PPR evidence only.","security":[{},{"AgentBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"id":{"description":"Player id returned by search.","maxLength":64,"minLength":1,"pattern":"^[A-Za-z0-9_-]+$","title":"Id","type":"string"}},"required":["id"],"title":"Fetch","type":"object"}}}},"responses":{"200":{"description":"FootballQuants evidence with provenance, pagination and freshness context","content":{"application/json":{"schema":{"type":"object","properties":{"data":{},"retrieved_at":{"type":"string"},"source_url":{"type":"string"}}}}}},"401":{"description":"Connect an account"},"403":{"description":"Existing website entitlement required"},"422":{"description":"Invalid arguments or narrow the result"},"503":{"description":"Evidence unavailable"}}}},"/tools/compare_players":{"post":{"operationId":"compare_players","description":"Compare two to six players from one board snapshot: full-season projections, observed production, rest-of-season model value and half-PPR rushing/receiving opportunity. Includes metric definitions, source dates and individual citation URLs. This is not weekly start/sit advice. Half-PPR values are free; other value columns use your existing seat permissions.","security":[{},{"AgentBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"sleeper_ids":{"description":"Two to six unique Sleeper player IDs, in the desired comparison order. Find IDs with search.","items":{"pattern":"^[0-9]{1,20}$","type":"string"},"maxItems":6,"minItems":2,"title":"Sleeper Ids","type":"array"},"fmt":{"default":"half","enum":["half","ppr","std"],"title":"Fmt","type":"string"},"teams":{"default":12,"enum":[10,12],"title":"Teams","type":"integer"},"qb":{"default":1,"enum":[1,2],"title":"Qb","type":"integer"}},"required":["sleeper_ids"],"title":"Comparison","type":"object"}}}},"responses":{"200":{"description":"FootballQuants evidence with provenance, pagination and freshness context","content":{"application/json":{"schema":{"type":"object","properties":{"data":{},"retrieved_at":{"type":"string"},"source_url":{"type":"string"}}}}}},"401":{"description":"Connect an account"},"403":{"description":"Existing website entitlement required"},"422":{"description":"Invalid arguments or narrow the result"},"503":{"description":"Evidence unavailable"}}}},"/tools/player_board":{"post":{"operationId":"player_board","description":"Search public player projections, ranks, ADP and captured production. Half-PPR trade values are free; other value columns require a current claimed seat. Preserve season and freshness fields.","security":[{},{"AgentBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"section":{"anyOf":[{"maxLength":100,"pattern":"^[A-Za-z0-9_.-]+$","type":"string"},{"type":"null"}],"default":null,"title":"Section"},"limit":{"default":25,"maximum":100,"minimum":1,"title":"Limit","type":"integer"},"offset":{"default":0,"maximum":10000,"minimum":0,"title":"Offset","type":"integer"},"fmt":{"default":"half","enum":["half","ppr","std"],"title":"Fmt","type":"string"},"teams":{"default":12,"enum":[10,12],"title":"Teams","type":"integer"},"qb":{"default":1,"enum":[1,2],"title":"Qb","type":"integer"},"query":{"anyOf":[{"maxLength":100,"minLength":1,"type":"string"},{"type":"null"}],"default":null,"description":"Filter player names or Sleeper player IDs before section selection and pagination.","title":"Query"}},"title":"Board","type":"object"}}}},"responses":{"200":{"description":"FootballQuants evidence with provenance, pagination and freshness context","content":{"application/json":{"schema":{"type":"object","properties":{"data":{},"retrieved_at":{"type":"string"},"source_url":{"type":"string"}}}}}},"401":{"description":"Connect an account"},"403":{"description":"Existing website entitlement required"},"422":{"description":"Invalid arguments or narrow the result"},"503":{"description":"Evidence unavailable"}}}},"/tools/player_profile":{"post":{"operationId":"player_profile","description":"Read a player's captured write-up, news and injury outlook. Capture time is not current news; preserve missing-data and stale-data warnings.","security":[{},{"AgentBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"sleeper_id":{"maxLength":64,"minLength":1,"pattern":"^[A-Za-z0-9_-]+$","title":"Sleeper Id","type":"string"}},"required":["sleeper_id"],"title":"Player","type":"object"}}}},"responses":{"200":{"description":"FootballQuants evidence with provenance, pagination and freshness context","content":{"application/json":{"schema":{"type":"object","properties":{"data":{},"retrieved_at":{"type":"string"},"source_url":{"type":"string"}}}}}},"401":{"description":"Connect an account"},"403":{"description":"Existing website entitlement required"},"422":{"description":"Invalid arguments or narrow the result"},"503":{"description":"Evidence unavailable"}}}},"/tools/board_freshness":{"post":{"operationId":"board_freshness","description":"Read the public board data-version stamp. A data version is not proof that every underlying feed is fresh.","security":[{},{"AgentBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{},"title":"Arguments","type":"object"}}}},"responses":{"200":{"description":"FootballQuants evidence with provenance, pagination and freshness context","content":{"application/json":{"schema":{"type":"object","properties":{"data":{},"retrieved_at":{"type":"string"},"source_url":{"type":"string"}}}}}},"401":{"description":"Connect an account"},"403":{"description":"Existing website entitlement required"},"422":{"description":"Invalid arguments or narrow the result"},"503":{"description":"Evidence unavailable"}}}},"/tools/trade_values":{"post":{"operationId":"trade_values","description":"Read current trade-value units, not weekly fantasy points. Half-PPR is free; PPR and standard require a current claimed seat. Filter names before pagination.","security":[{},{"AgentBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"section":{"anyOf":[{"maxLength":100,"pattern":"^[A-Za-z0-9_.-]+$","type":"string"},{"type":"null"}],"default":null,"title":"Section"},"limit":{"default":25,"maximum":100,"minimum":1,"title":"Limit","type":"integer"},"offset":{"default":0,"maximum":10000,"minimum":0,"title":"Offset","type":"integer"},"fmt":{"default":"half","enum":["half","ppr","std"],"title":"Fmt","type":"string"},"teams":{"default":12,"enum":[10,12],"title":"Teams","type":"integer"},"qb":{"default":1,"enum":[1,2],"title":"Qb","type":"integer"},"query":{"anyOf":[{"maxLength":100,"minLength":1,"type":"string"},{"type":"null"}],"default":null,"description":"Filter player names or Sleeper player IDs before section selection and pagination.","title":"Query"}},"title":"Board","type":"object"}}}},"responses":{"200":{"description":"FootballQuants evidence with provenance, pagination and freshness context","content":{"application/json":{"schema":{"type":"object","properties":{"data":{},"retrieved_at":{"type":"string"},"source_url":{"type":"string"}}}}}},"401":{"description":"Connect an account"},"403":{"description":"Existing website entitlement required"},"422":{"description":"Invalid arguments or narrow the result"},"503":{"description":"Evidence unavailable"}}}},"/tools/trade_verdict":{"post":{"operationId":"trade_verdict","description":"Compare player IDs on each side of a hypothetical trade. No trade is submitted. Half-PPR is free; other scoring formats require a current claimed seat.","security":[{},{"AgentBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"fmt":{"default":"half","enum":["half","ppr","std"],"title":"Fmt","type":"string"},"teams":{"default":12,"enum":[10,12],"title":"Teams","type":"integer"},"qb":{"default":1,"enum":[1,2],"title":"Qb","type":"integer"},"gives":{"description":"Sleeper player IDs; find them on player_board.","items":{"type":"string"},"maxItems":8,"minItems":1,"title":"Gives","type":"array"},"gets":{"items":{"type":"string"},"maxItems":8,"minItems":1,"title":"Gets","type":"array"}},"required":["gives","gets"],"title":"Trade","type":"object"}}}},"responses":{"200":{"description":"FootballQuants evidence with provenance, pagination and freshness context","content":{"application/json":{"schema":{"type":"object","properties":{"data":{},"retrieved_at":{"type":"string"},"source_url":{"type":"string"}}}}}},"401":{"description":"Connect an account"},"403":{"description":"Existing website entitlement required"},"422":{"description":"Invalid arguments or narrow the result"},"503":{"description":"Evidence unavailable"}}}},"/tools/league_research":{"post":{"operationId":"league_research","description":"Read an already-ingested public league's historical analysis or player explorer. Supply a known league ID; this does not discover accounts or ingest leagues. Check every row's season, especially historical results.","security":[{},{"AgentBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"section":{"anyOf":[{"maxLength":100,"pattern":"^[A-Za-z0-9_.-]+$","type":"string"},{"type":"null"}],"default":null,"title":"Section"},"limit":{"default":25,"maximum":100,"minimum":1,"title":"Limit","type":"integer"},"offset":{"default":0,"maximum":10000,"minimum":0,"title":"Offset","type":"integer"},"league_id":{"maxLength":64,"minLength":1,"pattern":"^[A-Za-z0-9_-]+$","title":"League Id","type":"string"},"surface":{"enum":["history","managers","draft_review","head_to_head","season_activity","value","projected_finish","game_environment","players","sharpness"],"title":"Surface","type":"string"},"season":{"anyOf":[{"maximum":2100,"minimum":2000,"type":"integer"},{"type":"null"}],"default":null,"description":"Only projected_finish accepts a season filter; check row seasons for other surfaces.","title":"Season"}},"required":["league_id","surface"],"title":"Research","type":"object"}}}},"responses":{"200":{"description":"FootballQuants evidence with provenance, pagination and freshness context","content":{"application/json":{"schema":{"type":"object","properties":{"data":{},"retrieved_at":{"type":"string"},"source_url":{"type":"string"}}}}}},"401":{"description":"Connect an account"},"403":{"description":"Existing website entitlement required"},"422":{"description":"Invalid arguments or narrow the result"},"503":{"description":"Evidence unavailable"}}}},"/tools/account_status":{"post":{"operationId":"account_status","description":"List only your connected leagues and current claimed seats, credit count, and human upgrade link. A paid credit must be claimed on a league before unlocking seat benefits. This cannot purchase or claim a seat.","security":[{"AgentBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"section":{"anyOf":[{"maxLength":100,"pattern":"^[A-Za-z0-9_.-]+$","type":"string"},{"type":"null"}],"default":null,"title":"Section"},"limit":{"default":25,"maximum":100,"minimum":1,"title":"Limit","type":"integer"},"offset":{"default":0,"maximum":10000,"minimum":0,"title":"Offset","type":"integer"}},"title":"Page","type":"object"}}}},"responses":{"200":{"description":"FootballQuants evidence with provenance, pagination and freshness context","content":{"application/json":{"schema":{"type":"object","properties":{"data":{},"retrieved_at":{"type":"string"},"source_url":{"type":"string"}}}}}},"401":{"description":"Connect an account"},"403":{"description":"Existing website entitlement required"},"422":{"description":"Invalid arguments or narrow the result"},"503":{"description":"Evidence unavailable"}}}},"/tools/start_sit":{"post":{"operationId":"start_sit","description":"Read weekly lineup evidence for your connected league using your linked Sleeper identity. Requires the same connected-league or current-seat access as the site; preserves missing forecasts and uncertainty.","security":[{"AgentBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"section":{"anyOf":[{"maxLength":100,"pattern":"^[A-Za-z0-9_.-]+$","type":"string"},{"type":"null"}],"default":null,"title":"Section"},"limit":{"default":25,"maximum":100,"minimum":1,"title":"Limit","type":"integer"},"offset":{"default":0,"maximum":10000,"minimum":0,"title":"Offset","type":"integer"},"league_id":{"maxLength":64,"minLength":1,"pattern":"^[A-Za-z0-9_-]+$","title":"League Id","type":"string"},"season":{"anyOf":[{"maximum":2100,"minimum":2000,"type":"integer"},{"type":"null"}],"default":null,"title":"Season"},"week":{"anyOf":[{"maximum":18,"minimum":1,"type":"integer"},{"type":"null"}],"default":null,"title":"Week"}},"required":["league_id"],"title":"Weekly","type":"object"}}}},"responses":{"200":{"description":"FootballQuants evidence with provenance, pagination and freshness context","content":{"application/json":{"schema":{"type":"object","properties":{"data":{},"retrieved_at":{"type":"string"},"source_url":{"type":"string"}}}}}},"401":{"description":"Connect an account"},"403":{"description":"Existing website entitlement required"},"422":{"description":"Invalid arguments or narrow the result"},"503":{"description":"Evidence unavailable"}}}},"/tools/waiver_analysis":{"post":{"operationId":"waiver_analysis","description":"Rank waiver targets for your linked live roster or explicit historical replay. Preserve FAAB versus priority mode and the requested week. Advice only; does not submit claims.","security":[{"AgentBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"section":{"anyOf":[{"maxLength":100,"pattern":"^[A-Za-z0-9_.-]+$","type":"string"},{"type":"null"}],"default":null,"title":"Section"},"limit":{"default":25,"maximum":100,"minimum":1,"title":"Limit","type":"integer"},"offset":{"default":0,"maximum":10000,"minimum":0,"title":"Offset","type":"integer"},"league_id":{"maxLength":64,"minLength":1,"pattern":"^[A-Za-z0-9_-]+$","title":"League Id","type":"string"},"season":{"maximum":2100,"minimum":2000,"title":"Season","type":"integer"},"week":{"maximum":18,"minimum":1,"title":"Week","type":"integer"},"replay":{"description":"False for your live linked roster; true for an explicit historical rehearsal.","title":"Replay","type":"boolean"},"top":{"default":15,"maximum":50,"minimum":1,"title":"Top","type":"integer"},"my_user_id":{"anyOf":[{"maxLength":128,"type":"string"},{"type":"null"}],"default":null,"description":"Historical replay manager only. Live analysis uses the account's linked identity.","title":"My User Id"}},"required":["league_id","season","week","replay"],"title":"Waiver","type":"object"}}}},"responses":{"200":{"description":"FootballQuants evidence with provenance, pagination and freshness context","content":{"application/json":{"schema":{"type":"object","properties":{"data":{},"retrieved_at":{"type":"string"},"source_url":{"type":"string"}}}}}},"401":{"description":"Connect an account"},"403":{"description":"Existing website entitlement required"},"422":{"description":"Invalid arguments or narrow the result"},"503":{"description":"Evidence unavailable"}}}},"/tools/trade_roster_context":{"post":{"operationId":"trade_roster_context","description":"Read your linked roster, opponents and league scoring context before a roster trade analysis.","security":[{"AgentBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"section":{"anyOf":[{"maxLength":100,"pattern":"^[A-Za-z0-9_.-]+$","type":"string"},{"type":"null"}],"default":null,"title":"Section"},"limit":{"default":25,"maximum":100,"minimum":1,"title":"Limit","type":"integer"},"offset":{"default":0,"maximum":10000,"minimum":0,"title":"Offset","type":"integer"},"league_id":{"maxLength":64,"minLength":1,"pattern":"^[A-Za-z0-9_-]+$","title":"League Id","type":"string"}},"required":["league_id"],"title":"League","type":"object"}}}},"responses":{"200":{"description":"FootballQuants evidence with provenance, pagination and freshness context","content":{"application/json":{"schema":{"type":"object","properties":{"data":{},"retrieved_at":{"type":"string"},"source_url":{"type":"string"}}}}}},"401":{"description":"Connect an account"},"403":{"description":"Existing website entitlement required"},"422":{"description":"Invalid arguments or narrow the result"},"503":{"description":"Evidence unavailable"}}}},"/tools/trade_roster_verdict":{"post":{"operationId":"trade_roster_verdict","description":"Evaluate a hypothetical trade using your linked roster and actual league scoring. Advice only; cannot submit trades.","security":[{"AgentBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"section":{"anyOf":[{"maxLength":100,"pattern":"^[A-Za-z0-9_.-]+$","type":"string"},{"type":"null"}],"default":null,"title":"Section"},"limit":{"default":25,"maximum":100,"minimum":1,"title":"Limit","type":"integer"},"offset":{"default":0,"maximum":10000,"minimum":0,"title":"Offset","type":"integer"},"league_id":{"maxLength":64,"minLength":1,"pattern":"^[A-Za-z0-9_-]+$","title":"League Id","type":"string"},"gives":{"items":{"type":"string"},"maxItems":8,"minItems":1,"title":"Gives","type":"array"},"gets":{"items":{"type":"string"},"maxItems":8,"minItems":1,"title":"Gets","type":"array"}},"required":["league_id","gives","gets"],"title":"RosterTrade","type":"object"}}}},"responses":{"200":{"description":"FootballQuants evidence with provenance, pagination and freshness context","content":{"application/json":{"schema":{"type":"object","properties":{"data":{},"retrieved_at":{"type":"string"},"source_url":{"type":"string"}}}}}},"401":{"description":"Connect an account"},"403":{"description":"Existing website entitlement required"},"422":{"description":"Invalid arguments or narrow the result"},"503":{"description":"Evidence unavailable"}}}},"/tools/trade_recommendations":{"post":{"operationId":"trade_recommendations","description":"Find trade recommendations for your linked roster with current projection coverage. No messages, offers or roster changes are made.","security":[{"AgentBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"section":{"anyOf":[{"maxLength":100,"pattern":"^[A-Za-z0-9_.-]+$","type":"string"},{"type":"null"}],"default":null,"title":"Section"},"limit":{"default":25,"maximum":100,"minimum":1,"title":"Limit","type":"integer"},"offset":{"default":0,"maximum":10000,"minimum":0,"title":"Offset","type":"integer"},"league_id":{"maxLength":64,"minLength":1,"pattern":"^[A-Za-z0-9_-]+$","title":"League Id","type":"string"},"opponent_roster_id":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":null,"title":"Opponent Roster Id"}},"required":["league_id"],"title":"Recommend","type":"object"}}}},"responses":{"200":{"description":"FootballQuants evidence with provenance, pagination and freshness context","content":{"application/json":{"schema":{"type":"object","properties":{"data":{},"retrieved_at":{"type":"string"},"source_url":{"type":"string"}}}}}},"401":{"description":"Connect an account"},"403":{"description":"Existing website entitlement required"},"422":{"description":"Invalid arguments or narrow the result"},"503":{"description":"Evidence unavailable"}}}},"/tools/draft_managers":{"post":{"operationId":"draft_managers","description":"Read current managers, draft order and linked Sleeper manager in your connected league.","security":[{"AgentBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"section":{"anyOf":[{"maxLength":100,"pattern":"^[A-Za-z0-9_.-]+$","type":"string"},{"type":"null"}],"default":null,"title":"Section"},"limit":{"default":25,"maximum":100,"minimum":1,"title":"Limit","type":"integer"},"offset":{"default":0,"maximum":10000,"minimum":0,"title":"Offset","type":"integer"},"league_id":{"maxLength":64,"minLength":1,"pattern":"^[A-Za-z0-9_-]+$","title":"League Id","type":"string"}},"required":["league_id"],"title":"League","type":"object"}}}},"responses":{"200":{"description":"FootballQuants evidence with provenance, pagination and freshness context","content":{"application/json":{"schema":{"type":"object","properties":{"data":{},"retrieved_at":{"type":"string"},"source_url":{"type":"string"}}}}}},"401":{"description":"Connect an account"},"403":{"description":"Existing website entitlement required"},"422":{"description":"Invalid arguments or narrow the result"},"503":{"description":"Evidence unavailable"}}}},"/tools/draft_live":{"post":{"operationId":"draft_live","description":"Read live draft picks, current pick, draft order and issues. Does not make draft picks.","security":[{"AgentBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"section":{"anyOf":[{"maxLength":100,"pattern":"^[A-Za-z0-9_.-]+$","type":"string"},{"type":"null"}],"default":null,"title":"Section"},"limit":{"default":25,"maximum":100,"minimum":1,"title":"Limit","type":"integer"},"offset":{"default":0,"maximum":10000,"minimum":0,"title":"Offset","type":"integer"},"league_id":{"maxLength":64,"minLength":1,"pattern":"^[A-Za-z0-9_-]+$","title":"League Id","type":"string"}},"required":["league_id"],"title":"League","type":"object"}}}},"responses":{"200":{"description":"FootballQuants evidence with provenance, pagination and freshness context","content":{"application/json":{"schema":{"type":"object","properties":{"data":{},"retrieved_at":{"type":"string"},"source_url":{"type":"string"}}}}}},"401":{"description":"Connect an account"},"403":{"description":"Existing website entitlement required"},"422":{"description":"Invalid arguments or narrow the result"},"503":{"description":"Evidence unavailable"}}}},"/tools/draft_keepers":{"post":{"operationId":"draft_keepers","description":"Read previous-season keeper picks for draft rehearsal. These are assumptions, never confirmed current keepers.","security":[{"AgentBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"section":{"anyOf":[{"maxLength":100,"pattern":"^[A-Za-z0-9_.-]+$","type":"string"},{"type":"null"}],"default":null,"title":"Section"},"limit":{"default":25,"maximum":100,"minimum":1,"title":"Limit","type":"integer"},"offset":{"default":0,"maximum":10000,"minimum":0,"title":"Offset","type":"integer"},"league_id":{"maxLength":64,"minLength":1,"pattern":"^[A-Za-z0-9_-]+$","title":"League Id","type":"string"}},"required":["league_id"],"title":"League","type":"object"}}}},"responses":{"200":{"description":"FootballQuants evidence with provenance, pagination and freshness context","content":{"application/json":{"schema":{"type":"object","properties":{"data":{},"retrieved_at":{"type":"string"},"source_url":{"type":"string"}}}}}},"401":{"description":"Connect an account"},"403":{"description":"Existing website entitlement required"},"422":{"description":"Invalid arguments or narrow the result"},"503":{"description":"Evidence unavailable"}}}},"/tools/draft_predict":{"post":{"operationId":"draft_predict","description":"Predict the next pick from an explicit hypothetical draft state. No picks are submitted and no compute job is queued.","security":[{"AgentBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"section":{"anyOf":[{"maxLength":100,"pattern":"^[A-Za-z0-9_.-]+$","type":"string"},{"type":"null"}],"default":null,"title":"Section"},"limit":{"default":25,"maximum":100,"minimum":1,"title":"Limit","type":"integer"},"offset":{"default":0,"maximum":10000,"minimum":0,"title":"Offset","type":"integer"},"league_id":{"maxLength":64,"minLength":1,"pattern":"^[A-Za-z0-9_-]+$","title":"League Id","type":"string"},"order":{"items":{"type":"string"},"maxItems":32,"minItems":2,"title":"Order","type":"array"},"drafted":{"items":{"type":"string"},"maxItems":800,"title":"Drafted","type":"array"},"my_user_id":{"maxLength":128,"minLength":1,"title":"My User Id","type":"string"}},"required":["league_id","order","my_user_id"],"title":"Draft","type":"object"}}}},"responses":{"200":{"description":"FootballQuants evidence with provenance, pagination and freshness context","content":{"application/json":{"schema":{"type":"object","properties":{"data":{},"retrieved_at":{"type":"string"},"source_url":{"type":"string"}}}}}},"401":{"description":"Connect an account"},"403":{"description":"Existing website entitlement required"},"422":{"description":"Invalid arguments or narrow the result"},"503":{"description":"Evidence unavailable"}}}},"/tools/draft_finish":{"post":{"operationId":"draft_finish","description":"Complete and grade an explicit hypothetical draft state. No picks are submitted and no compute job is queued.","security":[{"AgentBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"section":{"anyOf":[{"maxLength":100,"pattern":"^[A-Za-z0-9_.-]+$","type":"string"},{"type":"null"}],"default":null,"title":"Section"},"limit":{"default":25,"maximum":100,"minimum":1,"title":"Limit","type":"integer"},"offset":{"default":0,"maximum":10000,"minimum":0,"title":"Offset","type":"integer"},"league_id":{"maxLength":64,"minLength":1,"pattern":"^[A-Za-z0-9_-]+$","title":"League Id","type":"string"},"order":{"items":{"type":"string"},"maxItems":32,"minItems":2,"title":"Order","type":"array"},"drafted":{"items":{"type":"string"},"maxItems":800,"title":"Drafted","type":"array"},"my_user_id":{"maxLength":128,"minLength":1,"title":"My User Id","type":"string"}},"required":["league_id","order","my_user_id"],"title":"Draft","type":"object"}}}},"responses":{"200":{"description":"FootballQuants evidence with provenance, pagination and freshness context","content":{"application/json":{"schema":{"type":"object","properties":{"data":{},"retrieved_at":{"type":"string"},"source_url":{"type":"string"}}}}}},"401":{"description":"Connect an account"},"403":{"description":"Existing website entitlement required"},"422":{"description":"Invalid arguments or narrow the result"},"503":{"description":"Evidence unavailable"}}}},"/tools/pre_draft_board":{"post":{"operationId":"pre_draft_board","description":"Read league-scored projections and opponent tendencies. Requires a current claimed seat plus access to this league.","security":[{"AgentBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"section":{"anyOf":[{"maxLength":100,"pattern":"^[A-Za-z0-9_.-]+$","type":"string"},{"type":"null"}],"default":null,"title":"Section"},"limit":{"default":25,"maximum":100,"minimum":1,"title":"Limit","type":"integer"},"offset":{"default":0,"maximum":10000,"minimum":0,"title":"Offset","type":"integer"},"league_id":{"maxLength":64,"minLength":1,"pattern":"^[A-Za-z0-9_-]+$","title":"League Id","type":"string"}},"required":["league_id"],"title":"League","type":"object"}}}},"responses":{"200":{"description":"FootballQuants evidence with provenance, pagination and freshness context","content":{"application/json":{"schema":{"type":"object","properties":{"data":{},"retrieved_at":{"type":"string"},"source_url":{"type":"string"}}}}}},"401":{"description":"Connect an account"},"403":{"description":"Existing website entitlement required"},"422":{"description":"Invalid arguments or narrow the result"},"503":{"description":"Evidence unavailable"}}}},"/tools/league_vorp":{"post":{"operationId":"league_vorp","description":"Read league-scored projections and positional replacement values for your connected league. Uses cached calculations; no forced refresh.","security":[{"AgentBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"section":{"anyOf":[{"maxLength":100,"pattern":"^[A-Za-z0-9_.-]+$","type":"string"},{"type":"null"}],"default":null,"title":"Section"},"limit":{"default":25,"maximum":100,"minimum":1,"title":"Limit","type":"integer"},"offset":{"default":0,"maximum":10000,"minimum":0,"title":"Offset","type":"integer"},"league_id":{"maxLength":64,"minLength":1,"pattern":"^[A-Za-z0-9_-]+$","title":"League Id","type":"string"}},"required":["league_id"],"title":"League","type":"object"}}}},"responses":{"200":{"description":"FootballQuants evidence with provenance, pagination and freshness context","content":{"application/json":{"schema":{"type":"object","properties":{"data":{},"retrieved_at":{"type":"string"},"source_url":{"type":"string"}}}}}},"401":{"description":"Connect an account"},"403":{"description":"Existing website entitlement required"},"422":{"description":"Invalid arguments or narrow the result"},"503":{"description":"Evidence unavailable"}}}}},"components":{"securitySchemes":{"AgentBearer":{"type":"http","scheme":"bearer","description":"OAuth access token or revocable personal agent token from /connect. Never use a website session token."}}}}