{
  "openapi": "3.0.1",
  "info": {
    "title": "ESPN Injury Report Scraper & Change Monitor - NFL NBA MLB NHL",
    "description": "For fantasy tools, betting models and news desks: every current ESPN injury report across six leagues in one row shape - 1,261 reports on 2026-09-06 (NFL 800, MLB 283, NBA 75, NHL 61, WNBA 39), each with the player ESPN id. Monitoring returns only what changed, so you never pay twice. No API key.",
    "version": "0.1",
    "x-build-id": "Oij9yaPf8foPtBOZU"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/neverempty~espn-injury-report-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-neverempty-espn-injury-report-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/neverempty~espn-injury-report-scraper/runs": {
      "post": {
        "operationId": "runs-sync-neverempty-espn-injury-report-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/neverempty~espn-injury-report-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-neverempty-espn-injury-report-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": {
          "leagues": {
            "title": "Leagues",
            "type": "array",
            "description": "Which leagues to read. Only these five have an ESPN injury feed with current data (checked 2026-09-06: NFL 800 reports, MLB 283, NBA 75, NHL 61, WNBA 39). College football (ncaaf) returns one uncharged explanation row instead of injuries: ESPN's college football feed only holds 3 reports dated 2020-2022 (checked 2026-09-14). ESPN answers HTTP 200 with an empty feed for every soccer league and college basketball, which is not the same as 'nobody is injured', so those are refused rather than reported as empty.",
            "items": {
              "type": "string",
              "enum": [
                "nfl",
                "nba",
                "mlb",
                "nhl",
                "wnba",
                "ncaaf"
              ],
              "enumTitles": [
                "NFL",
                "NBA",
                "MLB",
                "NHL",
                "WNBA",
                "NCAA Football"
              ]
            },
            "default": [
              "nfl",
              "nba",
              "mlb",
              "nhl"
            ]
          },
          "maxInjuries": {
            "title": "Maximum reports to return",
            "minimum": 1,
            "maximum": 5000,
            "type": "integer",
            "description": "How many injury reports to return. You are charged for the rows you actually receive. All four default leagues together carried 1,219 reports on 2026-09-06.",
            "default": 200
          },
          "monitoringMode": {
            "title": "Monitoring mode: return only new or changed reports",
            "type": "boolean",
            "description": "Off = return every report for the leagues you picked. On = remember what was already returned and, on later runs, return only reports that are new or have changed. An injury keeps the same id while its status moves from Out to Day-To-Day, so this compares the status, the timestamp and the comment - not just the id - and a changed report comes back as new.",
            "default": false
          },
          "resetMonitoringState": {
            "title": "Forget what was already returned",
            "type": "boolean",
            "description": "Clear the remembered reports before this run, so everything counts as new again.",
            "default": false
          },
          "statuses": {
            "title": "Only these statuses",
            "type": "array",
            "description": "Keep a report only if its status matches one of these (case-insensitive; matched against both the readable status and ESPN's code). Seen on 2026-09-06: Active, Out, Questionable, Day-To-Day, Injured Reserve, Suspension, Bereavement, 7-Day IL, 10-Day-IL, 15-Day-IL, 60-Day-IL. Note ESPN prints some of them in both cases (Suspension and suspension).",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "teams": {
            "title": "Only these teams",
            "type": "array",
            "description": "Keep a report only if the team name, abbreviation or slug contains one of these (case-insensitive, partial). Example: Cardinals, ARI, arizona-cardinals. Because the match is partial, a short abbreviation can reach more than one club - measured on 2026-09-10 in the NFL feed, CAR also returns the Arizona Cardinals, CHI also returns the Kansas City Chiefs, and NE returns seven clubs because those two letters appear inside Minnesota, New Orleans, New York, Tampa Bay and Tennessee. Use the full slug when you need exactly one club.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "players": {
            "title": "Only these players",
            "type": "array",
            "description": "Keep a report only if the player's name contains one of these (case-insensitive, partial). Example: Brissett.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "positions": {
            "title": "Only these positions",
            "type": "array",
            "description": "Keep a report only if the position or its abbreviation contains one of these (case-insensitive, partial). Example: Quarterback, QB, Pitcher.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "requireComment": {
            "title": "Only reports with analyst commentary",
            "type": "boolean",
            "description": "Drop reports that carry no short or long comment. On 2026-09-06, 772 of the 800 NFL reports had one.",
            "default": false
          },
          "changedSince": {
            "title": "Reported on or after (YYYY-MM-DD)",
            "type": "string",
            "description": "Keep only reports ESPN timestamped on or after this date. Reports with an unreadable timestamp are kept, because unknown is not the same as old."
          },
          "keywords": {
            "title": "Keywords",
            "type": "array",
            "description": "Keep a report only if one (Any) or all (All) of these appear in the player, team, position, status or the analyst comments. Example: ankle, hamstring.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "keywordMatch": {
            "title": "Keyword match",
            "enum": [
              "any",
              "all"
            ],
            "type": "string",
            "description": "Any = at least one keyword. All = every keyword.",
            "default": "any"
          },
          "excludeKeywords": {
            "title": "Exclude keywords",
            "type": "array",
            "description": "Drop a report if any of these appear in the same fields.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "useProxy": {
            "title": "Use an Apify proxy",
            "type": "boolean",
            "description": "Off by default: ESPN's public feed answered 200 from a plain Apify datacentre address when this Actor was built (2026-09-06). If it starts answering 403, 429 or 503, the Actor switches to a proxy session on its own and tries again.",
            "default": false
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}