The Basketball API for developers ballers.

NBA and NCAA basketball under one API: live scores, player props with historical hit rates, box scores, season stats, and a matchup endpoint that returns the whole game preview in one call. Sub-100ms REST.

1,000 req/day free (2,000 with GitHub). No credit card.

NBA · NCAA Men's Basketball · 2025/26 + NBA historical to 1946

Building NBA-only? The NBA API page goes deeper on props, season history, and the matchup endpoint. See the NBA API →

Stats included

Every basketball stat field the API returns today — 76 in total, grouped by how they are produced. Each group carries its own freshness, because a sport is rarely uniformly current.

Per-game player stats

Post-game

Written after the game ends — not a live in-game feed. Last ingested 2026-08-30.

Endpoint
/v1/players/:id/stats
Last updated
2026-08-30

Fields (14)

Assists, Blocks, Defensive Rebounds, Field Goals Made/Attempted, Personal Fouls, Free Throws Made/Attempted, Minutes Played, Offensive Rebounds, Plus/Minus, Points, Rebounds, Steals, Three Point Field Goals Made/Attem, Turnovers

Season player stats

Historical

Held and queryable, but not currently being ingested. Last ingested 2026-06-03.

Endpoint
/v1/nba/players/:id/splits
Last updated
2026-06-03

Fields (46)

Ast %, Ast Ratio, Ast to, Defensive Rating, Dreb %, E Defensive Rating, E Net Rating, E Offensive Rating, E Pace, E Tov %, E Usg %, Efg %, Games Played, Losses, Minutes, Net Rating, Offensive Rating, Oreb %, Pace, Pace Per40, Pie, Poss, Rebounds %, Tm Tov %, Ts %, Usg %, W %, Wins, Ast, Blk, Dreb, Fg3 %, Fg3a, Fg3m, FG %, Fga, Fgm, Ft %, Fta, Ftm, Oreb, Pf, Points, Rebounds, Stl, Turnover

Team stats (per game)

Post-game

Written after the game ends — not a live in-game feed. Last ingested 2026-08-30.

Endpoint
/v1/matches/:id/statistics
Last updated
2026-08-30

Fields (26)

Assists, Blocks, Defensive Rebounds, Fast Break Points, Field Goal %, Field Goals Made/Attempted, Flagrant Fouls, Personal Fouls, Free Throw %, Free Throws Made/Attempted, Largest Lead, Lead Changes, Time Leading %, Offensive Rebounds, Points in the Paint, Score, Steals, Team Turnovers, Technical Fouls, Three-Point %, Three Point Field Goals Made/Attem, Total Rebounds, Total Technical Fouls, Total Turnovers, Turnover Points, Turnovers

Not included

  • Not shown here — player_per_game_box (new granularity, not yet mapped for display).
  • Not shown here — player_season_general: 176 raw upstream season keys with no route serving them.
  • Not shown here — play_by_play: play-by-play events, not a stat line — mostly identifiers once classified.
  • Not shown here — lineups: lineup composition, not a measured stat.
  • Not shown here — props: betting lines and prices, not stats — they belong on the odds surface.
  • player_season is not currently ingesting (last 2026-06-02).
  • player_season_advanced is not currently ingesting (last 2026-06-03).

Missing a stat?

We build what people actually ask for. If a field you need is not on this page, tell us — requests are how we decide what to add next.

Name the field or the endpoint shape. Specifics help more than categories.

Goes straight to the team as a product signal. No newsletter, no account, nothing else done with your address.

What you can build

  • Player props tracker

    Surface prop hit rates over the last N games and find the edge before tip-off.

  • Live score widget

    Embed real-time NBA and NCAA basketball scores on any site.

  • Matchup preview page

    Season stats, last-5, rest days, roster, and H2H for both teams in one call.

  • Fantasy / DFS optimizer

    Season averages, matchup stats, and injury status in one feed.

  • Betting research tool

    Odds, against-the-spread records, and player-prop ladders in one place.

Walk through it end to end: How to build a fantasy basketball app.

Endpoints

On the gateway at api.bigballsdata.com. Authenticate with the bearer token from /dashboard/keys.

MethodPathReturnsPlan
GET/v1/matches?sport=basketballLive + scheduled basketball games (NBA + NCAAB)Free
GET/v1/nba/games/:match_id/matchupFull matchup intelligence endpointFree
GET/v1/nba/players/:player_id/propsPlayer prop lines + rolling hit ratesFree
GET/v1/nba/players/:player_id/statsPer-season player aggregatesFree
GET/v1/nba/leadersStatistical leaders with team affiliationFree
GET/v1/standings?sport=basketball&league=nbaConference + division standingsFree
GET/v1/matches/:id/odds?sport=basketballPre-match + in-play odds across 16+ booksEdge
GET/v1/injuries?sport=basketballActive injury reportsFree

Start on the free tier

100 requests per minute and 1,000 per day, free — the highest per-minute burst of any free sports API we checked. Burst is what matters when something asks several questions in a row and waits on each answer.

  • Every sport and league we cover — the paid tiers add history depth and premium fields, not more leagues.
  • Calls are counted one for one — no credit weighting, no markets-times-regions arithmetic.
  • Link GitHub and the daily cap goes to 2,000.
  • No credit card.
Get a key →

Or ask your AI tool directly

Connect your account to Claude, ChatGPT, Cursor, Perplexity or any other MCP-compatible tool and ask for basketball data in conversation — scores, standings, player stats and Elo ratings, with no API key to paste and no code to write. Your plan and limits carry over exactly as they do here.

Connect your AI tool →

Integrate in a few lines

Node.js, @bigballsdata/sdktypescript
import { BigBallSportsClient } from '@bigballsdata/sdk';

const client = new BigBallSportsClient(process.env.BBS_API_KEY!);

// Tonight's matchup, fully assembled in one call.
const matchup = await client.nba.games.matchup(gameId);
for (const p of matchup.home_team.players) {
  console.log(p.name, p.season_averages?.pts ?? '-', 'ppg');
}

Free covers a real app. Scale when you need to.

1,000 req/day free (2,000 with GitHub). Production starts at $49/mo. Live WebSocket push on Pro+.

Frequently asked

Is there a free basketball API?
Yes. Scores, box scores, standings, player profiles, props, and injury reports at 1,000 requests/day (2,000 with GitHub), no credit card.
Does it cover NCAA basketball?
Yes. NCAA men's basketball runs on the same basketball surface as the NBA; filter with ?league=ncaab. NBA has the deepest coverage (props, matchup intelligence, and season history).
Does the basketball API include player props?
Yes. /v1/nba/players/:player_id/props returns the latest prop line we hold plus a rolling hit rate over the last N games, computed from box scores. Every response carries a `freshness` block derived from the line’s own timestamp (`data_as_of`, age in days, and a status of live/recent/stale), so you always know whether a returned line is a current price. The NBA is between seasons right now, so the newest lines are from June and report as stale; live pricing resumes with the season.
How fast are live basketball scores?
The REST scores endpoint refreshes on a 15-second cache during live games (~200ms typical round trip). WebSocket push is on the Pro plan.

Leagues in this sport

Every league we serve for this sport, each with its own endpoints and coverage.

Get an API key in 30 seconds