Injury report API
Current injury designations grouped by team, with status, injury type and comments, plus a normalized availability value per player (OUT, DOUBTFUL, QUESTIONABLE and so on). Data is aggregated from public sources and is typically 20-30 seconds behind live play (about 1 second after our source). There is no SLA.
- Without team the league-wide feed is limited to the 25 most recent records per team; pass team for a complete team report.
- Empty in the off-season. Not available for soccer.
Paths and parameters
GET/api/v1/sports/{sport}/leagues/{league}/injuries
Get injury report. Current injuries grouped by team. Without `team` the league-wide feed is truncated by the source to the 25 most recent records per team; with `team` the complete current report is returned. Empty in the off-season.
sport(path, required): Sport slug: football, basketball, baseball, hockey, soccer.league(path, required): League slug, e.g. nfl, college-football, nba, mens-college-basketball, mlb, nhl, eng.1, usa.1.team(query): Filter to one team id.
GET/api/v1/sports/{sport}/leagues/{league}/player-availability
Get normalized player availability. One normalized `availability` value per player (OUT, DOUBTFUL, QUESTIONABLE, PROBABLE, DAY_TO_DAY, INJURED_RESERVE, SUSPENDED, AVAILABLE, UNKNOWN).
sport(path, required): Sport slug: football, basketball, baseball, hockey, soccer.league(path, required): League slug, e.g. nfl, college-football, nba, mens-college-basketball, mlb, nhl, eng.1, usa.1.team(query): Filter to one team id.status(query): Filter to one normalized availability value.
Live example
Request
curl -H "Authorization: Bearer $RSA_API_KEY" \
"https://www.realtimesportsapi.com/api/v1/sports/football/leagues/nfl/injuries"Response captured from live data at 2026-10-05 02:07 UTC (refreshed every few minutes). Long arrays are trimmed; meta.rateLimit values are illustrative for a Free key. Trimmed to 1 team and 2 of 800 records.
Response
{
"success": true,
"data": {
"count": 800,
"groups": [
{
"team": {
"id": "22",
"displayName": "Arizona Cardinals"
},
"injuries": [
{
"athlete": {
"id": "4373626",
"displayName": "Tyler Allgeier",
"position": "RB"
},
"team": {
"id": "22",
"displayName": "Arizona Cardinals"
},
"status": "Active",
"type": "active",
"date": "2026-10-05T01:44Z",
"shortComment": "Allgeier rushed eight times for 42 yards and a touchdown in Sunday's 36-24 loss to the Giants. He added two catches for seven yards on two targets.",
"longComment": "After Jeremiyah Love appeared to distance himself from Allgeier in Week 3 against the 49ers, Allgeier ended up out-snapping the rookie running back against the Giants. Love out-carried Allgeier 14 to eight Sunday, but it was Allgeier who fo..."
},
{
"athlete": {
"id": "5084939",
"displayName": "Isaiah Adams",
"position": "G"
},
"team": {
"id": "22",
"displayName": "Arizona Cardinals"
},
"status": "Questionable",
"fantasyStatus": "QUESTIONABLE",
"type": "questionable",
"bodyPart": "Ankle",
"location": "Leg",
"detail": "Not Specified",
"side": "Not Specified",
"date": "2026-10-05T00:47Z",
"shortComment": "Adams suffered an ankle injury in Sunday's loss to the Giants, Theo Mackie of The Arizona Republic reports.",
"longComment": "Adams had to be carted to the locker room and was replaced by Jon Gaines at right guard for the remainder of the contest. Projected starter Chase Bistontis suffered a season-ending torn MCL earlier in the summer."
}
]
}
],
"injuries": [
{
"athlete": {
"id": "4373626",
"displayName": "Tyler Allgeier",
"position": "RB"
},
"team": {
"id": "22",
"displayName": "Arizona Cardinals"
},
"status": "Active",
"type": "active",
"date": "2026-10-05T01:44Z",
"shortComment": "Allgeier rushed eight times for 42 yards and a touchdown in Sunday's 36-24 loss to the Giants. He added two catches for seven yards on two targets.",
"longComment": "After Jeremiyah Love appeared to distance himself from Allgeier in Week 3 against the 49ers, Allgeier ended up out-snapping the rookie running back against the Giants. Love out-carried Allgeier 14 to eight Sunday, but it was Allgeier who fo..."
},
{
"athlete": {
"id": "5084939",
"displayName": "Isaiah Adams",
"position": "G"
},
"team": {
"id": "22",
"displayName": "Arizona Cardinals"
},
"status": "Questionable",
"fantasyStatus": "QUESTIONABLE",
"type": "questionable",
"bodyPart": "Ankle",
"location": "Leg",
"detail": "Not Specified",
"side": "Not Specified",
"date": "2026-10-05T00:47Z",
"shortComment": "Adams suffered an ankle injury in Sunday's loss to the Giants, Theo Mackie of The Arizona Republic reports.",
"longComment": "Adams had to be carted to the locker room and was replaced by Jon Gaines at right guard for the remainder of the contest. Projected starter Chase Bistontis suffered a season-ending torn MCL earlier in the summer."
}
]
},
"meta": {
"note": "League-wide feed is truncated by the provider to the 25 most recent records per team. Pass ?team={teamId} for a team's complete report.",
"rateLimit": {
"limit": 125,
"remaining": 124,
"reset": 1793491200000
}
}
}Fields
| Field | Type | Notes |
|---|---|---|
| count | integer | |
| groups | object[] | |
| injuries | Injury[] |
League support
Checked against live data on 2026-10-04: 4 available, 1 limited, 1 seasonal or not verified, 23 not available.
Only a handful of records are published for college football.
Code samples
curl
curl -H "Authorization: Bearer $RSA_API_KEY" \
"https://www.realtimesportsapi.com/api/v1/sports/football/leagues/nfl/injuries"JavaScript (fetch)
const res = await fetch("https://www.realtimesportsapi.com/api/v1/sports/football/leagues/nfl/injuries", {
headers: { Authorization: `Bearer ${process.env.RSA_API_KEY}` }
});
const { success, data, meta } = await res.json();
console.log(data, meta.rateLimit);Python (requests)
import os, requests
res = requests.get(
"https://www.realtimesportsapi.com/api/v1/sports/football/leagues/nfl/injuries",
headers={"Authorization": f"Bearer {os.environ['RSA_API_KEY']}"},
timeout=10,
)
body = res.json()
print(body["data"])MCP prompt (Claude, Cursor, ChatGPT)
Using the Realtime Sports MCP server (https://www.realtimesportsapi.com/api/mcp), call get_injuries with sport "football" and league "nfl" and summarize the current injury report by team for NFL.Connect the hosted MCP server first: setup guide. Each tool call counts as one API call.
Rate limits and pricing
| Plan | Price | Calls | Rate | WebSocket | Webhooks |
|---|---|---|---|---|---|
| Free | $0 | 125/mo (1,000 first 30 days) | 1/s | 500 msgs/mo | No |
| Starter | $29/mo ($290/yr) | 10,000/mo | 5/s | Shares monthly pool | Shares monthly pool |
| Growth | $49/mo ($490/yr) | 25,000/mo | 10/s | Shares monthly pool | Shares monthly pool |
| Pro | $99/mo ($990/yr) | 50,000/mo | 20/s | 100,000 msgs/mo | 25,000/mo |
| Scale | $299/mo ($2,990/yr) | 500,000/mo | 100/s | 500,000 msgs/mo | 100,000/mo |
Every successful REST call counts as one call. Over the limit you get HTTP 429 with a Retry-After header. No SLA. Full pricing.
FAQ
- What does the injuries endpoint return?
- Current injury designations grouped by team, with status, injury type and comments, plus a normalized availability value per player (OUT, DOUBTFUL, QUESTIONABLE and so on).
- Which leagues support injuries?
- Verified on 2026-10-04: NFL, NBA, MLB, NHL. Limited: College Football. Seasonal or not verified: Men's College Basketball. Not available: 23 other leagues.
- Is it free to try?
- Yes. The Free plan is $0 with 125 calls per month (1,000 in the first 30 days) at 1 request per second, no card required. Every successful call counts as one call.
- How fresh is the data?
- Data is aggregated from public sources and is typically 20-30 seconds behind live play (about 1 second after our source). There is no SLA.
- Can I get updates pushed instead of polling?
- Webhooks are included on every paid plan (Starter, Growth, Pro, Scale). WebSocket is included on paid plans, and the Free plan gets a 500-message monthly preview.