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.

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

FieldTypeNotes
countinteger
groupsobject[]
injuriesInjury[]

League support

Checked against live data on 2026-10-04: 4 available, 1 limited, 1 seasonal or not verified, 23 not available.

Available
College Football

Only a handful of records are published for college football.

Limited
Available
Seasonal / not verified
Available
Available
Not available
Not available
Not available
Not available
Not available
Not available
Not available
Not available
Not available
Not available
Not available
Not available
Not available
Not available
Not available
Not available

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

PlanPriceCallsRateWebSocketWebhooks
Free$0125/mo (1,000 first 30 days)1/s500 msgs/moNo
Starter$29/mo ($290/yr)10,000/mo5/sShares monthly poolShares monthly pool
Growth$49/mo ($490/yr)25,000/mo10/sShares monthly poolShares monthly pool
Pro$99/mo ($990/yr)50,000/mo20/s100,000 msgs/mo25,000/mo
Scale$299/mo ($2,990/yr)500,000/mo100/s500,000 msgs/mo100,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.