injuries

Active injury reports

Injury reports by sport. What a row MEANS differs by league, because injury data is a reporting artifact and leagues differ in what they compel teams to disclose:

  • american_football: the NFL's mandated weekly injury report status is a league-defined game designation: Out / Doubtful / Questionable. comment carries practice participation. player.position is always present. Published per week; meta.as_of is the date of the games that week's report covers. No return_date: the NFL report is designation-based and states no expected return, so the field is omitted rather than sent as a permanent null. Only rows carrying a game designation are returned; a player logging a full practice with no designation is not injured, and is not listed.
  • basketball, ice_hockey: NBA / NHL reports from a paid aggregator (aggregator-paid). Note the NHL requires no disclosure at all, so NHL detail is vague at the league ("upper-body"), not at this API.
  • football: soccer absences from a paid aggregator (aggregator-paid). Mostly retrospective: a record that a player missed a fixture that has been played, which includes non-injury absences such as suspension. meta.as_of is the newest matchday held.
  • baseball, and everything else: not served; returns 400 naming the sports that are.

Endpoints that serve a stored snapshot always carry meta.as_of (the currency of the DATA, never the time we last ingested it) and set meta.stale: true with a plain-language meta.message when no fresher data exists yet (e.g. between seasons).

get/v1/injuries

Request

  • Base URL: https://api.bigballsdata.com
  • URL: https://api.bigballsdata.com/v1/injuries
  • Auth: one of:
    • API key in header x-api-key
    • HTTP bearer

Query parameters

sportstring
teamstring

Team NAME, short name / abbreviation, FIFA code or Big Balls team id (UUID): whichever spelling you read back off a previous response. Until 2026-09-20 only the UUID matched, so ?team=ARI returned 0 of the 7 ARI rows the unfiltered call returns, with a 200. NOT APPLIED on sport=basketball and sport=ice_hockey: those rows are keyed on the player and the board is league-wide, so the response returns every team AND discloses the parameter in meta.ignored_params rather than answering silently. Applying it there is a pending decision, not an accident.

Response

ok. { data, meta }; meta.as_of is the currency of the DATA. Declared no content until 2026-09-25.

Example response

{
  "meta": {
    "date_window": {
      "timezone": "UTC",
      "start_utc": "2026-09-13T00:00:00.000Z",
      "end_utc": "2026-09-14T00:00:00.000Z"
    },
    "source": "official-league",
    "confidence": 0.95,
    "cache_age_ms": 4200,
    "request_id": "req_abc123",
    "note": "match_id is omitted on 380 of 380 rows in this response. The live feed behind them does not carry an id we can resolve to a stored match, so we return no id rather than one that will not work. For rows with ids you can call back into, use /v1/stored/matches with the same sport or league, for example /v1/stored/matches?league=epl."
  },
  "error": {
    "code": "NOT_FOUND"
  }
}

Changes

No recorded changes to this operation across all 3 revisions of this API.