College Football Data API icon

College Football Data API

This is an API for accessing all sorts of college football data

COMMUNITYAPI KEY0 INSTALLS
OpenAPI Specificationv3.0
{
  "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://api.apis.guru/v2/cache/logo/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": "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"
          },
          "season": {
            "type": "integer"
          },
          "team": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "BoxScore": {
        "properties": {
          "players": {
            "properties": {
              "ppa": {
                "items": {
                  "properties": {
                    "average": {
                      "properties": {
                        "passing": {
                          "type": "number"
                        },
                        "quarter1": {
                          "type": "number"
                        },
                        "quarter2": {
                          "type": "number"
                        },
                        "quarter3": {
                          "type": "number"
                        },
                        "quarter4": {
                          "type": "number"
                        },
                        "rushing": {
                          "type": "number"
                        },
                        "total": {
                          "type": "number"
                        }
                      },
                      "type": "object"
                    },
                    "cumulative": {
                      "properties": {
                        "passing": {
                          "type": "number"
                        },
                        "quarter1": {
                          "type": "number"
                        },
                        "quarter2": {
                          "type": "number"
                        },
                        "quarter3": {
                          "type": "number"
                        },
                        "quarter4": {
                          "type": "number"
                        },
                        "rushing": {
                          "type": "number"
                        },
                        "total": {
                          "type": "number"
                        }
                      },
                      "type": "object"
                    },
                    "player": {
                      "type": "string"
                    },
                    "position": {
                      "type": "string"
                    },
                    "team": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "type": "array"
              },
              "usage": {
                "items": {
                  "properties": {
                    "passing": {
                      "type": "number"
                    },
                    "player": {
                      "type": "string"
                    },
                    "position": {
                      "type": "string"
                    },
                    "quarter1": {
                      "type": "number"
                    },
                    "quarter2": {
                      "type": "number"
                    },
                    "quarter3": {
                      "type": "number"
                    },
                    "quarter4": {
                      "type": "number"
                    },
                    "rushing": {
                      "type": "number"
                    },
                    "team": {
                      "type": "string"
                    },
                    "total": {
                      "type": "number"
                    }
                  },
                  "type": "object"
                },
                "type": "array"
              }
            },
            "type": "object"
          },
          "teams": {
            "properties": {
              "cumulativePpa": {
                "items": {
                  "properties": {
                    "overall": {
                      "properties": {
                        "quarter1": {
                          "type": "number"
                        },
                        "quarter2": {
                          "type": "number"
                        },
                        "quarter3": {
                          "type": "number"
                        },
                        "quarter4": {
                          "type": "number"
                        },
                        "total": {
                          "type": "number"
                        }
                      },
                      "type": "object"
                    },
                    "passing": {
                      "properties": {
                        "quarter1": {
                          "type": "number"
                        },
                        "quarter2": {
                          "type": "number"
                        },
                        "quarter3": {
                          "type": "number"
                        },
                        "quarter4": {
                          "type": "number"
                        },
                        "total": {
                          "type": "number"
                        }
                      },
                      "type": "object"
                    },
                    "plays": {
                      "type": "number"
                    },
                    "rushing": {
                      "properties": {
                        "quarter1": {
                          "type": "number"
                        },
                        "quarter2": {
                          "type": "number"
                        },
                        "quarter3": {
                          "type": "number"
                        },
                        "quarter4": {
                          "type": "number"
                        },
                        "total": {
                          "type": "number"
                        }
                      },
                      "type": "object"
                    },
                    "team": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "type": "array"
              },
              "explosiveness": {
                "items": {
                  "properties": {
                    "overall": {
                      "properties": {
                        "quarter1": {
                          "type": "number"
                        },
                        "quarter2": {
                          "type": "number"
                        },
                        "quarter3": {
                          "type": "number"
                        },
                        "quarter4": {
                          "type": "number"
                        },
                        "total": {
                          "type": "number"
                        }
                      },
                      "type": "object"
                    },
                    "team": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "type": "array"
              },
              "fieldPosition": {
                "items": {
                  "properties": {
                    "averageStart": {
                      "type": "number"
                    },
                    "averageStartingPredictedPoints": {
                      "type": "number"
                    },
                    "team": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "type": "array"
              },
              "havoc": {
                "items": {
                  "properties": {
                    "db": {
                      "type": "number"
                    },
                    "frontSeven": {
                      "type": "number"
                    },
                    "team": {
                      "type": "string"
                    },
                    "total": {
                      "type": "number"
                    }
                  },
                  "type": "object"
                },
                "type": "array"
              },
              "ppa": {
                "items": {
                  "properties": {
                    "overall": {
                      "properties": {
                        "quarter1": {
                          "type": "number"
                        },
                        "quarter2": {
                          "type": "number"
                        },
                        "quarter3": {
                          "type": "number"
                        },
                        "quarter4": {
                          "type": "number"
                        },
                        "total": {
                          "type": "number"
                        }
                      },
                      "type": "object"
                    },
                    "passing": {
                      "properties": {
                        "quarter1": {
                          "type": "number"
                        },
                        "quarter2": {
                          "type": "number"
                        },
                        "quarter3": {
                          "type": "number"
                        },
                        "quarter4": {
                          "type": "number"
                        },
                        "total": {
                          "type": "number"
                        }
                      },
                      "type": "object"
                    },
                    "plays": {
                      "type": "number"
                    },
                    "rushing": {
                      "properties": {
                        "quarter1": {
                          "type": "number"
                        },
                        "quarter2": {
                          "type": "number"
                        },
                        "quarter3": {
                          "type": "number"
                        },
                        "quarter4": {
                          "type": "number"
                        },
                        "total": {
                          "type": "number"
                        }
                      },
                      "type": "object"
                    },
                    "team": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "type": "array"
              },
              "rushing": {
                "items": {
                  "properties": {
                    "lineYards": {
                      "type": "number"
                    },
                    "lineYardsAverage": {
                      "type": "number"
                    },
                    "openFieldYards": {
                      "type": "integer"
                    },
                    "openFieldYardsAverage": {
                      "type": "number"
                    },
                    "powerSuccess": {
                      "type": "number"
                    },
                    "secondLevelYards": {
                      "type": "integer"
                    },
                    "secondLevelYardsAverage": {
                      "type": "number"
                    },
                    "stuffRate": {
                      "type": "number"
                    },
                    "team": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "type": "array"
              },
              "scoringOpportunities": {
                "items": {
                  "properties": {
                    "opportunities": {
                      "type": "integer"
                    },
                    "points": {
                      "type": "integer"
                    },
                    "pointsPerOpportunity": {
                      "type": "number"
                    },
                    "team": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "type": "array"
              },
              "successRates": {
                "items": {
                  "properties": {
                    "overall": {
                      "properties": {
                        "quarter1": {
                          "type": "number"
                        },
                        "quarter2": {
                          "type": "number"
                        },
                        "quarter3": {
                          "type": "number"
                        },
                        "quarter4": {
                          "type": "number"
                        },
                        "total": {
                          "type": "number"
                        }
                      },
                      "type": "object"
                    },
                    "passingDowns": {
                      "properties": {
                        "quarter1": {
                          "type": "number"
                        },
                        "quarter2": {
                          "type": "number"
                        },
                        "quarter3": {
                          "type": "number"
                        },
                        "quarter4": {
                          "type": "number"
                        },
                        "total": {
                          "type": "number"
                        }
                      },
                      "type": "object"
                    },
                    "standardDowns": {
                      "properties": {
                        "quarter1": {
                          "type": "number"
                        },
                        "quarter2": {
                          "type": "number"
                        },
                        "quarter3": {
                          "type": "number"
                        },
                        "quarter4": {
                          "type": "number"
                        },
                        "total": {
                          "type": "number"
                        }
                      },
                      "type": "object"
                    },
                    "team": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "type": "array"
              }
            },
            "type": "object"
          }
        },
        "type": "object"
      },
      "Coach": {
        "properties": {
          "first_name": {
            "type": "string"
          },
          "hire_date": {
            "type": "string"
          },
          "last_name": {
            "type": "string"
          },
          "seasons": {
            "items": {
              "properties": {
                "games": {
                  "type": "integer"
                },
                "losses": {
                  "type": "integer"
                },
                "postseason_rank": {
                  "description": "Final ranking in the AP poll",
                  "type": "integer"
                },
                "preseason_rank": {
                  "description": "Rank in the AP preseason poll",
                  "type": "integer"
                },
                "school": {
                  "type": "string"
                },
                "sp_defense": {
                  "description": "Final SP+ defensive rating",
                  "type": "number"
                },
                "sp_offense": {
                  "description": "Final SP+ offensive rating",
                  "type": "number"
                },
                "sp_overall": {
                  "description": "Final overall SP+ rating",
                  "type": "number"
                },
                "srs": {
                  "description": "Final SRS rankings",
                  "type": "number"
                },
                "ties": {
                  "type": "integer"
                },
                "wins": {
                  "type": "integer"
                },
                "year": {
                  "type": "string"
                }
              },
              "type": "object"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "Conference": {
        "properties": {
          "abbreviation": {
            "type": "string"
          },
          "classification": {
            "type": "string"
          },
          "id": {
            "type": "integer"
          },
          "name": {
            "type": "string"
          },
          "short_name": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "ConferenceSPRating": {
        "properties": {
          "conference": {
            "type": "string"
          },
          "defense": {
            "properties": {
              "explosiveness": {
                "type": "number"
              },
              "havoc": {
                "properties": {
                  "db": {
                    "type": "number"
                  },
                  "frontSeven": {
                    "type": "number"
                  },
                  "total": {
                    "type": "number"
                  }
                },
                "type": "object"
              },
              "pasing": {
                "type": "number"
              },
              "passingDowns": {
                "type": "number"
              },
              "rating": {
                "type": "number"
              },
              "rushing": {
                "type": "number"
              },
              "standardDowns": {
                "type": "number"
              },
              "success": {
                "type": "number"
              }
            },
            "type": "object"
          },
          "offense": {
            "properties": {
              "explosiveness": {
                "type": "number"
              },
              "pace": {
                "type": "number"
              },
              "passing": {
                "type": "number"
              },
              "passingDowns": {
                "type": "number"
              },
              "rating": {
                "type": "number"
              },
              "runRate": {
                "type": "number"
              },
              "rushing": {
                "type": "number"
              },
              "standardDowns": {
                "type": "number"
              },
              "success": {
                "type": "number"
              }
            },
            "type": "object"
          },
          "rating": {
            "type": "number"
          },
          "secondOrderWins": {
            "type": "number"
          },
          "sos": {
            "type": "number"
          },
          "specialTeams": {
            "properties": {
              "rating": {
                "type": "number"
              }
            },
            "type": "object"
          },
          "year": {
            "type": "integer"
          }
        },
        "type": "object"
      },
      "DraftPick": {
        "properties": {
          "collegeAthleteId": {
            "type": "integer"
          },
          "collegeConference": {
            "type": "string"
          },
          "collegeId": {
            "type": "integer"
          },
          "collegeTeam": {
            "type": "string"
          },
          "height": {
            "type": "integer"
          },
          "hometownInfo": {
            "properties": {
              "city": {
                "type": "string"
              },
              "country": {
                "type": "string"
              },
              "countryFips": {
                "type": "integer"
              },
              "latitude": {
                "type": "number"
              },
              "longitude": {
                "type": "number"
              },
              "state": {
                "type": "string"
              }
            },
            "type": "object"
          },
          "name": {
            "type": "string"
          },
          "nflAthleteId": {
            "type": "integer"
          },
          "nflTeam": {
            "type": "string"
          },
          "overall": {
            "type": "integer"
          },
          "pick": {
            "type": "integer"
          },
          "position": {
            "type": "string"
          },
          "preDraftGrade": {
            "type": "integer"
          },
          "preDraftPositionRanking": {
            "type": "integer"
          },
          "preDraftRanking": {
            "type": "integer"
          },
          "round": {
            "type": "integer"
          },
          "weight": {
            "type": "integer"
          },
          "year": {
            "type": "integer"
          }
        },
        "type": "object"
      },
      "DraftPosition": {
        "properties": {
          "abbreviation": {
            "type": "string"
          },
          "name": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "DraftTeam": {
        "properties": {
          "displayName": {
            "type": "string"
          },
          "location": {
            "type": "string"
          },
          "logo": {
            "type": "string"
          },
          "nickname": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "Drive": {
        "properties": {
          "defense": {
            "type": "string"
          },
          "defense_conference": {
            "type": "string"
          },
          "drive_number": {
            "type": "integer"
          },
          "drive_result": {
            "type": "string"
          },
          "end_defense_score": {
            "type": "integer"
          },
          "end_offense_score": {
            "type": "integer"
          },
          "end_period": {
            "type": "integer"
          },
          "end_time": {
            "properties": {
              "minutes": {
                "type": "integer"
              },
              "seconds": {
                "type": "integer"
              }
            },
            "type": "object"
          },
          "end_yardline": {
            "type": "integer"
          },
          "end_yards_to_goal": {
            "type": "integer"
          },
          "game_id": {
            "type": "integer"
          },
          "id": {
            "type": "integer"
          },
          "is_home_offense": {
            "type": "boolean"
          },
          "offense": {
            "type": "string"
          },
          "offense_conference": {
            "type": "string"
          },
          "plays": {
            "type": "integer"
          },
          "scoring": {
            "type": "boolean"
          },
          "start_defense_score": {
            "type": "integer"
          },
          "start_offense_score": {
            "type": "integer"
          },
          "start_period": {
            "type": "integer"
          },
          "start_time": {
            "properties": {
              "minutes": {
                "type": "integer"
              },
              "seconds": {
                "type": "integer"
              }
            },
            "type": "object"
          },
          "start_yardline": {
            "type": "integer"
          },
          "start_yards_to_goal": {
            "type": "integer"
          },
          "yards": {
            "type": "integer"
          }
        },
        "type": "object"
      },
      "Game": {
        "properties": {
          "attendance": {
            "type": "integer"
          },
          "away_conference": {
            "type": "string"
          },
          "away_division": {
            "type": "string"
          },
          "away_id": {
            "type": "integer"
          },
          "away_line_scores": {
            "items": {
              "type": "integer"
            },
            "type": "array"
          },
          "away_points": {
            "type": "integer"
          },
          "away_post_win_prob": {
            "type": "number"
          },
          "away_postgame_elo": {
            "type": "integer"
          },
          "away_pregame_elo": {
            "type": "integer"
          },
          "away_team": {
            "type": "string"
          },
          "completed": {
            "type": "boolean"
          },
          "conference_game": {
            "type": "boolean"
          },
          "excitement_index": {
            "type": "number"
          },
          "highlights": {
            "type": "string"
          },
          "home_conference": {
            "type": "string"
          },
          "home_division": {
            "type": "string"
          },
          "home_id": {
            "type": "integer"
          },
          "home_line_scores": {
            "items": {
              "type": "integer"
            },
            "type": "array"
          },
          "home_points": {
            "type": "integer"
          },
          "home_post_win_prob": {
            "type": "number"
          },
          "home_postgame_elo": {
            "type": "integer"
          },
          "home_pregame_elo": {
            "type": "integer"
          },
          "home_team": {
            "type": "string"
          },
          "id": {
            "type": "integer"
          },
          "neutral_site": {
            "type": "boolean"
          },
          "notes": {
            "type": "string"
          },
          "season": {
            "type": "integer"
          },
          "season_type": {
            "type": "string"
          },
          "start_date": {
            "type": "string"
          },
          "start_time_tbd": {
            "type": "boolean"
          },
          "venue": {
            "type": "string"
          },
          "venue_id": {
            "type": "integer"
          },
          "week": {
            "type": "integer"
          }
        },
        "type": "object"
      },
      "GameLines": {
        "properties": {
          "awayConference": {
            "type": "string"
          },
          "awayScore": {
            "type": "integer"
          },
          "awayTeam": {
            "type": "string"
          },
          "homeConference": {
            "type": "string"
          },
          "homeScore": {
            "type": "integer"
          },
          "homeTeam": {
            "type": "string"
          },
          "id": {
            "type": "integer"
          },
          "lines": {
            "items": {
              "properties": {
                "awayMoneyline": {
                  "type": "number"
                },
                "formattedSpread": {
                  "type": "string"
                },
                "homeMoneyline": {
                  "type": "number"
                },
                "overUnder": {
                  "type": "number"
                },
                "overUnderOpen": {
                  "type": "number"
                },
                "provider": {
                  "type": "string"
                },
                "spread": {
                  "type": "number"
                },
                "spreadOpen": {
                  "type": "number"
                }
              },
              "type": "object"
            },
            "type": "array"
          },
          "season": {
            "type": "integer"
          },
          "seasonType": {
            "type": "string"
          },
          "startDate": {
            "type": "string"
          },
          "week": {
            "type": "integer"
          }
        },
        "type": "object"
      },
      "GameMedia": {
        "properties": {
          "awayConference": {
            "type": "string"
          },
          "awayTeam": {
            "type": "string"
          },
          "homeConference": {
            "type": "string"
          },
          "homeTeam": {
            "type": "string"
          },
          "id": {
            "type": "integer"
          },
          "isStartTimeTBD": {
            "type": "boolean"
          },
          "mediaType": {
            "type": "string"
          },
          "outlet": {
            "type": "string"
          },
          "season": {
            "type": "integer"
          },
          "seasonType": {
            "type": "string"
          },
          "startTime": {
            "type": "string"
          },
          "week": {
            "type": "integer"
          }
        },
        "type": "object"
      },
      "GamePPA": {
        "properties": {
          "conference": {
            "type": "string"
          },
          "defense": {
            "properties": {
              "firstDown": {
                "type": "number"
              },
              "overall": {
                "type": "number"
              },
              "passing": {
                "type": "number"
              },
              "rushing": {
                "type": "number"
              },
              "secondDown": {
                "type": "number"
              },
              "thirdDown": {
                "type": "number"
              }
            },
            "type": "object"
          },
          "gameId": {
            "type": "integer"
          },
          "offense": {
            "properties": {
              "firstDown": {
                "type": "number"
              },
              "overall": {
                "type": "number"
              },
              "passing": {
                "type": "number"
              },
              "rushing": {
                "type": "number"
              },
              "secondDown": {
                "type": "number"
              },
              "thirdDown": {
                "type": "number"
              }
            },
            "type": "object"
          },
          "opponent": {
            "type": "string"
          },
          "season": {
            "type": "integer"
          },
          "team": {
            "type": "string"
          },
          "week": {
            "type": "integer"
          }
        },
        "type": "object"
      },
      "GameWeather": {
        "properties": {
          "awayConference": {
            "type": "string"
          },
          "awayTeam": {
            "type": "string"
          },
          "dewPoint": {
            "type": "number"
          },
          "gameIndoors": {
            "type": "boolean"
          },
          "homeConference": {
            "type": "string"
          },
          "homeTeam": {
            "type": "string"
          },
          "humidity": {
            "type": "number"
          },
          "id": {
            "type": "integer"
          },
          "precipitation": {
            "type": "number"
          },
          "pressure": {
            "type": "number"
          },
          "season": {
            "type": "integer"
          },
          "seasonType": {
            "type": "string"
          },
          "snowfall": {
            "type": "number"
          },
          "startTime": {
            "type": "string"
          },
          "temperature": {
            "type": "number"
          },
          "venue": {
            "type": "string"
          },
          "venueId": {
            "type": "integer"
          },
          "weatherCondition": {
            "type": "string"
          },
          "weatherConditionCode": {
            "type": "integer"
          },
          "week": {
            "type": "integer"
          },
          "windDirection": {
            "type": "number"
          },
          "windSpeed": {
            "type": "number"
          }
        },
        "type": "object"
      },
      "LivePlayByPlay": {
        "properties": {
          "clock": {
            "type": "string"
          },
          "distance": {
            "type": "integer"
          },
          "down": {
            "type": "integer"
          },
          "drives": {
            "items": {
              "properties": {
                "defense": {
                  "type": "string"
                },
                "defenseId": {
                  "type": "integer"
                },
                "duration": {
                  "type": "string"
                },
                "endClock": {
                  "type": "string"
                },
                "endPeriod": {
                  "type": "integer"
                },
                "endYardsToGoal": {
                  "type": "integer"
                },
                "id": {
                  "type": "integer"
                },
                "offense": {
                  "type": "string"
                },
                "offenseId": {
                  "type": "integer"
                },
                "playCount": {
                  "type": "integer"
                },
                "plays": {
                  "items": {
                    "properties": {
                      "awayScore": {
                        "type": "integer"
                      },
                      "clock": {
                        "type": "string"
                      },
                      "distance": {
                        "type": "integer"
                      },
                      "down": {
                        "type": "integer"
                      },
                      "downType": {
                        "type": "string"
                      },
                      "epa": {
                        "type": "number"
                      },
                      "garbageTime": {
                        "type": "boolean"
                      },
                      "homeScore": {
                        "type": "integer"
                      },
                      "id": {
                        "type": "integer"
                      },
                      "period": {
                        "type": "integer"
                      },
                      "playText": {
                        "type": "string"
                      },
                      "playType": {
                        "type": "string"
                      },
                      "playTypeId": {
                        "type": "integer"
                      },
                      "rushPass": {
                        "type": "string"
                      },
                      "success": {
                        "type": "boolean"
                      },
                      "team": {
                        "type": "string"
                      },
                      "teamId": {
                        "type": "integer"
                      },
                      "wallclock": {
                        "type": "string"
                      },
                      "yardsGained": {
                        "type": "integer"
                      },
                      "yardsToGoal": {
                        "type": "integer"
                      }
                    },
                    "type": "object"
                  },
                  "type": "array"
                },
                "scoringOpportunity": {
                  "type": "boolean"
                },
                "startClock": {
                  "type": "string"
                },
                "startPeriod": {
                  "type": "integer"
                },
                "startYardsToGoal": {
                  "type": "integer"
                },
                "yards": {
                  "type": "integer"
                }
              },
              "type": "object"
            },
            "type": "array"
          },
          "id": {
            "type": "integer"
          },
          "period": {
            "type": "integer"
          },
          "possession": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "teams": {
            "items": {
              "properties": {
                "drives": {
                  "type": "integer"
                },
                "epaPerPass": {
                  "type": "number"
                },
                "epaPerPlay": {
                  "type": "number"
                },
                "epaPerRush": {
                  "type": "number"
                },
                "explosiveness": {
                  "type": "number"
                },
                "homeAway": {
                  "type": "string"
                },
                "lineYards": {
                  "type": "integer"
                },
                "lineYardsPerRush": {
                  "type": "number"
                },
                "openFieldYards": {
                  "type": "integer"
                },
                "openFieldYardsPerRush": {
                  "type": "number"
                },
                "passingDownSuccessRate": {
                  "type": "number"
                },
                "passingEpa": {
                  "type": "number"
                },
                "plays": {
                  "type": "integer"
                },
                "points": {
                  "type": "integer"
                },
                "pointsPerOpportunity": {
                  "type": "number"
                },
                "rushingEpa": {
                  "type": "number"
                },
                "scoringOpportunities": {
                  "type": "integer"
                },
                "secondLevelYards": {
                  "type": "integer"
                },
                "secondLevelYardsPerRush": {
                  "type": "number"
                },
                "standardDownSuccessRate": {
                  "type": "number"
                },
                "successRate": {
                  "type": "number"
                },
                "team": {
                  "type": "string"
                },
                "teamId": {
                  "type": "integer"
                },
                "totalEpa": {
                  "type": "number"
                }
              },
              "type": "object"
            },
            "type": "array"
          },
          "yardsToGoal": {
            "type": "integer"
          }
        },
        "type": "object"
      },
      "Play": {
        "properties": {
          "away": {
            "type": "string"
          },
          "clock": {
            "properties": {
              "minutes": {
                "type": "integer"
              },
              "seconds": {
                "type": "integer"
              }
            },
            "type": "object"
          },
          "defense": {
            "type": "string"
          },
          "defense_conference": {
            "type": "string"
          },
          "defense_score": {
            "type": "integer"
          },
          "defense_timeouts": {
            "type": "integer"
          },
          "distance": {
            "type": "integer"
          },
          "down": {
            "type": "integer"
          },
          "drive_id": {
            "type": "integer"
          },
          "drive_number": {
            "type": "integer"
          },
          "game_id": {
            "type": "integer"
          },
          "home": {
            "type": "string"
          },
          "id": {
            "type": "integer"
          },
          "offense": {
            "type": "string"
          },
          "offense_conference": {
            "type": "string"
          },
          "offense_score": {
            "type": "integer"
          },
          "offense_timeouts": {
            "type": "integer"
          },
          "period": {
            "type": "integer"
          },
          "play_number": {
            "type": "integer"
          },
          "play_text": {
            "type": "string"
          },
          "play_type": {
            "type": "string"
          },
          "ppa": {
            "type": "number"
          },
          "scoring": {
            "type": "boolean"
          },
          "wallclock": {
            "type": "string"
          },
          "yard_line": {
            "type": "integer"
          },
          "yards_gained": {
            "type": "integer"
          },
          "yards_to_goal": {
            "type": "integer"
          }
        },
        "type": "object"
      },
      "PlayStat": {
        "properties": {
          "athleteId": {
            "type": "integer"
          },
          "athleteName": {
            "type": "string"
          },
          "clock": {
            "properties": {
              "minutes": {
                "type": "integer"
              },
              "seconds": {
                "type": "integer"
              }
            },
            "type": "object"
          },
          "conference": {
            "type": "string"
          },
          "distance": {
            "type": "integer"
          },
          "down": {
            "type": "integer"
          },
          "driveId": {
            "type": "integer"
          },
          "gameId": {
            "type": "integer"
          },
          "opponent": {
            "type": "string"
          },
          "opponentScore": {
            "type": "integer"
          },
          "period": {
            "type": "integer"
          },
          "playId": {
            "type": "integer"
          },
          "season": {
            "type": "integer"
          },
          "stat": {
            "type": "integer"
          },
          "statType": {
            "type": "string"
          },
          "team": {
            "type": "string"
          },
          "teamScore": {
            "type": "integer"
          },
          "week": {
            "type": "integer"
          },
          "yardsToGoal": {
            "type": "integer"
          }
        },
        "type": "object"
      },
      "PlayStatType": {
        "properties": {
          "id": {
            "type": "integer"
          },
          "name": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "PlayType": {
        "properties": {
          "abbreviation": {
            "type": "string"
          },
          "id": {
            "type": "integer"
          },
          "text": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "PlayWP": {
        "properties": {
          "away": {
            "type": "string"
          },
          "awayId": {
            "type": "integer"
          },
          "awayScore": {
            "type": "integer"
          },
          "distance": {
            "type": "integer"
          },
          "down": {
            "type": "integer"
          },
          "gamesId": {
            "type": "integer"
          },
          "home": {
            "type": "string"
          },
          "homeBall": {
            "type": "boolean"
          },
          "homeId": {
            "type": "integer"
          },
          "homeScore": {
            "type": "integer"
          },
          "homeWinProb": {
            "type": "number"
          },
          "playId": {
            "type": "integer"
          },
          "playNumber": {
            "type": "integer"
          },
          "playText": {
            "type": "string"
          },
          "spread": {
            "type": "number"
          },
          "timeRemaining": {
            "type": "integer"
          },
          "yardLine": {
            "type": "integer"
          }
        },
        "type": "object"
      },
      "Player": {
        "properties": {
          "first_name": {
            "type": "string"
          },
          "height": {
            "type": "integer"
          },
          "home_city": {
            "type": "string"
          },
          "home_country": {
            "type": "string"
          },
          "home_county_fips": {
            "type": "string"
          },
          "home_latitude": {
            "type": "number"
          },
          "home_longitude": {
            "type": "number"
          },
          "home_state": {
            "type": "string"
          },
          "id": {
            "type": "integer"
          },
          "jersey": {
            "type": "integer"
          },
          "last_name": {
            "type": "string"
          },
          "position": {
            "type": "string"
          },
          "recruit_ids": {
            "items": {
              "type": "integer"
            },
            "type": "array"
          },
          "team": {
            "type": "string"
          },
          "weight": {
            "type": "integer"
          },
          "year": {
            "type": "integer"
          }
        },
        "type": "object"
      },
      "PlayerGame": {
        "properties": {
          "id": {
            "type": "integer"
          },
          "teams": {
            "items": {
              "properties": {
                "categories": {
                  "items": {
                    "properties": {
                      "name": {
                        "type": "string"
                      },
                      "types": {
                        "items": {
                          "properties": {
                            "athletes": {
                              "items": {
                                "properties": {
                                  "id": {
                                    "type": "integer"
                                  },
                                  "name": {
                                    "type": "string"
                                  },
                                  "stat": {
                                    "type": "string"
                                  }
                                },
                                "type": "object"
                              },
                              "type": "array"
                            },
                            "name": {
                              "type": "string"
                            }
                          },
                          "type": "object"
                        },
                        "type": "array"
                      }
                    },
                    "type": "object"
                  },
                  "type": "array"
                },
                "homeAway": {
                  "type": "boolean"
                },
                "points": {
                  "type": "integer"
                },
                "school": {
                  "properties": {
                    "conference": {
                      "type": "string"
                    },
                    "name": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              },
              "type": "object"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "PlayerGamePPA": {
        "properties": {
          "averagePPA": {
            "properties": {
              "all": {
                "type": "number"
              },
              "pass": {
                "type": "number"
              },
              "rush": {
                "type": "number"
              }
            },
            "type": "object"
          },
          "name": {
            "type": "string"
          },
          "opponent": {
            "type": "string"
          },
          "position": {
            "type": "string"
          },
          "season": {
            "type": "integer"
          },
          "team": {
            "type": "string"
          },
          "week": {
            "type": "integer"
          }
        },
        "type": "object"
      },
      "PlayerSearchResult": {
        "properties": {
          "firstName": {
            "type": "string"
          },
          "height": {
            "type": "integer"
          },
          "hometown": {
            "type": "string"
          },
          "id": {
            "type": "integer"
          },
          "jersey": {
            "type": "integer"
          },
          "lastName": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "position": {
            "type": "string"
          },
          "team": {
            "type": "string"
          },
          "teamColor": {
            "type": "string"
          },
          "teamColorSecondary": {
            "type": "string"
          },
          "weight": {
            "type": "integer"
          }
        },
        "type": "object"
      },
      "PlayerSeasonPPA": {
        "properties": {
          "averagePPA": {
            "properties": {
              "all": {
                "type": "number"
              },
              "firstDown": {
                "type": "number"
              },
              "pass": {
                "type": "number"
              },
              "passingDowns": {
                "type": "number"
              },
              "rush": {
                "type": "number"
              },
              "secondDown": {
                "type": "number"
              },
              "standardDowns": {
                "type": "number"
              },
              "thirdDown": {
                "type": "number"
              }
            },
            "type": "object"
          },
          "conference": {
            "type": "string"
          },
          "id": {
            "type": "integer"
          },
          "name": {
            "type": "string"
          },
          "position": {
            "type": "string"
          },
          "season": {
            "type": "integer"
          },
          "team": {
            "type": "string"
          },
          "totalPPA": {
            "properties": {
              "all": {
                "type": "number"
              },
              "firstDown": {
                "type": "number"
              },
              "pass": {
                "type": "number"
              },
              "passingDowns": {
                "type": "number"
              },
              "rush": {
                "type": "number"
              },
              "secondDown": {
                "type": "number"
              },
              "standardDowns": {
                "type": "number"
              },
              "thirdDown": {
                "type": "number"
              }
            },
            "type": "object"
          }
        },
        "type": "object"
      },
      "PlayerSeasonStat": {
        "properties": {
          "category": {
            "type": "string"
          },
          "conference": {
            "type": "string"
          },
          "player": {
            "type": "string"
          },
          "playerId": {
            "type": "integer"
          },
          "season": {
            "type": "integer"
          },
          "stat": {
            "type": "number"
          },
          "statType": {
            "type": "string"
          },
          "team": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "PlayerUsage": {
        "properties": {
          "conference": {
            "type": "string"
          },
          "id": {
            "type": "integer"
          },
          "name": {
            "type": "string"
          },
          "position": {
            "type": "string"
          },
          "season": {
            "type": "integer"
          },
          "team": {
            "type": "string"
          },
          "usage": {
            "properties": {
              "firstDown": {
                "type": "number"
              },
              "overall": {
                "type": "number"
              },
              "pass": {
                "type": "number"
              },
              "passingDowns": {
                "type": "number"
              },
              "rush": {
                "type": "number"
              },
              "secondDown": {
                "type": "number"
              },
              "standardDowns": {
                "type": "number"
              },
              "thirdDown": {
                "type": "number"
              }
            },
            "type": "object"
          }
        },
        "type": "object"
      },
      "PortalPlayer": {
        "properties": {
          "destination": {
            "type": "string"
          },
          "eligibility": {
            "type": "string"
          },
          "firstName": {
            "type": "string"
          },
          "lastName": {
            "type": "string"
          },
          "origin": {
            "type": "string"
          },
          "position": {
            "type": "string"
          },
          "rating": {
            "type": "number"
          },
          "season": {
            "type": "integer"
          },
          "stars": {
            "type": "integer"
          },
          "transferDate": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "PositionGroupRecruitingRating": {
        "properties": {
          "averageRating": {
            "type": "number"
          },
          "averageStars": {
            "type": "number"
          },
          "commits": {
            "type": "number"
          },
          "conference": {
            "type": "string"
          },
          "positionGroup": {
            "type": "string"
          },
          "team": {
            "type": "string"
          },
          "totalRating": {
            "type": "number"
          }
        },
        "type": "object"
      },
      "PredictedPoints": {
        "properties": {
          "predictedPoints": {
            "type": "number"
          },
          "yardLine": {
            "type": "integer"
          }
        },
        "type": "object"
      },
      "PregameWP": {
        "properties": {
          "awayTeam": {
            "type": "string"
          },
          "gameId": {
            "type": "integer"
          },
          "homeTeam": {
            "type": "string"
          },
          "homeWinProb": {
            "type": "number"
          },
          "season": {
            "type": "integer"
          },
          "seasonType": {
            "type": "string"
          },
          "spread": {
            "type": "number"
          },
          "week": {
            "type": "integer"
          }
        },
        "type": "object"
      },
      "RankingWeek": {
        "properties": {
          "polls": {
            "items": {
              "properties": {
                "poll": {
                  "type": "string"
                },
                "ranks": {
                  "items": {
                    "properties": {
                      "conference": {
                        "type": "string"
                      },
                      "firstPlaceVotes": {
                        "type": "integer"
                      },
                      "points": {
                        "type": "integer"
                      },
                      "rank": {
                        "type": "integer"
                      },
                      "school": {
                        "type": "string"
                      }
                    },
                    "type": "object"
                  },
                  "type": "array"
                }
              },
              "type": "object"
            },
            "type": "array"
          },
          "season": {
            "type": "integer"
          },
          "seasonType": {
            "type": "string"
          },
          "week": {
            "type": "integer"
          }
        },
        "type": "object"
      },
      "Recruit": {
        "properties": {
          "athleteId": {
            "type": "integer"
          },
          "city": {
            "type": "string"
          },
          "committedTo": {
            "type": "string"
          },
          "country": {
            "type": "string"
          },
          "height": {
            "type": "number"
          },
          "hometownInfo": {
            "properties": {
              "countyFips": {
                "type": "string"
              },
              "latitude": {
                "type": "number"
              },
              "longitude": {
                "type": "number"
              }
            },
            "type": "object"
          },
          "id": {
            "type": "integer"
          },
          "name": {
            "type": "string"
          },
          "position": {
            "type": "string"
          },
          "ranking": {
            "type": "integer"
          },
          "rating": {
            "type": "number"
          },
          "recruitType": {
            "type": "string"
          },
          "school": {
            "type": "string"
          },
          "stars": {
            "type": "integer"
          },
          "stateProvince": {
            "type": "string"
          },
          "weight": {
            "type": "integer"
          },
          "year": {
            "type": "integer"
          }
        },
        "type": "object"
      },
      "ReturningProduction": {
        "properties": {
          "conference": {
            "type": "string"
          },
          "passingUsage": {
            "type": "number"
          },
          "percentPPA": {
            "type": "number"
          },
          "percentPassingPPA": {
            "type": "number"
          },
          "percentReceivingPPA": {
            "type": "number"
          },
          "percentRushingPPA": {
            "type": "number"
          },
          "receivingUsage": {
            "type": "number"
          },
          "rushingUsage": {
            "type": "number"
          },
          "season": {
            "type": "integer"
          },
          "team": {
            "type": "string"
          },
          "totalPPA": {
            "type": "number"
          },
          "totalPassingPPA": {
            "type": "number"
          },
          "totalReceivingPPA": {
            "type": "number"
          },
          "totalRushingPPA": {
            "type": "number"
          },
          "usage": {
            "type": "number"
          }
        },
        "type": "object"
      },
      "ScoreboardGame": {
        "properties": {
          "awayTeam": {
            "properties": {
              "classification": {
                "type": "string"
              },
              "conference": {
                "type": "string"
              },
              "id": {
                "type": "integer"
              },
              "name": {
                "type": "string"
              },
              "points": {
                "type": "integer"
              }
            },
            "type": "object"
          },
          "betting": {
            "properties": {
              "awayMoneyline": {
                "type": "integer"
              },
              "homeMoneyline": {
                "type": "integer"
              },
              "overUnder": {
                "type": "number"
              },
              "spread": {
                "type": "number"
              }
            },
            "type": "object"
          },
          "clock": {
            "type": "string"
          },
          "conferenceGame": {
            "type": "boolean"
          },
          "homeTeam": {
            "properties": {
              "classification": {
                "type": "string"
              },
              "conference": {
                "type": "string"
              },
              "id": {
                "type": "integer"
              },
              "name": {
                "type": "string"
              },
              "points": {
                "type": "integer"
              }
            },
            "type": "object"
          },
          "id": {
            "type": "integer"
          },
          "neutralSite": {
            "type": "boolean"
          },
          "period": {
            "type": "integer"
          },
          "possession": {
            "type": "string"
          },
          "situation": {
            "type": "string"
          },
          "startDate": {
            "type": "string"
          },
          "startTimeTBD": {
            "type": "boolean"
          },
          "status": {
            "type": "string"
          },
          "tv": {
            "type": "string"
          },
          "venue": {
            "properties": {
              "city": {
                "type": "string"
              },
              "name": {
                "type": "string"
              },
              "state": {
                "type": "string"
              }
            },
            "type": "object"
          },
          "weather": {
            "properties": {
              "description": {
                "type": "string"
              },
              "temperature": {
                "type": "number"
              },
              "windDirection": {
                "type": "number"
              },
              "windSpeed": {
                "type": "number"
              }
            },
            "type": "object"
          }
        },
        "type": "object"
      },
      "Team": {
        "properties": {
          "abbreviation": {
            "type": "string"
          },
          "alt_color": {
            "type": "string"
          },
          "alt_name_1": {
            "type": "string"
          },
          "alt_name_2": {
            "type": "string"
          },
          "alt_name_3": {
            "type": "string"
          },
          "classification": {
            "type": "string"
          },
          "color": {
            "type": "string"
          },
          "conference": {
            "type": "string"
          },
          "division": {
            "type": "string"
          },
          "id": {
            "type": "integer"
          },
          "location": {
            "properties": {
              "capacity": {
                "type": "number"
              },
              "city": {
                "type": "string"
              },
              "country_code": {
                "type": "string"
              },
              "dome": {
                "type": "boolean"
              },
              "elevation": {
                "type": "number"
              },
              "grass": {
                "type": "boolean"
              },
              "latitude": {
                "type": "number"
              },
              "longitude": {
                "type": "number"
              },
              "name": {
                "type": "string"
              },
              "state": {
                "type": "string"
              },
              "timezone": {
                "type": "string"
              },
              "venue_id": {
                "type": "integer"
              },
              "year_constructed": {
                "type": "number"
              },
              "zip": {
                "type": "string"
              }
            },
            "type": "object"
          },
          "logos": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "mascot": {
            "type": "string"
          },
          "school": {
            "type": "string"
          },
          "twitter": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "TeamEloRating": {
        "properties": {
          "conference": {
            "type": "string"
          },
          "elo": {
            "type": "number"
          },
          "team": {
            "type": "string"
          },
          "year": {
            "type": "integer"
          }
        },
        "type": "object"
      },
      "TeamGame": {
        "properties": {
          "id": {
            "type": "integer"
          },
          "teams": {
            "items": {
              "properties": {
                "conference": {
                  "type": "string"
                },
                "homeAway": {
                  "type": "string"
                },
                "points": {
                  "type": "integer"
                },
                "school": {
                  "type": "string"
                },
                "stats": {
                  "items": {
                    "properties": {
                      "category": {
                        "type": "string"
                      },
                      "stat": {
                        "type": "string"
                      }
                    },
                    "type": "object"
                  },
                  "type": "array"
                }
              },
              "type": "object"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "TeamMatchup": {
        "properties": {
          "endYear": {
            "type": "integer"
          },
          "games": {
            "items": {
              "properties": {
                "awayScore": {
                  "type": "integer"
                },
                "awayTeam": {
                  "type": "string"
                },
                "date": {
                  "type": "string"
                },
                "homeScore": {
                  "type": "integer"
                },
                "homeTeam": {
                  "type": "string"
                },
                "neutralSite": {
                  "type": "boolean"
                },
                "season": {
                  "type": "integer"
                },
                "season_type": {
                  "type": "string"
                },
                "venue": {
                  "type": "string"
                },
                "week": {
                  "type": "integer"
                },
                "winner": {
                  "type": "string"
                }
              },
              "type": "object"
            },
            "type": "array"
          },
          "startYear": {
            "type": "integer"
          },
          "team1": {
            "type": "string"
          },
          "team1Wins": {
            "type": "integer"
          },
          "team2": {
            "type": "string"
          },
          "team2Wins": {
            "type": "integer"
          },
          "ties": {
            "type": "integer"
          }
        },
        "type": "object"
      },
      "TeamPPA": {
        "properties": {
          "conference": {
            "type": "string"
          },
          "defense": {
            "properties": {
              "cumulative": {
                "properties": {
                  "passing": {
                    "type": "number"
                  },
                  "rushing": {
                    "type": "number"
                  },
                  "total": {
                    "type": "number"
                  }
                },
                "type": "object"
              },
              "firstDown": {
                "type": "number"
              },
              "overall": {
                "type": "number"
              },
              "passing": {
                "type": "number"
              },
              "rushing": {
                "type": "number"
              },
              "secondDown": {
                "type": "number"
              },
              "thirdDown": {
                "type": "number"
              }
            },
            "type": "object"
          },
          "offense": {
            "properties": {
              "cumulative": {
                "properties": {
                  "passing": {
                    "type": "number"
                  },
                  "rushing": {
                    "type": "number"
                  },
                  "total": {
                    "type": "number"
                  }
                },
                "type": "object"
              },
              "firstDown": {
                "type": "number"
              },
              "overall": {
                "type": "number"
              },
              "passing": {
                "type": "number"
              },
              "rushing": {
                "type": "number"
              },
              "secondDown": {
                "type": "number"
              },
              "thirdDown": {
                "type": "number"
              }
            },
            "type": "object"
          },
          "season": {
            "type": "integer"
          },
          "team": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "TeamRecord": {
        "properties": {
          "awayGames": {
            "properties": {
              "games": {
                "type": "integer"
              },
              "losses": {
                "type": "integer"
              },
              "ties": {
                "type": "integer"
              },
              "wins": {
                "type": "integer"
              }
            },
            "type": "object"
          },
          "conference": {
            "type": "string"
          },
          "conferenceGames": {
            "properties": {
              "games": {
                "type": "integer"
              },
              "losses": {
                "type": "integer"
              },
              "ties": {
                "type": "integer"
              },
              "wins": {
                "type": "integer"
              }
            },
            "type": "object"
          },
          "division": {
            "type": "string"
          },
          "expectedWins": {
            "type": "number"
          },
          "homeGames": {
            "properties": {
              "games": {
                "type": "integer"
              },
              "losses": {
                "type": "integer"
              },
              "ties": {
                "type": "integer"
              },
              "wins": {
                "type": "integer"
              }
            },
            "type": "object"
          },
          "team": {
            "type": "string"
          },
          "total": {
            "properties": {
              "games": {
                "type": "integer"
              },
              "losses": {
                "type": "integer"
              },
              "ties": {
                "type": "integer"
              },
              "wins": {
                "type": "integer"
              }
            },
            "type": "object"
          },
          "year": {
            "type": "integer"
          }
        },
        "type": "object"
      },
      "TeamRecruitingRank": {
        "properties": {
          "points": {
            "type": "number"
          },
          "rank": {
            "type": "integer"
          },
          "team": {
            "type": "string"
          },
          "year": {
            "type": "integer"
          }
        },
        "type": "object"
      },
      "TeamSPRating": {
        "properties": {
          "conference": {
            "type": "string"
          },
          "defense": {
            "properties": {
              "explosiveness": {
                "type": "number"
              },
              "havoc": {
                "properties": {
                  "db": {
                    "type": "number"
                  },
                  "frontSeven": {
                    "type": "number"
                  },
                  "total": {
                    "type": "number"
                  }
                },
                "type": "object"
              },
              "pasing": {
                "type": "number"
              },
              "passingDowns": {
                "type": "number"
              },
              "ranking": {
                "type": "number"
              },
              "rating": {
                "type": "number"
              },
              "rushing": {
                "type": "number"
              },
              "standardDowns": {
                "type": "number"
              },
              "success": {
                "type": "number"
              }
            },
            "type": "object"
          },
          "offense": {
            "properties": {
              "explosiveness": {
                "type": "number"
              },
              "pace": {
                "type": "number"
              },
              "passing": {
                "type": "number"
              },
              "passingDowns": {
                "type": "number"
              },
              "ranking": {
                "type": "number"
              },
              "rating": {
                "type": "number"
              },
              "runRate": {
                "type": "number"
              },
              "rushing": {
                "type": "number"
              },
              "standardDowns": {
                "type": "number"
              },
              "success": {
                "type": "number"
              }
            },
            "type": "object"
          },
          "ranking": {
            "type": "number"
          },
          "rating": {
            "type": "number"
          },
          "secondOrderWins": {
            "type": "number"
          },
          "sos": {
            "type": "number"
          },
          "specialTeams": {
            "properties": {
              "rating": {
                "type": "number"
              }
            },
            "type": "object"
          },
          "team": {
            "type": "string"
          },
          "year": {
            "type": "integer"
          }
        },
        "type": "object"
      },
      "TeamSRSRating": {
        "properties": {
          "conference": {
            "type": "string"
          },
          "division": {
            "type": "string"
          },
          "ranking": {
            "type": "number"
          },
          "rating": {
            "type": "number"
          },
          "team": {
            "type": "string"
          },
          "year": {
            "type": "integer"
          }
        },
        "type": "object"
      },
      "TeamSeason": {
        "properties": {
          "games": {
            "type": "integer"
          },
          "losses": {
            "type": "integer"
          },
          "postseason_rank": {
            "description": "Final ranking in the AP poll",
            "type": "integer"
          },
          "preseason_rank": {
            "description": "Rank in the AP preseason poll",
            "type": "integer"
          },
          "school": {
            "type": "string"
          },
          "sp_defense": {
            "description": "Final SP+ defensive rating",
            "type": "number"
          },
          "sp_offense": {
            "description": "Final SP+ offensive rating",
            "type": "number"
          },
          "sp_overall": {
            "description": "Final overall SP+ rating",
            "type": "number"
          },
          "srs": {
            "description": "Final SRS rankings",
            "type": "number"
          },
          "ties": {
            "type": "integer"
          },
          "wins": {
            "type": "integer"
          },
          "year": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "TeamSeasonStat": {
        "properties": {
          "conference": {
            "type": "string"
          },
          "season": {
            "type": "integer"
          },
          "statName": {
            "type": "string"
          },
          "statValue": {
            "type": "integer"
          },
          "team": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "TeamTalent": {
        "properties": {
          "school": {
            "type": "string"
          },
          "talent": {
            "type": "number"
          },
          "year": {
            "type": "integer"
          }
        },
        "type": "object"
      },
      "Venue": {
        "properties": {
          "capacity": {
            "type": "integer"
          },
          "city": {
            "type": "string"
          },
          "country_code": {
            "type": "string"
          },
          "dome": {
            "type": "boolean"
          },
          "elevation": {
            "type": "number"
          },
          "grass": {
            "type": "boolean"
          },
          "id": {
            "type": "integer"
          },
          "location": {
            "properties": {
              "x": {
                "type": "number"
              },
              "y": {
                "type": "number"
              }
            },
            "type": "object"
          },
          "name": {
            "type": "string"
          },
          "state": {
            "type": "string"
          },
          "timezone": {
            "type": "string"
          },
          "year_constructed": {
            "type": "integer"
          },
          "zip": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "Week": {
        "properties": {
          "firstGameStart": {
            "type": "string"
          },
          "lastGameStart": {
            "type": "string"
          },
          "season": {
            "type": "integer"
          },
          "seasonType": {
            "type": "string"
          },
          "week": {
            "type": "integer"
          }
        },
        "type": "object"
      }
    },
    "securitySchemes": {
      "ApiKeyAuth": {
        "in": "header",
        "name": "Authorization",
        "type": "apiKey"
      }
    }
  }
}