openapi-directory
Version:
Building & bundling https://github.com/APIs-guru/openapi-directory for easy use from JS
1 lines • 81.2 kB
JSON
{"openapi":"3.0.0","servers":[{"url":"https://api.collegefootballdata.com"}],"info":{"contact":{"email":"admin@collegefootballdata.com"},"description":"This is an API for accessing all sorts of college football data. Please note that API keys should be supplied with \"Bearer \" prepended (e.g. \"Bearer your_key\"). API keys can be acquired from the CollegeFootballData.com website.","title":"College Football Data API","version":"4.4.12","x-apisguru-categories":["open_data"],"x-logo":{"backgroundColor":"#FFFFFF","url":"https://collegefootballdata.com/Logo.png"},"x-origin":[{"format":"openapi","url":"https://api.collegefootballdata.com/api-docs.json","version":"3.0"}],"x-providerName":"collegefootballdata.com"},"security":[{"ApiKeyAuth":[]}],"tags":[{"description":"Games scores and statistics","name":"games"},{"description":"Drive data","name":"drives"},{"description":"Play by play data","name":"plays"},{"description":"Team information","name":"teams"},{"description":"Conference information","name":"conferences"},{"description":"Information about venues","name":"venues"},{"description":"Information about coaches","name":"coaches"},{"description":"Player information and data","name":"players"},{"description":"Historical poll rankings","name":"rankings"},{"description":"Betting lines and data","name":"betting"},{"description":"Recruiting rankings and data","name":"recruiting"},{"description":"Team rating data","name":"ratings"},{"description":"Data relating to Predicted Points and other metrics","name":"metrics"},{"description":"Statistical data","name":"stats"},{"description":"NFL Draft data","name":"draft"}],"paths":{"/calendar":{"get":{"description":"Get calendar of weeks by season","operationId":"getCalendar","parameters":[{"description":"Year filter","in":"query","name":"year","required":true,"schema":{"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/Week"},"type":"array"}}},"description":"successful operation"},"400":{"description":"error"}},"summary":"Season calendar","tags":["games"]}},"/coaches":{"get":{"description":"Coaching history","operationId":"getCoaches","parameters":[{"description":"First name filter","in":"query","name":"firstName","required":false,"schema":{"type":"string"}},{"description":"Last name filter","in":"query","name":"lastName","required":false,"schema":{"type":"string"}},{"description":"Team name filter","in":"query","name":"team","required":false,"schema":{"type":"string"}},{"description":"Year filter","in":"query","name":"year","required":false,"schema":{"minimum":1869,"type":"integer"}},{"description":"Minimum year filter (inclusive)","in":"query","name":"minYear","required":false,"schema":{"minimum":1869,"type":"integer"}},{"description":"Maximum year filter (inclusive)","in":"query","name":"maxYear","required":false,"schema":{"minimum":1869,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/Coach"},"type":"array"}}},"description":"successful operation"}},"summary":"Coaching records and history","tags":["coaches"]}},"/conferences":{"get":{"description":"Get conference list","operationId":"getConferences","responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/Conference"},"type":"array"}}},"description":"successful operation"},"400":{"description":"error"}},"summary":"Conferences","tags":["conferences"]}},"/draft/picks":{"get":{"description":"List of NFL Draft picks","operationId":"getDraftPicks","parameters":[{"description":"Year filter","in":"query","name":"year","required":false,"schema":{"type":"integer"}},{"description":"NFL team filter","in":"query","name":"nflTeam","required":false,"schema":{"type":"string"}},{"description":"Player college filter","in":"query","name":"college","required":false,"schema":{"type":"string"}},{"description":"College confrence abbreviation filter","in":"query","name":"conference","required":false,"schema":{"type":"string"}},{"description":"NFL position filter","in":"query","name":"position","required":false,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/DraftPick"},"type":"array"}}},"description":"successful operation"},"400":{"description":"error"}},"summary":"List of NFL Draft picks","tags":["draft"]}},"/draft/positions":{"get":{"description":"List of NFL positions","operationId":"getNFLPositions","responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/DraftPosition"},"type":"array"}}},"description":"successful operation"},"400":{"description":"error"}},"summary":"List of NFL positions","tags":["draft"]}},"/draft/teams":{"get":{"description":"List of NFL teams","operationId":"getNFLTeams","responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/DraftTeam"},"type":"array"}}},"description":"successful operation"},"400":{"description":"error"}},"summary":"List of NFL teams","tags":["draft"]}},"/drives":{"get":{"description":"Get game drives","operationId":"getDrives","parameters":[{"description":"Season type filter","in":"query","name":"seasonType","required":false,"schema":{"default":"regular","type":"string"}},{"description":"Year filter","in":"query","name":"year","required":true,"schema":{"minimum":2001,"type":"integer"}},{"description":"Week filter","in":"query","name":"week","required":false,"schema":{"maximum":16,"minimum":1,"type":"integer"}},{"description":"Team filter","in":"query","name":"team","required":false,"schema":{"type":"string"}},{"description":"Offensive team filter","in":"query","name":"offense","required":false,"schema":{"type":"string"}},{"description":"Defensive team filter","in":"query","name":"defense","required":false,"schema":{"type":"string"}},{"description":"Conference filter","in":"query","name":"conference","required":false,"schema":{"type":"string"}},{"description":"Offensive conference filter","in":"query","name":"offenseConference","required":false,"schema":{"type":"string"}},{"description":"Defensive conference filter","in":"query","name":"defenseConference","required":false,"schema":{"type":"string"}},{"description":"Division classification filter (fbs/fcs/ii/iii)","in":"query","name":"classification","required":false,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/Drive"},"type":"array"}}},"description":"successful operation"}},"summary":"Drive data and results","tags":["drives"]}},"/game/box/advanced":{"get":{"description":"Get advanced box score data","operationId":"getAdvancedBoxScore","parameters":[{"description":"Game id parameters","in":"query","name":"gameId","required":true,"schema":{"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BoxScore"}}},"description":"successful operation"}},"summary":"Advanced box scores","tags":["games"]}},"/games":{"get":{"description":"Get game results","operationId":"getGames","parameters":[{"description":"Year/season filter for games","in":"query","name":"year","required":true,"schema":{"minimum":1869,"type":"integer"}},{"description":"Week filter","in":"query","name":"week","required":false,"schema":{"maximum":16,"minimum":1,"type":"integer"}},{"description":"Season type filter (regular or postseason)","in":"query","name":"seasonType","required":false,"schema":{"default":"regular","type":"string"}},{"description":"Team","in":"query","name":"team","required":false,"schema":{"type":"string"}},{"description":"Home team filter","in":"query","name":"home","required":false,"schema":{"type":"string"}},{"description":"Away team filter","in":"query","name":"away","required":false,"schema":{"type":"string"}},{"description":"Conference abbreviation filter","in":"query","name":"conference","required":false,"schema":{"type":"string"}},{"description":"Division classification filter (fbs/fcs/ii/iii)","in":"query","name":"division","required":false,"schema":{"type":"string"}},{"description":"id filter for querying a single game","in":"query","name":"id","required":false,"schema":{"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/Game"},"type":"array"}}},"description":"successful operation"},"400":{"description":"error"}},"summary":"Games and results","tags":["games"]}},"/games/media":{"get":{"description":"Game media information (TV, radio, etc)","operationId":"getGameMedia","parameters":[{"description":"Year filter","in":"query","name":"year","required":true,"schema":{"minimum":2001,"type":"integer"}},{"description":"Week filter","in":"query","name":"week","required":false,"schema":{"maximum":16,"minimum":1,"type":"integer"}},{"description":"Season type filter (regular, postseason, or both)","in":"query","name":"seasonType","required":false,"schema":{"type":"string"}},{"description":"Team filter","in":"query","name":"team","required":false,"schema":{"type":"string"}},{"description":"Conference filter","in":"query","name":"conference","required":false,"schema":{"type":"string"}},{"description":"Media type filter (tv, radio, web, ppv, or mobile)","in":"query","name":"mediaType","required":false,"schema":{"type":"string"}},{"description":"Division classification filter (fbs/fcs/ii/iii)","in":"query","name":"classification","required":false,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/GameMedia"},"type":"array"}}},"description":"successful operation"},"400":{"description":"error"}},"summary":"Game media information and schedules","tags":["games"]}},"/games/players":{"get":{"description":"Player stats broken down by game","operationId":"getPlayerGameStats","parameters":[{"description":"Year/season filter for games","in":"query","name":"year","required":true,"schema":{"minimum":2001,"type":"integer"}},{"description":"Week filter","in":"query","name":"week","required":false,"schema":{"maximum":16,"minimum":1,"type":"integer"}},{"description":"Season type filter (regular or postseason)","in":"query","name":"seasonType","required":false,"schema":{"default":"regular","type":"string"}},{"description":"Team filter","in":"query","name":"team","required":false,"schema":{"type":"string"}},{"description":"Conference abbreviation filter","in":"query","name":"conference","required":false,"schema":{"type":"string"}},{"description":"Category filter (e.g defensive)","in":"query","name":"category","required":false,"schema":{"type":"string"}},{"description":"Game id filter","in":"query","name":"gameId","required":false,"schema":{"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/PlayerGame"},"type":"array"}}},"description":"successful operation"},"400":{"description":"error"}},"summary":"Player game stats","tags":["games"]}},"/games/teams":{"get":{"description":"Team stats broken down by game","operationId":"getTeamGameStats","parameters":[{"description":"Year/season filter for games","in":"query","name":"year","required":true,"schema":{"minimum":2001,"type":"integer"}},{"description":"Week filter","in":"query","name":"week","required":false,"schema":{"maximum":16,"minimum":1,"type":"integer"}},{"description":"Season type filter (regular or postseason)","in":"query","name":"seasonType","required":false,"schema":{"default":"regular","type":"string"}},{"description":"Team filter","in":"query","name":"team","required":false,"schema":{"type":"string"}},{"description":"Conference abbreviation filter","in":"query","name":"conference","required":false,"schema":{"type":"string"}},{"description":"Game id filter","in":"query","name":"gameId","required":false,"schema":{"type":"integer"}},{"description":"Division classification filter (fbs/fcs/ii/iii)","in":"query","name":"classification","required":false,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/TeamGame"},"type":"array"}}},"description":"successful operation"},"400":{"description":"error"}},"summary":"Team game stats","tags":["games"]}},"/games/weather":{"get":{"description":"Weather information for the hour of kickoff","operationId":"getGameWeather","parameters":[{"description":"Game id filter (required if no year)","in":"query","name":"gameId","required":false,"schema":{"type":"integer"}},{"description":"Year filter (required if no game id)","in":"query","name":"year","required":false,"schema":{"minimum":2001,"type":"integer"}},{"description":"Week filter","in":"query","name":"week","required":false,"schema":{"maximum":16,"minimum":1,"type":"integer"}},{"description":"Season type filter (regular, postseason, or both)","in":"query","name":"seasonType","required":false,"schema":{"type":"string"}},{"description":"Team filter","in":"query","name":"team","required":false,"schema":{"type":"string"}},{"description":"Conference filter","in":"query","name":"conference","required":false,"schema":{"type":"string"}},{"description":"Division classification filter (fbs/fcs/ii/iii)","in":"query","name":"classification","required":false,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/GameWeather"},"type":"array"}}},"description":"successful operation"},"400":{"description":"error"}},"summary":"Game weather information (Patreon only)","tags":["games"]}},"/lines":{"get":{"description":"Closing betting lines","operationId":"getLines","parameters":[{"description":"Game id filter","in":"query","name":"gameId","required":false,"schema":{"type":"integer"}},{"description":"Year/season filter for games","in":"query","name":"year","required":false,"schema":{"minimum":2013,"type":"integer"}},{"description":"Week filter","in":"query","name":"week","required":false,"schema":{"maximum":16,"minimum":1,"type":"integer"}},{"description":"Season type filter (regular or postseason)","in":"query","name":"seasonType","required":false,"schema":{"default":"regular","type":"string"}},{"description":"Team","in":"query","name":"team","required":false,"schema":{"type":"string"}},{"description":"Home team filter","in":"query","name":"home","required":false,"schema":{"type":"string"}},{"description":"Away team filter","in":"query","name":"away","required":false,"schema":{"type":"string"}},{"description":"Conference abbreviation filter","in":"query","name":"conference","required":false,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/GameLines"},"type":"array"}}},"description":"successful operation"},"400":{"description":"error"}},"summary":"Betting lines","tags":["betting"]}},"/live/plays":{"get":{"description":"Get live metrics and PBP","operationId":"getLivePlays","parameters":[{"description":"Game id","in":"query","name":"id","required":true,"schema":{"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LivePlayByPlay"}}},"description":"successful operation"}},"summary":"Live metrics and PBP (Patreon only)","tags":["plays"]}},"/metrics/wp":{"get":{"description":"Win probability data","operationId":"getWinProbabilityData","parameters":[{"description":"Game id filter","in":"query","name":"gameId","required":true,"schema":{"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/PlayWP"},"type":"array"}}},"description":"successful operation"},"400":{"description":"error"}},"summary":"Win probability chart data","tags":["metrics"]}},"/metrics/wp/pregame":{"get":{"description":"Pregame win probabilities","operationId":"getPregameWinProbabilities","parameters":[{"description":"Year filter","in":"query","name":"year","required":false,"schema":{"minimum":2001,"type":"integer"}},{"description":"Week filter","in":"query","name":"week","required":false,"schema":{"maximum":16,"minimum":1,"type":"integer"}},{"description":"Team filter","in":"query","name":"team","required":false,"schema":{"type":"string"}},{"description":"regular or postseason","in":"query","name":"seasonType","required":false,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/PregameWP"},"type":"array"}}},"description":"successful operation"},"400":{"description":"error"}},"summary":"Pregame win probability data","tags":["metrics"]}},"/play/stat/types":{"get":{"description":"Type of play stats","operationId":"getPlayStatTypes","responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/PlayStatType"},"type":"array"}}},"description":"successful operation"},"400":{"description":"error"}},"summary":"Types of player play stats","tags":["plays"]}},"/play/stats":{"get":{"description":"Gets player stats associated by play (limit 1000)","operationId":"getPlayStats","parameters":[{"description":"Year filter","in":"query","name":"year","required":false,"schema":{"minimum":2013,"type":"integer"}},{"description":"Week filter","in":"query","name":"week","required":false,"schema":{"maximum":16,"minimum":1,"type":"integer"}},{"description":"Team filter","in":"query","name":"team","required":false,"schema":{"type":"string"}},{"description":"gameId filter (from /games endpoint)","in":"query","name":"gameId","required":false,"schema":{"type":"integer"}},{"description":"athleteId filter (from /roster endpoint)","in":"query","name":"athleteId","required":false,"schema":{"type":"integer"}},{"description":"statTypeId filter (from /play/stat/types endpoint)","in":"query","name":"statTypeId","required":false,"schema":{"type":"integer"}},{"description":"regular, postseason, or both","in":"query","name":"seasonType","required":false,"schema":{"type":"string"}},{"description":"conference abbreviation filter","in":"query","name":"conference","required":false,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/PlayStat"},"type":"array"}}},"description":"successful operation"},"400":{"description":"error"}},"summary":"Play stats by play","tags":["plays"]}},"/play/types":{"get":{"description":"Types of plays","operationId":"getPlayTypes","responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/PlayType"},"type":"array"}}},"description":"successful operation"}},"summary":"Play types","tags":["plays"]}},"/player/portal":{"get":{"description":"Transfer portal by season","operationId":"getTransferPortal","parameters":[{"description":"Year filter","in":"query","name":"year","required":true,"schema":{"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/PortalPlayer"},"type":"array"}}},"description":"successful operation"},"400":{"description":"error"}},"summary":"Transfer portal by season","tags":["players"]}},"/player/returning":{"get":{"description":"Returning production metrics","operationId":"getReturningProduction","parameters":[{"description":"Year filter","in":"query","name":"year","required":false,"schema":{"minimum":2014,"type":"integer"}},{"description":"Team filter","in":"query","name":"team","required":false,"schema":{"type":"string"}},{"description":"Conference abbreviation filter","in":"query","name":"conference","required":false,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/ReturningProduction"},"type":"array"}}},"description":"successful operation"},"400":{"description":"error"}},"summary":"Team returning production metrics","tags":["players"]}},"/player/search":{"get":{"description":"Search for players","operationId":"playerSearch","parameters":[{"description":"Term to search on","in":"query","name":"searchTerm","required":true,"schema":{"type":"string"}},{"description":"Position abbreviation filter","in":"query","name":"position","required":false,"schema":{"type":"string"}},{"description":"Team filter","in":"query","name":"team","required":false,"schema":{"type":"string"}},{"description":"Year filter","in":"query","name":"year","required":false,"schema":{"minimum":2001,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/PlayerSearchResult"},"type":"array"}}},"description":"successful operation"},"400":{"description":"error"}},"summary":"Search for player information","tags":["players"]}},"/player/usage":{"get":{"description":"Player usage metrics by season","operationId":"getPlayerUsage","parameters":[{"description":"Year filter","in":"query","name":"year","required":true,"schema":{"default":2022,"minimum":2013,"type":"integer"}},{"description":"Team filter","in":"query","name":"team","required":false,"schema":{"type":"string"}},{"description":"Conference abbreviation filter","in":"query","name":"conference","required":false,"schema":{"type":"string"}},{"description":"Position abbreviation filter","in":"query","name":"position","required":false,"schema":{"type":"string"}},{"description":"Player id filter","in":"query","name":"playerId","required":false,"schema":{"type":"integer"}},{"description":"Filter to remove garbage time plays from calculations","in":"query","name":"excludeGarbageTime","required":false,"schema":{"type":"boolean"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/PlayerUsage"},"type":"array"}}},"description":"successful operation"},"400":{"description":"error"}},"summary":"Player usage metrics broken down by season","tags":["players"]}},"/plays":{"get":{"description":"Get play data and results","operationId":"getPlays","parameters":[{"description":"Season type filter","in":"query","name":"seasonType","required":false,"schema":{"default":"regular","type":"string"}},{"description":"Year filter","in":"query","name":"year","required":true,"schema":{"minimum":2001,"type":"integer"}},{"description":"Week filter (required if team, offense, or defense, not specified)","in":"query","name":"week","required":true,"schema":{"maximum":16,"minimum":1,"type":"integer"}},{"description":"Team filter","in":"query","name":"team","required":false,"schema":{"type":"string"}},{"description":"Offensive team filter","in":"query","name":"offense","required":false,"schema":{"type":"string"}},{"description":"Defensive team filter","in":"query","name":"defense","required":false,"schema":{"type":"string"}},{"description":"Conference filter","in":"query","name":"conference","required":false,"schema":{"type":"string"}},{"description":"Offensive conference filter","in":"query","name":"offenseConference","required":false,"schema":{"type":"string"}},{"description":"Defensive conference filter","in":"query","name":"defenseConference","required":false,"schema":{"type":"string"}},{"description":"Play type filter","in":"query","name":"playType","required":false,"schema":{"type":"integer"}},{"description":"Division classification filter (fbs/fcs/ii/iii)","in":"query","name":"classification","required":false,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/Play"},"type":"array"}}},"description":"successful operation"}},"summary":"Play by play data","tags":["plays"]}},"/ppa/games":{"get":{"description":"Predicted Points Added (PPA) by game","operationId":"getGamePPA","parameters":[{"description":"Year filter","in":"query","name":"year","required":true,"schema":{"minimum":2001,"type":"integer"}},{"description":"Week filter","in":"query","name":"week","required":false,"schema":{"maximum":16,"minimum":1,"type":"integer"}},{"description":"Team filter","in":"query","name":"team","required":false,"schema":{"type":"string"}},{"description":"Conference filter","in":"query","name":"conference","required":false,"schema":{"type":"string"}},{"description":"Filter to remove garbage time plays from calculations","in":"query","name":"excludeGarbageTime","required":false,"schema":{"type":"boolean"}},{"description":"Season type filter (regular or postseason)","in":"query","name":"seasonType","required":false,"schema":{"default":"regular","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/GamePPA"},"type":"array"}}},"description":"successful operation"},"400":{"description":"error"}},"summary":"Team Predicated Points Added (PPA/EPA) by game","tags":["metrics"]}},"/ppa/players/games":{"get":{"description":"Predicted Points Added (PPA) by player game","operationId":"getPlayerGamePPA","parameters":[{"description":"Year filter","in":"query","name":"year","required":false,"schema":{"minimum":2013,"type":"integer"}},{"description":"Week filter","in":"query","name":"week","required":false,"schema":{"maximum":16,"minimum":1,"type":"integer"}},{"description":"Team filter","in":"query","name":"team","required":false,"schema":{"type":"string"}},{"description":"Position abbreviation filter","in":"query","name":"position","required":false,"schema":{"type":"string"}},{"description":"Player id filter","in":"query","name":"playerId","required":false,"schema":{"type":"integer"}},{"description":"Minimum play threshold filter","in":"query","name":"threshold","required":false,"schema":{"type":"string"}},{"description":"Filter to remove garbage time plays from calculations","in":"query","name":"excludeGarbageTime","required":false,"schema":{"type":"boolean"}},{"description":"Season type filter (regular or postseason)","in":"query","name":"seasonType","required":false,"schema":{"default":"regular","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/PlayerGamePPA"},"type":"array"}}},"description":"successful operation"},"400":{"description":"error"}},"summary":"Player Predicated Points Added (PPA/EPA) broken down by game","tags":["metrics"]}},"/ppa/players/season":{"get":{"description":"Predicted Points Added (PPA) by player season","operationId":"getPlayerSeasonPPA","parameters":[{"description":"Year filter","in":"query","name":"year","required":false,"schema":{"minimum":2013,"type":"integer"}},{"description":"Team filter","in":"query","name":"team","required":false,"schema":{"type":"string"}},{"description":"Conference abbreviation filter","in":"query","name":"conference","required":false,"schema":{"type":"string"}},{"description":"Position abbreviation filter","in":"query","name":"position","required":false,"schema":{"type":"string"}},{"description":"Player id filter","in":"query","name":"playerId","required":false,"schema":{"type":"integer"}},{"description":"Minimum play threshold filter","in":"query","name":"threshold","required":false,"schema":{"type":"string"}},{"description":"Filter to remove garbage time plays from calculations","in":"query","name":"excludeGarbageTime","required":false,"schema":{"type":"boolean"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/PlayerSeasonPPA"},"type":"array"}}},"description":"successful operation"},"400":{"description":"error"}},"summary":"Player Predicated Points Added (PPA/EPA) broken down by season","tags":["metrics"]}},"/ppa/predicted":{"get":{"description":"Predicted Points","operationId":"getPredictedPoints","parameters":[{"description":"Down filter","in":"query","name":"down","required":true,"schema":{"maximum":4,"minimum":1,"type":"integer"}},{"description":"Distance filter","in":"query","name":"distance","required":true,"schema":{"maximum":99,"minimum":1,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/PredictedPoints"},"type":"array"}}},"description":"successful operation"},"400":{"description":"error"}},"summary":"Predicted Points (i.e. Expected Points or EP)","tags":["metrics"]}},"/ppa/teams":{"get":{"description":"Predicted Points Added (PPA)","operationId":"getTeamPPA","parameters":[{"description":"Year filter (required if team not specified)","in":"query","name":"year","required":false,"schema":{"minimum":2001,"type":"integer"}},{"description":"Team filter (required if year not specified)","in":"query","name":"team","required":false,"schema":{"type":"string"}},{"description":"Conference filter","in":"query","name":"conference","required":false,"schema":{"type":"string"}},{"description":"Filter to remove garbage time plays from calculations","in":"query","name":"excludeGarbageTime","required":false,"schema":{"type":"boolean"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/TeamPPA"},"type":"array"}}},"description":"successful operation"},"400":{"description":"error"}},"summary":"Predicted Points Added (PPA/EPA) data by team","tags":["metrics"]}},"/rankings":{"get":{"description":"Poll rankings","operationId":"getRankings","parameters":[{"description":"Year/season filter for games","in":"query","name":"year","required":true,"schema":{"minimum":1936,"type":"integer"}},{"description":"Week filter","in":"query","name":"week","required":false,"schema":{"maximum":16,"minimum":1,"type":"integer"}},{"description":"Season type filter (regular or postseason)","in":"query","name":"seasonType","required":false,"schema":{"default":"regular","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/RankingWeek"},"type":"array"}}},"description":"successful operation"},"400":{"description":"error"}},"summary":"Historical polls and rankings","tags":["rankings"]}},"/ratings/elo":{"get":{"description":"Elo rating data","operationId":"getEloRatings","parameters":[{"description":"Season filter","in":"query","name":"year","required":false,"schema":{"type":"integer"}},{"description":"Maximum week filter","in":"query","name":"week","required":false,"schema":{"type":"integer"}},{"description":"Team filter","in":"query","name":"team","required":false,"schema":{"type":"string"}},{"description":"Conference filter","in":"query","name":"conference","required":false,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/TeamEloRating"},"type":"array"}}},"description":"successful operation"},"400":{"description":"error"}},"summary":"Historical Elo ratings","tags":["ratings"]}},"/ratings/sp":{"get":{"description":"SP+ rating data","operationId":"getSPRatings","parameters":[{"description":"Season filter (required if team not specified)","in":"query","name":"year","required":false,"schema":{"minimum":1970,"type":"integer"}},{"description":"Team filter (required if year not specified)","in":"query","name":"team","required":false,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/TeamSPRating"},"type":"array"}}},"description":"successful operation"},"400":{"description":"error"}},"summary":"Historical SP+ ratings","tags":["ratings"]}},"/ratings/sp/conferences":{"get":{"description":"Get average SP+ historical rating data by conference","operationId":"getConferenceSPRatings","parameters":[{"description":"Season filter","in":"query","name":"year","required":false,"schema":{"minimum":1970,"type":"integer"}},{"description":"Conference abbreviation filter","in":"query","name":"conference","required":false,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/ConferenceSPRating"},"type":"array"}}},"description":"successful operation"},"400":{"description":"error"}},"summary":"Historical SP+ ratings by conference","tags":["ratings"]}},"/ratings/srs":{"get":{"description":"SRS rating data (requires either a year or team specified)","operationId":"getSRSRatings","parameters":[{"description":"Season filter (required if team not specified)","in":"query","name":"year","required":false,"schema":{"minimum":1897,"type":"integer"}},{"description":"Team filter (required if year not specified)","in":"query","name":"team","required":false,"schema":{"type":"string"}},{"description":"Conference filter","in":"query","name":"conference","required":false,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/TeamSRSRating"},"type":"array"}}},"description":"successful operation"},"400":{"description":"error"}},"summary":"Historical SRS ratings","tags":["ratings"]}},"/records":{"get":{"description":"Get team records by year","operationId":"getTeamRecords","parameters":[{"description":"Year filter","in":"query","name":"year","required":false,"schema":{"minimum":1869,"type":"integer"}},{"description":"Team filter","in":"query","name":"team","required":false,"schema":{"type":"string"}},{"description":"Conference filter","in":"query","name":"conference","required":false,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/TeamRecord"},"type":"array"}}},"description":"successful operation"},"400":{"description":"error"}},"summary":"Team records","tags":["games"]}},"/recruiting/groups":{"get":{"description":"Gets a list of aggregated statistics by team and position grouping","operationId":"getRecruitingGroups","parameters":[{"description":"Starting year","in":"query","name":"startYear","required":false,"schema":{"minimum":2000,"type":"integer"}},{"description":"Ending year","in":"query","name":"endYear","required":false,"schema":{"minimum":2000,"type":"integer"}},{"description":"Team filter","in":"query","name":"team","required":false,"schema":{"type":"string"}},{"description":"conference filter","in":"query","name":"conference","required":false,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/PositionGroupRecruitingRating"},"type":"array"}}},"description":"successful operation"},"400":{"description":"error"}},"summary":"Recruit position group ratings","tags":["recruiting"]}},"/recruiting/players":{"get":{"description":"Get player recruiting rankings and data. Requires either a year or team to be specified.","operationId":"getRecruitingPlayers","parameters":[{"description":"Recruiting class year (required if team no specified)","in":"query","name":"year","required":false,"schema":{"minimum":2000,"type":"integer"}},{"description":"Type of recruit (HighSchool, JUCO, PrepSchool)","in":"query","name":"classification","required":false,"schema":{"default":"HighSchool","type":"string"}},{"description":"Position abbreviation filter","in":"query","name":"position","required":false,"schema":{"type":"string"}},{"description":"State or province abbreviation filter","in":"query","name":"state","required":false,"schema":{"type":"string"}},{"description":"Committed team filter (required if year not specified)","in":"query","name":"team","required":false,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/Recruit"},"type":"array"}}},"description":"successful operation"},"400":{"description":"error"}},"summary":"Player recruiting ratings and rankings","tags":["recruiting"]}},"/recruiting/teams":{"get":{"description":"Team recruiting rankings","operationId":"getRecruitingTeams","parameters":[{"description":"Recruiting class year","in":"query","name":"year","required":false,"schema":{"minimum":2000,"type":"integer"}},{"description":"Team filter","in":"query","name":"team","required":false,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/TeamRecruitingRank"},"type":"array"}}},"description":"successful operation"},"400":{"description":"error"}},"summary":"Team recruiting rankings and ratings","tags":["recruiting"]}},"/roster":{"get":{"description":"Roster data","operationId":"getRoster","parameters":[{"description":"Team name","in":"query","name":"team","required":false,"schema":{"type":"string"}},{"description":"Season year","in":"query","name":"year","required":false,"schema":{"minimum":2009,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/Player"},"type":"array"}}},"description":"successful operation"},"400":{"description":"error"}},"summary":"Team rosters","tags":["teams"]}},"/scoreboard":{"get":{"description":"Get live game results","operationId":"getScoreboard","parameters":[{"description":"Classification filter (fbs, fcs, ii, or iii). Defaults to fbs.","in":"query","name":"classification","required":false,"schema":{"type":"string"}},{"description":"Conference abbreviation filter.","in":"query","name":"conference","required":false,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/ScoreboardGame"},"type":"array"}}},"description":"successful operation"},"400":{"description":"error"}},"summary":"Live game results (Patreon only)","tags":["games"]}},"/stats/categories":{"get":{"description":"Stat category list","operationId":"getStatCategories","responses":{"200":{"content":{"application/json":{"schema":{"items":{"type":"string"},"type":"array"}}},"description":"successful operation"}},"summary":"Team stat categories","tags":["stats"]}},"/stats/game/advanced":{"get":{"description":"Advanced team game stats","operationId":"getAdvancedTeamGameStats","parameters":[{"description":"Year filter (required if no team specified)","in":"query","name":"year","required":false,"schema":{"minimum":2001,"type":"integer"}},{"description":"Week filter","in":"query","name":"week","required":false,"schema":{"maximum":16,"minimum":1,"type":"integer"}},{"description":"Team filter (required if no year specified)","in":"query","name":"team","required":false,"schema":{"type":"string"}},{"description":"Opponent filter","in":"query","name":"opponent","required":false,"schema":{"type":"string"}},{"description":"Filter to remove garbage time plays from calculations","in":"query","name":"excludeGarbageTime","required":false,"schema":{"type":"boolean"}},{"description":"Season type filter (regular, postseason, or both)","in":"query","name":"seasonType","required":false,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/AdvancedGameStat"},"type":"array"}}},"description":"successful operation"},"400":{"description":"error"}},"summary":"Advanced team metrics by game","tags":["stats"]}},"/stats/player/season":{"get":{"description":"Season player stats","operationId":"getPlayerSeasonStats","parameters":[{"description":"Year filter","in":"query","name":"year","required":true,"schema":{"type":"integer"}},{"description":"Team filter","in":"query","name":"team","required":false,"schema":{"type":"string"}},{"description":"Conference abbreviation filter","in":"query","name":"conference","required":false,"schema":{"type":"string"}},{"description":"Start week filter","in":"query","name":"startWeek","required":false,"schema":{"type":"integer"}},{"description":"Start week filter","in":"query","name":"endWeek","required":false,"schema":{"type":"integer"}},{"description":"Season type filter (regular, postseason, or both)","in":"query","name":"seasonType","required":false,"schema":{"type":"string"}},{"description":"Stat category filter (e.g. passing)","in":"query","name":"category","required":false,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/PlayerSeasonStat"},"type":"array"}}},"description":"successful operation"},"400":{"description":"error"}},"summary":"Player stats by season","tags":["players"]}},"/stats/season":{"get":{"description":"Team season stats","operationId":"getTeamSeasonStats","parameters":[{"description":"Year filter (required if no team specified)","in":"query","name":"year","required":false,"schema":{"minimum":2001,"type":"integer"}},{"description":"Team filter (required if no year specified)","in":"query","name":"team","required":false,"schema":{"type":"string"}},{"description":"Conference abbreviation filter","in":"query","name":"conference","required":false,"schema":{"type":"string"}},{"description":"Starting week filter","in":"query","name":"startWeek","required":false,"schema":{"maximum":16,"minimum":1,"type":"integer"}},{"description":"Starting week filter","in":"query","name":"endWeek","required":false,"schema":{"maximum":16,"minimum":1,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/TeamSeasonStat"},"type":"array"}}},"description":"successful operation"},"400":{"description":"error"}},"summary":"Team statistics by season","tags":["stats"]}},"/stats/season/advanced":{"get":{"description":"Advanced team season stats","operationId":"getAdvancedTeamSeasonStats","parameters":[{"description":"Year filter (required if no team specified)","in":"query","name":"year","required":false,"schema":{"minimum":2001,"type":"integer"}},{"description":"Team filter (required if no year specified)","in":"query","name":"team","required":false,"schema":{"type":"string"}},{"description":"Filter to remove garbage time plays from calculations","in":"query","name":"excludeGarbageTime","required":false,"schema":{"type":"boolean"}},{"description":"Starting week filter","in":"query","name":"startWeek","required":false,"schema":{"maximum":16,"minimum":1,"type":"integer"}},{"description":"Starting week filter","in":"query","name":"endWeek","required":false,"schema":{"maximum":16,"minimum":1,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/AdvancedSeasonStat"},"type":"array"}}},"description":"successful operation"},"400":{"description":"error"}},"summary":"Advanced team metrics by season","tags":["stats"]}},"/talent":{"get":{"description":"Team talent composite","operationId":"getTalent","parameters":[{"description":"Year filter","in":"query","name":"year","required":false,"schema":{"minimum":2015,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/TeamTalent"},"type":"array"}}},"description":"successful operation"},"400":{"description":"error"}},"summary":"Team talent composite rankings","tags":["teams"]}},"/teams":{"get":{"description":"Get team information","operationId":"getTeams","parameters":[{"description":"Conference abbreviation filter","in":"query","name":"conference","required":false,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/Team"},"type":"array"}}},"description":"successful operation"},"400":{"description":"error"}},"summary":"Team information","tags":["teams"]}},"/teams/fbs":{"get":{"description":"Information on major division teams","operationId":"getFbsTeams","parameters":[{"description":"Year filter","in":"query","name":"year","required":false,"schema":{"minimum":1869,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/Team"},"type":"array"}}},"description":"successful operation"},"400":{"description":"error"}},"summary":"FBS team list","tags":["teams"]}},"/teams/matchup":{"get":{"description":"Matchup history","operationId":"getTeamMatchup","parameters":[{"description":"First team","in":"query","name":"team1","required":true,"schema":{"type":"string"}},{"description":"Second team","in":"query","name":"team2","required":true,"schema":{"type":"string"}},{"description":"Minimum year","in":"query","name":"minYear","required":false,"schema":{"minimum":1869,"type":"integer"}},{"description":"Maximum year","in":"query","name":"maxYear","required":false,"schema":{"minimum":1869,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TeamMatchup"}}},"description":"successful operation"},"400":{"description":"error"}},"summary":"Team matchup history","tags":["teams"]}},"/venues":{"get":{"description":"Venues","operationId":"getVenues","responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/Venue"},"type":"array"}}},"description":"successful operation"},"400":{"description":"error"}},"summary":"Arena and venue information","tags":["venues"]}}},"components":{"schemas":{"AdvancedGameStat":{"properties":{"defense":{"properties":{"drives":{"type":"integer"},"explosiveness":{"type":"number"},"lineYards":{"type":"number"},"lineYardsTotal":{"type":"number"},"openFieldYards":{"type":"number"},"openFieldYardsTotal":{"type":"integer"},"passingDowns":{"properties":{"explosiveness":{"type":"number"},"ppa":{"type":"number"},"successRate":{"type":"number"}},"type":"object"},"passingPlays":{"properties":{"explosiveness":{"type":"number"},"ppa":{"type":"number"},"successRate":{"type":"number"},"totalPPA":{"type":"number"}},"type":"object"},"plays":{"type":"integer"},"powerSuccess":{"type":"number"},"ppa":{"type":"number"},"rushingPlays":{"properties":{"explosiveness":{"type":"number"},"ppa":{"type":"number"},"successRate":{"type":"number"},"totalPPA":{"type":"number"}},"type":"object"},"secondLevelYards":{"type":"number"},"secondLevelYardsTotal":{"type":"integer"},"standardDowns":{"properties":{"explosiveness":{"type":"number"},"ppa":{"type":"number"},"successRate":{"type":"number"}},"type":"object"},"stuffRate":{"type":"number"},"successRate":{"type":"number"},"totalPPA":{"type":"number"}},"type":"object"},"gameId":{"type":"integer"},"offense":{"properties":{"drives":{"type":"integer"},"explosiveness":{"type":"number"},"lineYards":{"type":"number"},"lineYardsTotal":{"type":"number"},"openFieldYards":{"type":"number"},"openFieldYardsTotal":{"type":"integer"},"passingDowns":{"properties":{"explosiveness":{"type":"number"},"ppa":{"type":"number"},"successRate":{"type":"number"}},"type":"object"},"passingPlays":{"properties":{"explosiveness":{"type":"number"},"ppa":{"type":"number"},"successRate":{"type":"number"},"totalPPA":{"type":"number"}},"type":"object"},"plays":{"type":"integer"},"powerSuccess":{"type":"number"},"ppa":{"type":"number"},"rushingPlays":{"properties":{"explosiveness":{"type":"number"},"ppa":{"type":"number"},"successRate":{"type":"number"},"totalPPA":{"type":"number"}},"type":"object"},"secondLevelYards":{"type":"number"},"secondLevelYardsTotal":{"type":"integer"},"standardDowns":{"properties":{"explosiveness":{"type":"number"},"ppa":{"type":"number"},"successRate":{"type":"number"}},"type":"object"},"stuffRate":{"type":"number"},"successRate":{"type":"number"},"totalPPA":{"type":"number"}},"type":"object"},"opponent":{"type":"string"},"season":{"type":"integer"},"team":{"type":"string"},"week":{"type":"integer"}},"type":"object"},"AdvancedSeasonStat":{"properties":{"conference":{"type":"string"},"defense":{"properties":{"drives":{"type":"integer"},"explosiveness":{"type":"number"},"fieldPosition":{"properties":{"averagePredictedPoints":{"type":"number"},"averageStart":{"type":"number"}},"type":"object"},"havoc":{"properties":{"db":{"type":"number"},"frontSeven":{"type":"number"},"total":{"type":"number"}},"type":"object"},"lineYards":{"type":"number"},"lineYardsTotal":{"type":"number"},"openFieldYards":{"type":"number"},"openFieldYardsTotal":{"type":"integer"},"passingDowns":{"properties":{"explosiveness":{"type":"number"},"ppa":{"type":"number"},"rate":{"type":"number"},"successRate":{"type":"number"}},"type":"object"},"passingPlays":{"properties":{"explosiveness":{"type":"number"},"ppa":{"type":"number"},"rate":{"type":"number"},"successRate":{"type":"number"},"totalPPA":{"type":"number"}},"type":"object"},"plays":{"type":"integer"},"pointsPerOpportunity":{"type":"number"},"powerSuccess":{"type":"number"},"ppa":{"type":"number"},"rushingPlays":{"properties":{"explosiveness":{"type":"number"},"ppa":{"type":"number"},"rate":{"type":"number"},"successRate":{"type":"number"},"totalPPA":{"type":"number"}},"type":"object"},"secondLevelYards":{"type":"number"},"secondLevelYardsTotal":{"type":"integer"},"standardDowns":{"properties":{"explosiveness":{"type":"number"},"ppa":{"type":"number"},"rate":{"type":"number"},"successRate":{"type":"number"}},"type":"object"},"stuffRate":{"type":"number"},"successRate":{"type":"number"},"totalOpportunies":{"type":"integer"},"totalPPA":{"type":"number"}},"type":"object"},"offense":{"properties":{"drives":{"type":"integer"},"explosiveness":{"type":"number"},"fieldPosition":{"properties":{"averagePredictedPoints":{"type":"number"},"averageStart":{"type":"number"}},"type":"object"},"havoc":{"properties":{"db":{"type":"number"},"frontSeven":{"type":"number"},"total":{"type":"number"}},"type":"object"},"lineYards":{"type":"number"},"lineYardsTotal":{"type":"number"},"openFieldYards":{"type":"number"},"openFieldYardsTotal":{"type":"integer"},"passingDowns":{"properties":{"explosiveness":{"type":"number"},"ppa":{"type":"number"},"rate":{"type":"number"},"successRate":{"type":"number"}},"type":"object"},"passingPlays":{"properties":{"explosiveness":{"type":"number"},"ppa":{"type":"number"},"rate":{"type":"number"},"successRate":{"type":"number"},"totalPPA":{"type":"number"}},"type":"object"},"plays":{"type":"integer"},"pointsPerOpportunity":{"type":"number"},"powerSuccess":{"type":"number"},"ppa":{"type":"number"},"rushingPlays":{"properties":{"explosiveness":{"type":"number"},"ppa":{"type":"number"},"rate":{"type":"number"},"successRate":{"type":"number"},"totalPPA":{"type":"number"}},"type":"object"},"secondLevelYards":{"type":"number"},"secondLevelYardsTotal":{"type"