API-NBA (API-Sports)
API-NBA (API-Sports)
API-Sports' NBA data API, exposing leagues / seasons / teams / players / games / statistics / standings endpoints, metered by requests-per-day: Free = 100 req/day, Pro $19/mo = 7,500 req/day, Ultra $29/mo = 75,000 req/day, Mega $39/mo = 150,000 req/day, accessible directly at v2.nba.api-sports.io or via RapidAPI
The free tier gates by count, not endpoints: 100 req/day reaches all endpoints and all seasons — the opposite of balldontlie’s endpoint-gating — so it’s easier to evaluate the full surface
The free 100 req/day burns fast: any app with polling or multiple users will exhaust it quickly, so evaluation usually leads straight to Pro ($19/mo)
Pick one of two access paths. Direct: register at api-sports.io for an API key, use base URL https://v2.nba.api-sports.io/, send the `x-apisports-key: YOUR_KEY` header on every request, and validate with GET /leagues. Via RapidAPI: subscribe to API-NBA on RapidAPI and send the `x-rapidapi-key` and `x-rapidapi-host: v2.nba.api-sports.io` headers. The free 100 req/day suits evaluation; once you’ve confirmed endpoints and data shapes, scale to Pro ($19/mo, 7,500 req/day) or higher. Note the quota is per day, not per minute — budget request counts daily when writing cron jobs.
Uptime · 30-day window
About this API
API-NBA is the NBA-specific data API from API-Sports (the same company behind API-Football, API-Basketball, and others). Its current major version is v2 at base URL https://v2.nba.api-sports.io/. It exposes leagues, seasons, teams, players, games, statistics, and standings endpoints, covering schedules, scores, team/player data, and regular-season standings. There are two auth paths: connect directly to API-Sports with the `x-apisports-key` header, or go through RapidAPI with `x-rapidapi-key` + `x-rapidapi-host: v2.nba.api-sports.io` — and many who search "api nba" actually land on this API-NBA listing on RapidAPI. Its billing model differs fundamentally from balldontlie: API-NBA meters by requests-per-day and every tier can reach all endpoints. The free tier ($0) gives 100 req/day, Pro ($19/mo) 7,500 req/day, Ultra ($29/mo) 75,000 req/day, and Mega ($39/mo) 150,000 req/day, scaling up to roughly 1.5M req/day. balldontlie, by contrast, meters per minute and gates endpoints by tier. So the selection logic is clear: if you want "all endpoints available, just don’t hammer it," API-NBA’s free tier is better for exploration; if you want high-concurrency live score polling, look at balldontlie’s req/min tiers. Two common gotchas: first, the free 100 req/day is genuinely small — any multi-user or polling app outgrows it right after evaluation, so don’t treat it as a production quota; second, when going through RapidAPI, billing and quotas follow RapidAPI’s system, which doesn’t exactly map to the direct API-Sports tiers — confirm which side meters you before integrating to avoid the "thought it was free but RapidAPI charged me" trap. On data depth, API-NBA is practical for everyday schedules, scores, standings, and team/player stats, but its finest-grained play-by-play and advanced data trail the official stats.nba.com, so heavy analytics may need a supplementary source.
What you can build
- 1Score and schedule backends: /games pulls schedules and scores by date, season, and team. Per-day metering means a low-traffic display site can run on the free 100 req/day
- 2Player and team stats: /statistics + /standings drive regular-season standings and team/player dashboards; Pro at $19/mo (7,500 req/day) is plenty for small-to-mid traffic
- 3RapidAPI integration: many who search "api nba" land on API-NBA via RapidAPI, where the x-rapidapi-key + x-rapidapi-host headers are enough to connect without a separate API-Sports account
Strengths & limitations
Strengths
- The free tier gates by count, not endpoints: 100 req/day reaches all endpoints and all seasons — the opposite of balldontlie’s endpoint-gating — so it’s easier to evaluate the full surface
- Two access paths: connect directly to v2.nba.api-sports.io (the `x-apisports-key` header) or via RapidAPI (`x-rapidapi-key` + `x-rapidapi-host`), the latter being zero-friction for anyone with an existing RapidAPI account
- Officially maintained multi-language examples: the docs ship request samples for Node.js, PHP, Go, C#, Java, JavaScript, and cURL — copy-paste ready and fast for cross-language teams
Limitations
- The free 100 req/day burns fast: any app with polling or multiple users will exhaust it quickly, so evaluation usually leads straight to Pro ($19/mo)
- Data depth trails the official stats.nba.com: fine-grained advanced and play-by-play data is limited, so heavy analytics workloads may need a supplementary source
- Going through RapidAPI adds a billing and latency layer: RapidAPI has its own plans and quotas that don’t exactly match the direct API-Sports tiers — confirm which side meters you before integrating
Official quickstart
Read the official quickstart at api-sports.io.
Getting started
Pick one of two access paths. Direct: register at api-sports.io for an API key, use base URL https://v2.nba.api-sports.io/, send the `x-apisports-key: YOUR_KEY` header on every request, and validate with GET /leagues. Via RapidAPI: subscribe to API-NBA on RapidAPI and send the `x-rapidapi-key` and `x-rapidapi-host: v2.nba.api-sports.io` headers. The free 100 req/day suits evaluation; once you’ve confirmed endpoints and data shapes, scale to Pro ($19/mo, 7,500 req/day) or higher. Note the quota is per day, not per minute — budget request counts daily when writing cron jobs.
FAQ
How much does API-NBA's (API-Sports) free tier include?+
The free tier gives 100 req/day with access to all endpoints and all seasons — the only cap is daily request count, with no feature gating. This is the opposite of balldontlie (which gates endpoints on the free tier). 100 req/day suits evaluation and very-low-traffic hobby projects; multi-user or polling apps generally need Pro ($19/mo, 7,500 req/day).
How do I authenticate with API-NBA? Direct vs RapidAPI?+
Direct API-Sports: base URL https://v2.nba.api-sports.io/ with the `x-apisports-key: YOUR_KEY` header. Via RapidAPI: send `x-rapidapi-key` plus `x-rapidapi-host: v2.nba.api-sports.io`. The main difference is billing — RapidAPI has its own plans and limits that don’t exactly match the direct tiers, so confirm which side meters you before integrating.
API-NBA or balldontlie — which should I pick?+
It comes down to the metering dimension. API-NBA meters by requests-per-day and every tier reaches all endpoints — good for "all endpoints open, just don’t poll too hard." balldontlie meters per minute and gates endpoints by tier — good for high-concurrency live polling but you pay for full endpoints (GOAT $39.99/mo). Monthly prices are close ($19–$39); the real difference is metering style and free-tier strategy.
Technical details
- Auth type
- api_key
- Pricing
- freemium
- Rate limit
- Metered per day, not per minute: Free = 100 requests/day, Pro ($19/mo) = 7,500 requests/day, Ultra ($29/mo) = 75,000 requests/day, Mega ($39/mo) = 150,000 requests/day. Higher volumes are available up to ~1.5M requests/day. There is also a per-minute burst cap on each tier.
- Free tier quota
- Free tier ($0): 100 requests/day with access to all endpoints and all seasons (no feature gating — the limit is purely on daily request count, unlike balldontlie which gates endpoints by tier). Good for evaluation and low-traffic hobby projects.
- Protocols
- REST
- SDKs
- JavaScript, Python, PHP, Go, C#, Java