{
  "openapi": "3.0.1",
  "info": {
    "title": "Sports Injury Report Scraper & Change Monitor - NFL NBA MLB NHL",
    "description": "Turn monitoring on and every later run returns only the injury reports that are new or have changed, so you are never charged for the same report twice. Every ESPN injury report as JSON: player, team, position, status and analyst comments. NFL, NBA, MLB, NHL, WNBA and college football.",
    "version": "0.1",
    "x-build-id": "r1JfDQoRocx6HShA0"
  },
  "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 six have an ESPN injury feed with real data (checked 2026-09-06: NFL 800 reports, MLB 283, NBA 75, NHL 61, WNBA 39, college football 3). 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.",
            "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
                  }
                }
              },
              "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}