NBA API

Realtime Sports API serves NBA games through the same REST endpoints and JSON schema as every other league, using sport=basketball and league=nba. You get the current scoreboard, live scores, game detail, play-by-play, teams, rosters and news and the injury report. Not currently available or not verified for this league: betting odds. 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.

Slugs
sport=basketball
league=nba
Teams
30
Season (from data)
2026-27 Preseason
In the scoreboard now
2 games

Recent NBA results

NBA games from the API
DateAwayHomeTime / ResultTVVenue
Sun, Oct 4Golden State WarriorsLA Clippers(neutral)101 - 104 FinalStan Sheriff Center · Honolulu, HI
Sun, Oct 4Utah JazzDenver Nuggets109 - 97 FinalCU Events Center · Boulder, CO

From the /events endpoint for this league, refreshed every few minutes. Times are US Eastern. Full NBA schedule

Live example

Request

curl -H "Authorization: Bearer $RSA_API_KEY" \
  "https://www.realtimesportsapi.com/api/v1/sports/basketball/leagues/nba/events?limit=1"

Response captured from live data at 2026-10-05 02:11 UTC (refreshed every few minutes). Long arrays are trimmed; meta.rateLimit values are illustrative for a Free key.

Response

{
  "success": true,
  "data": [
    {
      "id": "401914127",
      "uid": "s:40~l:46~e:401914127",
      "name": "Utah Jazz at Denver Nuggets",
      "shortName": "UTAH @ DEN",
      "date": "2026-10-04T23:00Z",
      "status": {
        "state": "post",
        "completed": true,
        "period": 4,
        "clock": "0.0",
        "detail": "Final",
        "halftime": false,
        "firstHalfEnded": true
      },
      "homeTeam": {
        "id": "7",
        "name": "Denver Nuggets",
        "abbreviation": "DEN",
        "logo": "https://realtimesportsapi.com/api/images/proxy?id=GgcVSgNPTUMITUgaFFQVVVQXBVwOHV5LRQBZD1lbBllDXR0DW19AUlxGB0gHSkoYVg",
        "color": "0e2240",
        "alternateColor": "fec524",
        "winner": false,
        "score": 97
      },
      "awayTeam": {
        "id": "26",
        "name": "Utah Jazz",
        "abbreviation": "UTAH",
        "logo": "https://realtimesportsapi.com/api/images/proxy?id=GgcVSgNPTUMITUgaFFQVVVQXBVwOHV5LRQBZD1lbBllDXR0DW19AUlxGFlkIDBQGX10",
        "color": "4e008e",
        "alternateColor": "79a3dc",
        "winner": true,
        "score": 109
      },
      "competition": {
        "attendance": 7860,
        "neutralSite": false,
        "conferenceCompetition": false,
        "divisionCompetition": false,
        "playByPlayAvailable": true,
        "highlightsAvailable": true
      },
      "venue": {
        "id": "2207",
        "name": "CU Events Center",
        "city": "Boulder",
        "state": "CO",
        "indoor": true,
        "grass": false
      },
      "notes": [],
      "season": {
        "year": 2027,
        "displayName": "2026-27",
        "type": {
          "id": "1",
          "name": "Preseason",
          "abbreviation": "pre"
        },
        "week": {}
      },
      "broadcasts": [
        {
          "network": {
            "id": "1",
            "type": "National"
          },
          "type": "TV"
        }
      ],
      "officials": [
        {
          "id": "2615770",
          "fullName": "Rodney Mott",
          "displayName": "Rodney Mott",
          "order": 1,
          "position": "Referee"
        },
        {
          "id": "2616231",
          "fullName": "Che Flores",
          "displayName": "Che Flores",
          "order": 2,
          "position": "Referee"
        },
        {
          "id": "2616466",
          "fullName": "Mitchell Ervin",
          "displayName": "Mitchell Ervin",
          "order": 3,
          "position": "Referee"
        }
      ]
    }
  ],
  "meta": {
    "rateLimit": {
      "limit": 125,
      "remaining": 124,
      "reset": 1793491200000
    }
  }
}

NBA endpoints

Checked against live data on 2026-10-04. Paths are relative to /api/v1/sports/basketball/leagues/nba.

EndpointPathNBANotes
Live scores/events/liveAvailable
Events (scoreboard)/eventsAvailable
Event detail/events/{eventId}Available
Play-by-play/events/{eventId}/playsAvailable
Box score/events/{eventId}/boxscoreAvailable
Odds/events/{eventId}/oddsSeasonal / not verifiedPreseason or off-season when checked; no odds were returned for the games available.
Win probability/events/{eventId}/winprobabilitySeasonal / not verifiedA preseason game returned no series; regular season not yet checked.
Teams/teamsAvailable
Rosters/teams/{teamId}/rosterAvailable
Athletes/athletes/searchAvailable
Injuries/injuriesAvailable
News/newsAvailable
Schedule / weeks/seasons/{season}/scheduleAvailable
NCAA tournament/seasons/{season}/tournamentNot available
Webhooks/webhooksAvailable
WebSocket/websocket/authAvailable
  • Schedules are by date, not week: use /events for the current scoreboard and /seasons/{season}/schedule for a season. Week parameters return SCHEDULE_WEEKS_NOT_SUPPORTED.

Event object fields

Every NBA game in the events, live and schedule endpoints uses the same Event object as other leagues.

FieldTypeNotes
idstringEvent id; use it with the detail, plays, box score and odds endpoints.
uidstring
namestringFull matchup name.
shortNamestringAbbreviated matchup, e.g. "AWAY @ HOME".
datestringStart time, ISO-8601 UTC.
statusEventStatusstate (pre, in, post), completed, period, clock and display detail.
homeTeamEventTeamid, name, abbreviation, colors, logo (proxied), record, score, winner.
awayTeamEventTeamSame shape as homeTeam.
competitionobjectattendance, neutralSite, conference/division flags, playByPlayAvailable.
venueobjectVenue id, name, city, state, indoor, grass (null when unknown).
notesstring[]Headline notes, e.g. round or rivalry names.
seasonobjectyear, type (preseason/regular/postseason) and week where the league uses weeks.
broadcastsobject[]TV/stream networks for the game.
officialsobject[]Game officials when published.
oddsOddsOnly with includeOdds=true and when the game has odds.

Code samples

curl

curl -H "Authorization: Bearer $RSA_API_KEY" \
  "https://www.realtimesportsapi.com/api/v1/sports/basketball/leagues/nba/events?limit=5"

JavaScript (fetch)

const res = await fetch("https://www.realtimesportsapi.com/api/v1/sports/basketball/leagues/nba/events?limit=5", {
  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/events?limit=5",
    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_events with sport "basketball" and league "nba" and list the games it returns with start times, status and scores for NBA.

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.

29 leagues monitored live: NFL, college football, NBA, men's college basketball, MLB, NHL and 23 soccer competitions.

FAQ

Is there a free NBA API?
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. The same key works for all 29 leagues.
How fresh is the NBA 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. It is not intended for in-play betting that needs sub-second data.
Which NBA endpoints are available?
Available: live scores, events (scoreboard), event detail, play-by-play, box score, teams, rosters, athletes, injuries, news, schedule / weeks. Not available or not verified: odds (seasonal / not verified), win probability (seasonal / not verified), ncaa tournament (not available).
Does the NBA API include betting odds?
Not currently. Preseason or off-season when checked; no odds were returned for the games available. The odds endpoint returns data: null with a message when a game has no odds.
Does it include NBA injuries?
Yes. The injuries endpoint returned current NBA designations grouped by team, and player-availability normalizes them to values like OUT and QUESTIONABLE. Pass team for a complete team report.
Can I get NBA score updates pushed instead of polling?
Yes. 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. Both can be filtered to nba.