Sports Injury Reports API
Pricing
from $0.25 / 1,000 player injuries
Sports Injury Reports API
Get NFL, NBA, WNBA, MLB and NHL injury reports as clean JSON: player status, injury type, body part, expected return date and analyst notes. Filter by league, status and team.
Pricing
from $0.25 / 1,000 player injuries
Rating
0.0
(0)
Developer
ParseBird
Maintained by CommunityActor stats
1
Bookmarked
2
Total users
1
Monthly active users
8 days ago
Last modified
Categories
Share
Sports Injury Reports API
Sports Injury Reports API gives you the current NFL, NBA, WNBA, MLB and NHL injury reports as clean JSON, one row per injured player, with status, injury details, estimated return date and analyst notes.
| Pull every listed injury across five leagues in a single run of a few seconds, filter by status (Out, Questionable, Day-To-Day, Injured Reserve, MLB injured list and more) or by team, and get body part, side, diagnosis, fantasy designation and ESPN player IDs on every row. |
Copy to your AI assistant
Copy this block into ChatGPT, Claude, Cursor, or any LLM to start using this actor.
Use the Apify Actor "parsebird/sports-injury-reports-api" (call it via ApifyClient) to get current sports injury reports. Example (JavaScript): const { ApifyClient } = require('apify-client'); const client = new ApifyClient({ token: '<APIFY_TOKEN>' }); const run = await client.actor('parsebird/sports-injury-reports-api').call({ leagues: ['nfl', 'nba'], statusFilter: 'out', teams: [], maxItems: 0 }); const { items } = await client.dataset(run.defaultDatasetId).listItems(); Inputs (all optional): leagues (array, default ["nfl","nba","mlb","nhl"], valid nfl/nba/wnba/mlb/nhl), statusFilter (string, default "all", one of all/active/out/day-to-day/questionable/doubtful/injured-reserve/injured-list/suspension, case-insensitive), teams (array of team abbreviations like "KC", nicknames like "Lakers", or ESPN team IDs; default all teams), maxItems (integer, default 0 = no cap). Each output row is one player injury: league, team_id, team, team_abbreviation, athlete_id, athlete, athlete_short, position, position_name, status, injury_type, injury (body part), injury_detail, injury_side, return_date, fantasy_status, date_utc, short_comment, long_comment, source, player_url, headshot_url, fetched_at. API docs: https://apify.com/parsebird/sports-injury-reports-api/api. Get a token at https://console.apify.com/settings/integrations.
What is Sports Injury Reports API?
Sports Injury Reports API is an Apify Actor that collects the injury reports ESPN publishes for the NFL, NBA, WNBA, MLB and NHL and returns them as structured rows. You don't need an API key, an ESPN account or an HTML parser. Pick your leagues, click Start, and download the results as JSON, CSV or Excel.
It's an easy NFL injury report API, NBA injury API, MLB injured list API and NHL injury API in one place. Each row covers one player: their team, position, current status (for example Questionable, Out, Day-To-Day or 60-Day-IL), the injured body part and diagnosis, ESPN's estimated return date, and the short and long analyst notes shown on ESPN's injury pages.
What can Sports Injury Reports API do?
- 🏈 Five leagues in one run: NFL, NBA, WNBA, MLB and NHL, each fetched in full with a single request. A four-league run usually finishes in seconds.
- 🩺 Injury details, not only a status: body part (
Ankle,Hamstring), diagnosis (Sprain,Fracture), side (Left/Right), estimated return date and the fantasy designation (GTD,IR-R,PUP-R,15-Day IL). - 🔎 Status filter: keep only Out, Questionable, Doubtful, Day-To-Day, Injured Reserve, Suspension, recently cleared (Active) players, or every MLB injured-list stint (7, 10, 15 and 60-day) at once.
- 🏟️ Team filter: limit results to the teams you follow by abbreviation (
KC,LAL,NYY), nickname (Chiefs,Red Sox) or ESPN team ID. - 🆔 Join-ready IDs: every row has the ESPN
athlete_idandteam_id, plus the player page URL and headshot image URL. - ⏱️ Platform features: schedule hourly or daily runs, call it through the Apify API, trigger webhooks when a run finishes, and connect it to Make, Zapier, n8n, Google Sheets, Slack and more.
What data can you extract from sports injury reports?
| Field | Description |
|---|---|
league | League code: nfl, nba, wnba, mlb or nhl |
team_id / team / team_abbreviation | ESPN team ID, full team name, and abbreviation (e.g. BAL) |
athlete_id / athlete / athlete_short | ESPN player ID, full name, and short name (e.g. L. Jackson) |
position / position_name | Position abbreviation and full name (e.g. QB / Quarterback) |
status | Player status as listed, e.g. Out, Questionable, Day-To-Day, Injured Reserve, 60-Day-IL |
injury_type | ESPN injury type, e.g. questionable, day-to-day, 15-day IL |
injury / injury_detail / injury_side | Body part, diagnosis and side, when ESPN lists them (null otherwise) |
return_date | ESPN's estimated return date (YYYY-MM-DD), when listed |
fantasy_status | Fantasy designation, e.g. GTD, OUT, IR-R, PUP-R, 60-Day IL |
date_utc | When the injury note was last updated (ISO 8601, UTC) |
short_comment / long_comment | One-line news update and the full analyst commentary |
source | Who wrote the note (currently RotoWire for most rows) |
player_url / headshot_url | ESPN player page and headshot image |
fetched_at | When this Actor fetched the data (ISO 8601, UTC) |
How to get NFL, NBA, MLB and NHL injury reports
- Open Sports Injury Reports API and click Try for free. You'll need a free Apify account.
- Under Leagues, keep the default (NFL, NBA, MLB, NHL) or add WNBA.
- Optionally choose a Player status, for example
OutorQuestionable. - Optionally enter Teams to follow, such as
KCorLakers. - Click Start. Once the run finishes, open the Output tab and export the injury report as JSON, CSV, Excel or HTML, or read it through the API.
- To keep the data fresh, add a schedule, for example every hour on game days.
Input parameters
All fields are optional. Running with an empty input {} returns every current injury for the NFL, NBA, MLB and NHL.
{"leagues": ["nfl", "nba", "mlb", "nhl"],"statusFilter": "all"}
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| leagues | array | No | ["nfl", "nba", "mlb", "nhl"] | Leagues to fetch. Supported: nfl, nba, wnba, mlb, nhl. |
| statusFilter | string | No | "all" | One of all, active, out, day-to-day, questionable, doubtful, injured-reserve, injured-list (any MLB IL), suspension. Case-insensitive. Rare statuses such as Paternity are returned only under all. |
| teams | array | No | all teams | Team abbreviations (KC), names or nicknames (Lakers, Boston Red Sox), or ESPN team IDs (22). Abbreviations can match teams in more than one league (KC is both the Chiefs and the Royals), so pair this with leagues. |
| maxItems | integer | No | 0 | Stop after this many rows. 0 means no cap. |
Output example
Real rows from a run on October 16, 2026:
[{"league": "nfl","team_id": "33","team": "Baltimore Ravens","team_abbreviation": "BAL","athlete_id": "3916387","athlete": "Lamar Jackson","athlete_short": "L. Jackson","position": "QB","position_name": "Quarterback","status": "Questionable","injury_type": "questionable","injury": "Ankle","injury_detail": "Sprain","injury_side": "Left","return_date": "2026-10-18","fantasy_status": "QUESTIONABLE","date_utc": "2026-10-15T20:40:00Z","short_comment": "Jackson (ankle) officially went down as a non-participant at Thursday's practice.","long_comment": "Jackson wasn't spotted by reporters earlier in the day, and Baltimore's injury report confirms his second absence in as many days to begin Week 6 prep. ...","source": "RotoWire","player_url": "https://www.espn.com/nfl/player/_/id/3916387/lamar-jackson","headshot_url": "https://a.espncdn.com/i/headshots/nfl/players/full/3916387.png","fetched_at": "2026-10-16T14:51:29.155050Z"},{"league": "mlb","team_id": "29","team": "Arizona Diamondbacks","team_abbreviation": "ARI","athlete_id": "4866477","athlete": "Tyler Locklear","athlete_short": "T. Locklear","position": "1B","position_name": "First Baseman","status": "60-Day-IL","injury_type": "60-day IL","injury": "Thumb","injury_detail": "Fracture","injury_side": "Right","return_date": "2027-02-01","fantasy_status": "60-Day IL","date_utc": "2026-09-12T21:22:00Z","short_comment": "The Diamondbacks optioned Locklear to Triple-A Reno on Monday.","long_comment": "Locklear ended up being a casualty of the 26-man active roster after the Diamondbacks needed to clear a spot ...","source": "RotoWire","player_url": "https://www.espn.com/mlb/player/_/id/4866477","headshot_url": "https://a.espncdn.com/i/headshots/mlb/players/full/4866477.png","fetched_at": "2026-10-16T14:51:29.155050Z"}]
Long comments are shortened above. The dataset contains the full text.
Use Sports Injury Reports API from Python or JavaScript
Install the Apify API client and use your API token.
Python
from apify_client import ApifyClientclient = ApifyClient("<APIFY_TOKEN>")run = client.actor("parsebird/sports-injury-reports-api").call(run_input={"leagues": ["nfl"],"statusFilter": "questionable",})for row in client.dataset(run["defaultDatasetId"]).iterate_items():print(row["team_abbreviation"], row["athlete"], row["position"], row["injury"], row["status"])
JavaScript
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: '<APIFY_TOKEN>' });const run = await client.actor('parsebird/sports-injury-reports-api').call({leagues: ['nba', 'wnba'],statusFilter: 'out',teams: ['Lakers', 'Celtics'],});const { items } = await client.dataset(run.defaultDatasetId).listItems();items.forEach((row) => console.log(row.team, row.athlete, row.injury, row.return_date));
Use cases
- Fantasy sports tools: flag Questionable and Out players before lineup lock and send start/sit alerts.
- Sports betting models: add player availability and injury severity as features next to odds data.
- Injury news bots: post new or changed injuries to Discord, Slack or Telegram from a scheduled run.
- Daily digests and dashboards: load a daily snapshot into Google Sheets, BigQuery or a BI tool and track how injury lists change over a season.
- Team and media research: compare injured-list usage, body parts and return timelines across teams and leagues.
How it works
- The Actor requests ESPN's public injuries feed once per selected league, and all leagues are fetched in parallel.
- Each listed injury becomes one row. Team, player, position, status, injury details and analyst notes are normalized into flat fields, and timestamps are converted to ISO 8601 UTC.
- Your status and team filters are applied, then
maxItemscaps the output. - Rows are saved to the run's dataset, ready to export or read through the API.
If a league is temporarily unreachable, the run retries it and still saves the other leagues. A league in its off-season may list few or no injuries.
How much does it cost to get sports injury data?
Sports Injury Reports API uses pay-per-event pricing. You pay per injury row saved, and platform usage (compute and data transfer) is included in that price.
| Plan | Price per injury row | Price per 1,000 rows |
|---|---|---|
| Free | $0.00029 | $0.29 |
| Bronze, Silver, Gold | $0.00025 | $0.25 |
On October 16, 2026, a default run (NFL, NBA, MLB, NHL, all statuses) returned 1,346 rows, which costs about $0.39 on the Free plan and $0.34 on paid plans. With statusFilter: "out" the same run returned 93 rows (about $0.03). Row counts change with the season. To control spend, narrow leagues, statusFilter or teams, or set maxItems. The run also stops at the maximum cost per run that you set in Apify Console.
Is it legal to scrape ESPN injury reports?
This Actor only reads injury information that ESPN publishes on public pages, without logging in or getting around any paywall. Scraping publicly available data is generally legal, but you are responsible for how you use it and for following ESPN's terms of use, especially if you republish the analyst notes. If you aren't sure, consult a lawyer. Read more on the Apify blog about web scraping legality.
This Actor is unofficial and isn't affiliated with, endorsed by or sponsored by ESPN, RotoWire or any league.
Other sports scrapers from ParseBird
- Sports Betting Odds Scraper: moneyline, spread and totals odds for NFL, NBA, MLB, NHL, soccer, UFC and more.
- PrizePicks Scraper: PrizePicks player props, projections and lines for every active league.
- MLB Stats Scraper: MLB teams, rosters, schedules, standings, player stats and box scores.
- SofaScore Scraper: live scores, fixtures, lineups, statistics and standings across sports.
- FlashScore Scraper: live and scheduled scores for football, basketball, tennis and 13 other sports.
- Kalshi Scraper: Kalshi prediction market events, prices and volume.
FAQ
Where does the injury data come from?
From the injury reports ESPN publishes for each league, the same data behind pages like espn.com/nfl/injuries. Most analyst notes are written by RotoWire, and the source field says who wrote each one.
How often is the data updated?
ESPN updates injury notes throughout the day, and date_utc shows when each note last changed. Every run fetches the latest version. For near-real-time data, schedule the Actor to run every hour or more often on game days.
Why do NFL results include players with status "Active"?
ESPN keeps players who were recently injured on the list with status Active once they are cleared to play, and each one comes with a note about their return. Use statusFilter to drop or isolate them.
Why are injury details or the return date sometimes empty?
ESPN doesn't list a body part, side or return date for every player, for example for many Active NFL players. Those fields are null when ESPN leaves them out.
Which statuses does each league use? In the run used for this README, the NFL listed Active, Questionable, Doubtful, Out, Injured Reserve and Suspension. The NBA listed Day-To-Day and Out, the NHL Day-To-Day, Out and Injured Reserve, and the WNBA Out. MLB listed 7, 10, 15 and 60-Day IL, Day-To-Day, Out, Suspension and Paternity.
Do you support college football or soccer? Not at the moment. ESPN's injury feed for college sports was nearly empty and out of date when we tested it, and it returned no data for the Premier League.
Can I export to CSV or Excel, or use it with Zapier or Make? Yes. Every dataset can be downloaded as JSON, CSV, Excel, XML or HTML, and the Actor works with Make, Zapier, n8n, Google Sheets and other integrations. Code snippets for every language are on the API tab.
Something looks wrong or missing. What should I do? Open an issue on the Issues tab with the leagues and filters you used, and we'll look into it.