Sports Injury Reports & Status Changes
Pricing
from $0.30 / 1,000 injury records
Sports Injury Reports & Status Changes
Player injury and availability reports for the NFL, NBA, NHL, MLB and WNBA: one record per listed player with a normalised status, injury detail, comments, expected return and the team's next game. Change mode tracks new, updated and cleared listings.
Pricing
from $0.30 / 1,000 injury records
Rating
0.0
(0)
Developer
Philip Kirkbride
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
4 hours ago
Last modified
Categories
Features
Share
Collect the current player injury and availability report for the NFL, NBA, NHL, MLB and WNBA as published by ESPN: one record per listed player with a normalised status (out, doubtful, questionable, day to day, injured reserve and more), the injury, the expected return date and the team's next game (the text note published with an entry is optional and off by default). An optional change mode returns only the players whose status, comment or expected return changed since your previous run, plus the players who are no longer listed. Built for bettors, fantasy players, preview writers and model builders who schedule runs and pipe the JSON into alerts, dashboards or models. No account or API key is needed.
Data only: not medical, betting or financial advice. This is an unofficial tool: it is not affiliated with or endorsed by ESPN, any league or any team.
Use cases
- Availability before a bet or a fantasy lock: who is out, doubtful or questionable for the leagues or teams you follow, each with the team's next game and its start time.
- Alerts on status changes: schedule a run with change mode on and get a record only when a player's status moves (for example out to questionable), when a player is added, or when a player drops off the report.
- Game previews: a "who is out" line per team, joined to the game through the next game's event id.
- Models and research: a stable key per player and a small status vocabulary across five leagues, with the source's own wording kept next to it.
Quick start
- Open the Actor and click Start. The prefilled form collects the NFL and NBA reports with each team's next game, capped at 20 records.
- Read the rows in the Output tab, or export them as JSON, CSV or Excel.
Two teams, only the players in doubt for the next game:
{"leagues": ["nba"], "teams": ["LAL", "BOS"], "statuses": ["out", "doubtful", "questionable", "day_to_day"]}
Only what changed since the last run of the same watch list:
{"leagues": ["nfl", "nba", "nhl"], "emitChangesOnly": true, "stateKey": "my-watch-list"}
Every league, without the next-game lookup:
{"leagues": ["nfl", "nba", "nhl", "mlb", "wnba"], "attachNextGame": false, "maxResults": 2000}
An empty input ({}) returns a sample of up to 20 current NFL and NBA
injury records. The run status starts with "Sample run (...)" and the run
summary has sampleRun: true. Any explicit input runs the requested scope,
with a default cap of 1,000 unless you set maxResults. The Console form
prefills a cap of 20. A full NFL and NBA snapshot can be requested with
maxResults: 1000; its size changes through the day (301 records during the
2026-11-11 audit). The Actor never widens the league scope by itself.
Input
| Name | Type | Default | What it does |
|---|---|---|---|
leagues | array | NFL and NBA | Leagues to collect: nfl, nba, nhl, mlb, wnba. |
teams | array | every team | Only these teams: abbreviations as the source writes them (LAL, KC, GS, NO, NY, SA, UTAH, WSH), full team names or numeric team ids. |
statuses | array | every status except active | Any of out, doubtful, questionable, probable, day_to_day, injured_reserve, suspended, active, unknown. |
includeComments | boolean | false | Add the short and long comment published with each entry. Off by default because the comments are editorial text written by a third party. |
attachNextGame | boolean | true | Add each team's next scheduled game. |
nextGameDays | integer | 7 | Days from today to search for the next game (1–10). |
emitChangesOnly | boolean | false | Change mode: return only what changed since the previous run with the same state key. |
stateKey | string | derived from leagues and teams | Name of the saved state change mode compares against. At most 64 characters. |
maxResults | integer | 1000 (20 for {}) | Maximum dataset records per run (1–5,000). |
requestDelaySecs | number | 1 | Seconds between requests (0.25–10). |
An explicit leagues: [] is an error: omit leagues for NFL and NBA.
teams: [] means every team; statuses: [] means every status except
active; stateKey: "" derives a key. These explicit inputs are full runs,
so set maxResults to keep them small. Null values and strings in place of
list fields are errors.
A misspelt input field, an unsupported league or a value outside these limits
stops the run with an error that names the problem. A teams value that
matches no team on the report is listed in the run summary's notes.
Output
One record per player on a league's report.
- Identity:
recordKey(espn:injury:<league>:<athleteId>, stable across runs),sport,league,leagueLabel,seasonYear,seasonType,sourceUrl(the player's page). - Who:
team(id,name,abbreviation) andplayer(id,name,firstName,lastName,position,positionName,jersey). - Status:
statusis one ofout,doubtful,questionable,probable,day_to_day,injured_reserve,suspended,activeorunknown. The source's own wording is kept instatusNative(for exampleDay-To-Day), its status code instatusType, and its short designation indesignation(for exampleGTD,OFS,IR-R,PUP-R,7-Day IL). - Injury:
injurywithtype(Hamstring),location(Leg),detail(Strain) andside(Left), eachnullwhen not published. - Notes and dates:
shortComment,longComment,commentSource(who wrote the comment, when stated),reportedAt(when the entry was last updated, UTC),expectedReturn(estimated return day),collectedAt. - Next game:
nextGamewithespnEventId,startTime(UTC),shortName(LAL @ MIL),homeAwayandopponent;nullwhen the team has no game in the look-ahead window or the lookup is off. - Change:
changeisnullin a normal run. In change mode it holdskind(new,updatedorcleared),previousStatus,newStatus,previousSeenAt,previousExpectedReturnandchangedFields(status,comment,expectedReturn).
How to read it:
- Anything not published is
null. Nothing is estimated: the status comes only from the source's status field, never from the wording of a comment. unknownmeans the source used a status this Actor does not recognise; readstatusNative.expectedReturnis the source's estimate and is often a placeholder date for long-term absences.- A
clearedrecord means the player is no longer on the report. It does not say why: usually the player is available again, but the entry can also have been removed for another reason. Itsstatusisnullandchange.previousStatusholds the last status seen.
The run summary (OUTPUT in the key-value store) reports records per league
and per status, how many have a next game, the newest and oldest
reportedAt, requests made, the change counts, warnings, the sampleRun
flag and the status
succeeded, succeeded_empty, succeeded_partial or failed.
Output example
A full real NBA record captured on 2026-11-11. Comments are null because
includeComments was left off; dates and the next game reflect that capture.
{"recordKey":"espn:injury:nba:4873201","source":"espn","schemaVersion":"1.0","collectedAt":"2026-11-11T18:41:43.708499+00:00","sourceUrl":"https://www.espn.com/nba/player/_/id/4873201/asa-newell","sport":"basketball","league":"nba","leagueLabel":"NBA","seasonYear":2027,"seasonType":2,"team":{"id":"1","name":"Atlanta Hawks","abbreviation":"ATL"},"player":{"id":"4873201","name":"Asa Newell","firstName":"Asa","lastName":"Newell","position":"F","positionName":"Forward","jersey":null},"status":"out","statusNative":"Out","statusType":"INJURY_STATUS_OUT","designation":"GTD","injury":{"type":"Toe","location":"Leg","detail":null,"side":"Left"},"shortComment":null,"longComment":null,"commentSource":null,"reportedAt":"2026-11-08T22:15:00+00:00","expectedReturn":"2026-11-13","injuryId":"538188","nextGame":{"espnEventId":"401909299","startTime":"2026-11-14T01:00:00+00:00","shortName":"ATL @ CHI","homeAway":"away","opponent":{"id":"4","name":"Chicago Bulls","abbreviation":"CHI"}},"change":null}
Pricing
The approved price is $0.0003 per dataset record ($0.30 per 1,000), plus $0.001 per run start. See the Actor's Pricing tab for current rates.
| Run | Records | Record and start charges |
|---|---|---|
| Bare sample or Console prefill at its cap | 20 | $0.007 |
| Full NFL and NBA snapshot measured during the audit | 301 | $0.0913 |
| Quiet change poll | 0 | $0.001 |
| Change poll with two delivered changes | 2 | $0.0016 |
Use leagues, teams, statuses, emitChangesOnly and maxResults to keep
runs small. Unchanged players and records withheld by the spending limit
add no record charge. The run summary's records counts delivered rows;
coverage counts selected rows before the spending limit.
Scheduling and monitoring
- Status alerts: schedule a run with
emitChangesOnlyevery 10 to 30 minutes on game days and send each record to your alert channel. Give the schedule astateKey; every run with that key shares one history, and a different key starts a new one. - How change mode behaves: the first run for a state key reports a
baseline and returns every listed player as
new. Later runs return onlynew,updatedandclearedrecords; a run with nothing to report returns no records. A change is returned when the previous or the new status is instatuses, so a player going from questionable to active is reported with the default filter. Changes abovemaxResultsor above your spending limit are kept and returned by the next run. - Daily snapshot: schedule a normal run once a day and key your history
on
recordKeypluscollectedAt. - If a league's report cannot be read, the run says so in its warnings and that league's players are left as they were; they are not reported as cleared.
How current the report is
Measured on 2026-11-11 at about 01:00 UTC; it changes through the day and the season.
| League | Players listed | Updated in the last 24 hours | Notes |
|---|---|---|---|
| NFL | 800 (203 without active) | 200 | At most 25 entries per team, newest first, including player news listed as active. |
| NBA | 91 | 33 | In season. |
| NHL | 111 | 12 | In season; most entries are injured reserve. |
| MLB | 146 | 6 | Off season: long-term entries only. |
| WNBA | 44 | 1 | Off season: long-term entries only. |
Between two looks twenty minutes apart that evening, 12 of 1,002 NFL, NBA and NHL entries changed; 2 of them were injury records, the rest NFL player news.
FAQ
Which statuses does each league use? On 2026-11-11 the NFL list used questionable, doubtful, out, injured reserve and active; the NBA out and day to day; the NHL injured reserve, out and day to day; MLB out, day to day and suspended; the WNBA out.
Why is an NBA player "day to day" when the comment says questionable? For
the NBA the source's status field only says out or day to day. The league's
own questionable, doubtful and probable labels appear in the comment text.
This Actor does not turn comment wording into a status; read shortComment,
or designation (GTD).
Why are NFL "active" players left out by default? For the NFL the source
lists recent player news (game recaps, signings) with the status active. They
are not injuries, and they are most of the NFL list. Add active to
statuses to receive them.
Why does a record have no next game? The team has no scheduled game within
nextGameDays (a bye week, the off season), or attachNextGame is off. A
game already in progress is not a next game.
How fresh is the data? Each run reads the report at run time.
Does a team filter change what change mode remembers? Each combination
of leagues and teams gets its own saved state unless you set stateKey.
Export formats? JSON, CSV, Excel, XML or RSS from the dataset, or read it through the Apify API in your own pipeline.
Limits
- One source. The data comes from an unofficial, undocumented source that can change or become unavailable without notice, and it can lag behind or differ from the leagues' official reports. Check a run's status and warnings before relying on it.
- Leagues not covered: college football (the source's list is years out of date), college basketball, UFC and every soccer league, including the Premier League, La Liga and MLS (the source publishes no entries for them). The run refuses them with that reason.
- NFL: at most 25 entries per team are published, newest first, so on a busy
news day an older injury entry can drop off the list and be reported as
clearedin change mode. - No practice participation, no snap or minutes restrictions, no official game-day inactive lists, no history: build history by scheduling runs.
- Jersey numbers are not published in this report (
player.jerseyisnull), and player photos and team logos are not included. - Comments are short notes written by a third party for the source
(
commentSourcenames it). They are editorial text, not facts like a status or a date, so they are left out unless you turnincludeCommentson; when on, they are passed through unchanged and their use is your responsibility. - You are responsible for using the data in line with the terms of the sites it comes from and the laws that apply to you.
For support, contact Apify support and include the Actor run ID.