{
  "openapi": "3.0.1",
  "info": {
    "title": "NFL Stats and Play-by-Play Scraper",
    "description": "Get NFL player and team stats by week or season, play-by-play with EPA and win probability, snap counts, injury reports, rosters, depth charts, betting lines, weather and draft picks. Weekly player rows include snap share and injury status. Any season since 1999. Export to CSV or Excel.",
    "version": "1.0",
    "x-build-id": "eoQUbSQOZ5X5ww6kv"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/parselab~nfl-football-stats-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-parselab-nfl-football-stats-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/acts/parselab~nfl-football-stats-scraper/runs": {
      "post": {
        "operationId": "runs-sync-parselab-nfl-football-stats-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor and returns information about the initiated run in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/runsResponseSchema"
                }
              }
            }
          }
        }
      }
    },
    "/acts/parselab~nfl-football-stats-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-parselab-nfl-football-stats-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "inputSchema": {
        "type": "object",
        "properties": {
          "maxItems": {
            "title": "Max Items",
            "minimum": 1,
            "maximum": 1000000,
            "type": "integer",
            "description": "Free users: Limited to 10 items (preview). Paid users: Optional, max 1,000,000."
          },
          "mode": {
            "title": "What to collect",
            "enum": [
              "playerstats",
              "teamstats",
              "games",
              "playbyplay",
              "injuries",
              "snapcounts",
              "rosters",
              "depthcharts",
              "advstats",
              "draftpicks",
              "combine",
              "players"
            ],
            "type": "string",
            "description": "Player stats give one row per player and week (or season). Team stats give one row per team and week. Games gives schedule, scores, betting lines and weather. Play-by-play gives one row per play. Injuries, snap counts, rosters, depth charts and advanced stats come from the weekly reports. Draft picks, combine results and the player directory are also available.",
            "default": "playerstats"
          },
          "seasons": {
            "title": "Seasons",
            "type": "array",
            "description": "Seasons to collect, for example 2024 or 2025. Leave empty for the latest season with data. Player and team stats start in 1999, play-by-play in 1999.",
            "items": {
              "type": "string"
            }
          },
          "weeks": {
            "title": "Weeks",
            "type": "array",
            "description": "Weeks to keep, for example 1, 2, 3. Playoff weeks continue the numbering after the regular season. Leave empty for all weeks.",
            "items": {
              "type": "string"
            }
          },
          "seasonType": {
            "title": "Season part",
            "enum": [
              "all",
              "REG",
              "POST"
            ],
            "type": "string",
            "description": "Regular season, playoffs or both.",
            "default": "all"
          },
          "level": {
            "title": "Player and team stats level",
            "enum": [
              "week",
              "season"
            ],
            "type": "string",
            "description": "Week gives one row per game played. Season gives season totals.",
            "default": "week"
          },
          "teams": {
            "title": "Teams",
            "type": "array",
            "description": "Team abbreviations such as KC, SF, BUF, DAL. Leave empty for all teams.",
            "items": {
              "type": "string"
            }
          },
          "positions": {
            "title": "Positions",
            "type": "array",
            "description": "Positions to keep, for example QB, RB, WR, TE, K.",
            "items": {
              "type": "string"
            }
          },
          "playerNames": {
            "title": "Player names",
            "type": "array",
            "description": "Keep only rows that match these names, for example Mahomes or Travis Kelce. Partial names work.",
            "items": {
              "type": "string"
            }
          },
          "includeContext": {
            "title": "Add snap share and injury status",
            "type": "boolean",
            "description": "For weekly player stats, add offensive and defensive snap counts and shares plus the injury report status of the same week.",
            "default": true
          },
          "advType": {
            "title": "Advanced stats type",
            "enum": [
              "pass",
              "rush",
              "rec",
              "def"
            ],
            "type": "string",
            "description": "Which advanced report to return in advanced stats mode.",
            "default": "pass"
          },
          "playTypes": {
            "title": "Play types",
            "type": "array",
            "description": "Keep only these play types in play-by-play mode, for example pass, run, field_goal, punt, kickoff.",
            "items": {
              "type": "string"
            }
          },
          "pbpColumns": {
            "title": "Play-by-play columns",
            "enum": [
              "essential",
              "all"
            ],
            "type": "string",
            "description": "Essential returns about 70 useful columns per play. All returns every one of the 370 columns.",
            "default": "essential"
          },
          "gameIds": {
            "title": "Game IDs",
            "type": "array",
            "description": "Game IDs such as 2024_01_BAL_KC to limit play-by-play to specific games.",
            "items": {
              "type": "string"
            }
          }
        }
      },
      "runsResponseSchema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "actId": {
                "type": "string"
              },
              "userId": {
                "type": "string"
              },
              "startedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "finishedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "status": {
                "type": "string",
                "example": "READY"
              },
              "meta": {
                "type": "object",
                "properties": {
                  "origin": {
                    "type": "string",
                    "example": "API"
                  },
                  "userAgent": {
                    "type": "string"
                  }
                }
              },
              "stats": {
                "type": "object",
                "properties": {
                  "inputBodyLen": {
                    "type": "integer",
                    "example": 2000
                  },
                  "rebootCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "restartCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "resurrectCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "computeUnits": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "options": {
                "type": "object",
                "properties": {
                  "build": {
                    "type": "string",
                    "example": "latest"
                  },
                  "timeoutSecs": {
                    "type": "integer",
                    "example": 300
                  },
                  "memoryMbytes": {
                    "type": "integer",
                    "example": 1024
                  },
                  "diskMbytes": {
                    "type": "integer",
                    "example": 2048
                  }
                }
              },
              "buildId": {
                "type": "string"
              },
              "defaultKeyValueStoreId": {
                "type": "string"
              },
              "defaultDatasetId": {
                "type": "string"
              },
              "defaultRequestQueueId": {
                "type": "string"
              },
              "buildNumber": {
                "type": "string",
                "example": "1.0.0"
              },
              "containerUrl": {
                "type": "string"
              },
              "usage": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "integer",
                    "example": 1
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "usageTotalUsd": {
                "type": "number",
                "example": 0.00005
              },
              "usageUsd": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "number",
                    "example": 0.00005
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}