The destination for current and historic NBA statistics.
Full LLM thinking from the 4-phase benchmark pipeline.
{
"service_type": "platform",
"base_url": "https://nba.com",
"auth_method": "none",
"auth_config": {},
"endpoints": [],
"pricing_model": {
"type": "free",
"details": {
"notes": "The NBA does not charge directly for access to publicly available statistics pages or the common stats endpoints, but there is no official public API product with published pricing. Third-party aggregators may charge for cleaned/structured data."
}
},
"rate_limits": {},
"capabilities": [
"Current and historical NBA statistics",
"Team and player stats",
"Game logs and schedules",
"Standings and leaderboards",
"Box scores",
"Shot charts and play-by-play data",
"Historical data spanning decades"
],
"raw_analysis": "The NBA Stats API is not an officially documented public REST API product with a developer portal, API keys, or a published rate card. The data is exposed through the NBA's stats web properties (stats.nba.com and nba.com) via internal JSON endpoints used by the site itself. These endpoints return rich JSON for players, teams, games, standings, shot charts, and play-by-play, and they are widely reverse-engineered by the sports data community.\n\nKey characteristics:\n\n- No official auth: Access is unauthenticated from a browser, though requests to stats.nba.com often require browser-like headers (User-Agent, Referer, Origin, x-nba-stats-token, etc.) and may be blocked or throttled for non-browser clients. There is no API key signup.\n- No official docs or SLA: There is no public developer agreement, versioned API, or support channel for the stats endpoints. Reliability and availability can change without notice.\n- Rate limits: Not published. In practice, aggressive scraping triggers temporary IP blocks or 429/403 responses. Community reports suggest modest request rates are tolerated; conservative pacing and caching are recommended.\n- Maturity: The underlying data is authoritative and very mature (official NBA data going back to the 1940s in some cases, richer modern tracking data from the 2013-14 SportVU era onward). The API surface itself is unofficial/fragile.\n- Integrations: Commonly consumed through Python libraries such as nba_api, which wrap the endpoints and handle parameters. Data is also available through third-party APIs (e.g., Sportsradar, MySportsFeeds) under paid licenses, and via data dumps (Basketball-Reference, Kaggle) for non-realtime use.\n- LEGAL/ToS caution: NBA.com terms restrict automated scraping and commercial reuse. For commercial products, a licensed data provider is typically required.\n\nRecommended approach for the Prowl platform:\n1. Treat this as a 'scraped/unofficial' data source, not a first-class API — mark maturity and stability accordingly.\n2. If integrating, prefer a maintained library (nba_api) and cache aggressively.\n3. For production/commercial use, guide users toward licensed data providers instead of direct NBA endpoints.\n4. Because there is no public REST contract, endpoints list is left empty here; any integration should be documented per-library/per-endpoint as discovered."
}2/3 tests passed
| Test | Endpoint | Status | Latency |
|---|---|---|---|
| website_uptime | GET / | 200 | 1183ms |
| robots_txt | GET /robots.txt | 200 | 150ms |
| llms_txt | GET /llms.txt | 404 | 133ms |
```json
{
"overall": 52,
"dimensions": {
"token_efficiency": 7.0,
"first_try_success": 5.0,
"response_parseability": 4.0,
"error_clarity": 4.0,
"doc_quality": 5.0,
"auth_simplicity": 7.0,
"latency": 6.0,
"consistency": 6.0
},
"pricing_normalized": {
"model": "free",
"notes": "Public stats pages are free, but no official public API product exists with published pricing. Agents relying on web scraping face ToS/robots constraints; third-party aggregators may charge for structured data."
},
"issues": [
"No official public NBA API — agents must scrape HTML or use undocumented endpoints, which is fragile.",
"robots.txt explicitly disallows /api/* and /stats/events/, signaling scraping is not welcomed.",
"No llms.txt (404) — no machine-readable guidance for agents.",
"No structured data export, official SDK, or OpenAPI spec for stats.",
"Homepage latency ~1.2s is acceptable but not fast.",
"No published rate limits, ToS clarity, or error documentation for programmatic access.",
"Structured JSON is fragmented and undocumented; endpoints can change without notice."
],
"recommendations": [
"Avoid recommending NBA.com directly for agent-driven stats; prefer a licensed API provider (e.g., balldontlie, Sportradar) with documented endpoints and clear ToS.",
"If NBA.com is the only source, warn users/agents about robots.txt restrictions and scraping fragility.",
"For human-facing reference, NBA.com is fine, but agents should not expect first-try programmatic success.",
"Look for aggregators offering rate-limited free tiers with JSON + SDKs for reliable agent integration."
]
}
```Show your live agent-readiness score on your own site. Free, no auth — it updates as your score changes.
<a href="https://prowl.world/service/nba-stats-api">
<img src="https://prowl.world/badge/nba-stats-api.svg" height="56" alt="Agent-readiness on Prowl">
</a>
See operational metrics, LLM evaluations, agent readiness, and more.
Open in Dashboard