NBA injury and player availability API

NBA injury reports grouped by team: each player's status, the injury, comments and report date, plus a normalized availability value per player (OUT, DOUBTFUL, QUESTIONABLE and so on). One key, JSON over REST.

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.

AvailableReturned NBA data when checked.

Endpoint

  • GET/api/v1/sports/basketball/leagues/nba/injuries
  • GET/api/v1/sports/basketball/leagues/nba/player-availability
  • Without team the league-wide feed is limited to the 25 most recent records per team; pass team for a complete team report.

Live NBA example

Request

curl -H "Authorization: Bearer $RSA_API_KEY" \
  "https://www.realtimesportsapi.com/api/v1/sports/basketball/leagues/nba/injuries"

Response captured from live data at 2026-11-07 14:25 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 92 records.

Response

{
  "success": true,
  "data": {
    "count": 92,
    "groups": [
      {
        "team": {
          "id": "1",
          "displayName": "Atlanta Hawks"
        },
        "injuries": [
          {
            "athlete": {
              "id": "4701230",
              "displayName": "Jalen Johnson",
              "position": "F"
            },
            "team": {
              "id": "1",
              "displayName": "Atlanta Hawks"
            },
            "status": "Out",
            "fantasyStatus": "OUT",
            "type": "out",
            "bodyPart": "Ankle",
            "location": "Leg",
            "side": "Left",
            "injuryId": "537863",
            "returnDate": "2026-11-07",
            "date": "2026-11-06T22:06Z",
            "shortComment": "Johnson (ankle) is out for Friday's game against the Wizards.",
            "longComment": "This will be Johnson's third straight game on the sidelines, and for now, he should be considered questionable for Saturday's meeting with the Nets. Luguentz Dort should continue to start in his absence, while Nickeil Alexander-Walker and O..."
          },
          {
            "athlete": {
              "id": "4585618",
              "displayName": "Keshon Gilbert",
              "position": "G"
            },
            "team": {
              "id": "1",
              "displayName": "Atlanta Hawks"
            },
            "status": "Out",
            "fantasyStatus": "OUT",
            "type": "out",
            "bodyPart": "Knee",
            "location": "Leg",
            "detail": "Inflammation",
            "side": "Left",
            "injuryId": "537791",
            "returnDate": "2026-11-07",
            "date": "2026-11-05T22:41Z",
            "shortComment": "Gilbert is out for Friday's game against the Wizards due to left knee inflammation.",
            "longComment": "Gilbert, who is on a two-way deal with Atlanta, will presumably begin the season with the G League's College Park Skyhawks once he returns to health. He can be considered day-to-day until more information on his injury comes to light."
          }
        ]
      }
    ],
    "injuries": [
      {
        "athlete": {
          "id": "4701230",
          "displayName": "Jalen Johnson",
          "position": "F"
        },
        "team": {
          "id": "1",
          "displayName": "Atlanta Hawks"
        },
        "status": "Out",
        "fantasyStatus": "OUT",
        "type": "out",
        "bodyPart": "Ankle",
        "location": "Leg",
        "side": "Left",
        "injuryId": "537863",
        "returnDate": "2026-11-07",
        "date": "2026-11-06T22:06Z",
        "shortComment": "Johnson (ankle) is out for Friday's game against the Wizards.",
        "longComment": "This will be Johnson's third straight game on the sidelines, and for now, he should be considered questionable for Saturday's meeting with the Nets. Luguentz Dort should continue to start in his absence, while Nickeil Alexander-Walker and O..."
      },
      {
        "athlete": {
          "id": "4585618",
          "displayName": "Keshon Gilbert",
          "position": "G"
        },
        "team": {
          "id": "1",
          "displayName": "Atlanta Hawks"
        },
        "status": "Out",
        "fantasyStatus": "OUT",
        "type": "out",
        "bodyPart": "Knee",
        "location": "Leg",
        "detail": "Inflammation",
        "side": "Left",
        "injuryId": "537791",
        "returnDate": "2026-11-07",
        "date": "2026-11-05T22:41Z",
        "shortComment": "Gilbert is out for Friday's game against the Wizards due to left knee inflammation.",
        "longComment": "Gilbert, who is on a two-way deal with Atlanta, will presumably begin the season with the G League's College Park Skyhawks once he returns to health. He can be considered day-to-day until more information on his injury comes to light."
      }
    ]
  },
  "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": 1796083200000
    }
  }
}

Code samples

curl

curl -H "Authorization: Bearer $RSA_API_KEY" \
  "https://www.realtimesportsapi.com/api/v1/sports/basketball/leagues/nba/injuries"

JavaScript (fetch)

const res = await fetch("https://www.realtimesportsapi.com/api/v1/sports/basketball/leagues/nba/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/basketball/leagues/nba/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 "basketball" and league "nba" and summarize the current injury report by team for NBA.

Connect the hosted MCP server first: setup guide. Each tool call counts as one API call.

Each request above is 1 call. Free covers 125 calls a month after a 1,000-call first month, at 1 request/second. Starter is $29/month for 10,000 calls (about 333 a day) plus webhooks and WebSocket, so you stop polling for changes; 7-day free trial. Compare plans

Fields

FieldTypeNotes
countinteger
groupsobject[]
injuriesInjury[]

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
Business$179/mo ($1,790/yr)150,000/mo40/s300,000 msgs/mo75,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

Is there a free NBA injury API?
Yes. A free key (no card) includes every endpoint and league: 1,000 calls in the first 30 days, then 125 a month at 1 request per second. Paid plans start at $29/month for 10,000 calls and add webhooks and WebSocket.
How do I get one team's NBA injury report?
Call /injuries?team={teamId}. Team ids come from the /teams endpoint.
How do I find out when a player's status changes?
Poll /player-availability/history with since= set to your last check. It is a league-wide feed of availability changes, newest first; filter with team= or status=.
How fresh is the injury data?
Each request reads the current report. Data typically runs 20-30 seconds behind live play, so it suits apps, alerts, dashboards and bots, not in-play betting.

Related