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).
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
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.