Season Stats & Analytics
Team tracking stats
NBA-only. leaguedashptstats in team mode, per game: drives,
touches, pullUp, catchShoot, passing, rebounding and
speedDistance slices, one row per team. A slice the team had no
row in is null. Written daily by statsapi:team-tracking.
Requires the stats entitlement (a paid plan). See Responses & Errors for the success envelope and availability rules.
https://api.sportquanta.com/v1/nba/team-trackingReference context: NBA.
Overview · Response conventions
Authorizations
AuthorizationstringheaderrequiredSend a workspace API token in the Authorization: Bearer <token> header.
Query Parameters
seasonintegerrequiredSeason start year (2025 for the 2025-26 season).
Required range: 1946 <= x, x <= 2100
limitintegerdefault:200Required range: 1 <= x, x <= 2000
provenancebooleandefault:falseOpt in to per-field provenance on supported single game, match, team, player, and venue reads. Lists and composites accept the flag but generally omit provenance. It is returned under _meta.provenance only when source metadata exists.
Response
application/jsonEvery stored row for the season.
Query validation failed. Depending on the handler, invalid_query_parameter is returned with HTTP 400 or 422. Pre-read validation is non-billable.
Missing or invalid bearer API token.
Access is forbidden: the token lacks api.read scope, the plan lacks an endpoint/bookmaker capability, or configured billing access is inactive. Inspect error.code and details.feature when present.
Hourly rate ceiling or monthly quota exceeded. The error code disambiguates
which limit was hit. X-RateLimit-* and X-Requests-*-Month response headers
carry the current state of both counters.
Token validation or an internal handler failed. Token-store failures use api_token_lookup_failed; unsupported internal sport dispatch can use data_layer_unavailable.
The data layer (Mongo / ClickHouse / Redis cache) is temporarily unreachable. The server attempted the lookup; it failed. Retry with backoff. Per the spec's order of evaluation, this DOES consume monthly quota — the request reached step 6.
The configured billing provider could not verify API access. The request is refused before the data handler and does not consume monthly quota.
dataobjectrequireddata.seasonintegerrequireddata.itemsobject[]requireddata.items.canonicalIdstringdata.items.teamIdstring | nulldata.items.seasonnumberdata.items.gamesPlayednumber | nulldata.items.minutesPerGamenumber | nulldata.items.drivesobject | nulldata.items.drives.drivesnumber | nulldata.items.drives.fieldGoalsMadenumber | nulldata.items.drives.fieldGoalsAttemptednumber | nulldata.items.drives.fieldGoalPctnumber | nulldata.items.drives.freeThrowsMadenumber | nulldata.items.drives.freeThrowsAttemptednumber | nulldata.items.drives.freeThrowPctnumber | nulldata.items.drives.pointsnumber | nulldata.items.drives.passesnumber | nulldata.items.drives.assistsnumber | nulldata.items.drives.turnoversnumber | nulldata.items.drives.foulsnumber | nulldata.items.touchesobject | nulldata.items.touches.touchesnumber | nulldata.items.touches.frontCourtTouchesnumber | nulldata.items.touches.timeOfPossessionnumber | nulldata.items.touches.avgSecondsPerTouchnumber | nulldata.items.touches.avgDribblesPerTouchnumber | nulldata.items.touches.pointsPerTouchnumber | nulldata.items.touches.elbowTouchesnumber | nulldata.items.touches.postTouchesnumber | nulldata.items.touches.paintTouchesnumber | nulldata.items.touches.pointsPerElbowTouchnumber | nulldata.items.touches.pointsPerPostTouchnumber | nulldata.items.touches.pointsPerPaintTouchnumber | nulldata.items.pullUpobject | nulldata.items.pullUp.fieldGoalsMadenumber | nulldata.items.pullUp.fieldGoalsAttemptednumber | nulldata.items.pullUp.fieldGoalPctnumber | nulldata.items.pullUp.threePointersMadenumber | nulldata.items.pullUp.threePointersAttemptednumber | nulldata.items.pullUp.threePointPctnumber | nulldata.items.pullUp.pointsnumber | nulldata.items.pullUp.effectiveFieldGoalPctnumber | nulldata.items.catchShootobject | nulldata.items.catchShoot.fieldGoalsMadenumber | nulldata.items.catchShoot.fieldGoalsAttemptednumber | nulldata.items.catchShoot.fieldGoalPctnumber | nulldata.items.catchShoot.threePointersMadenumber | nulldata.items.catchShoot.threePointersAttemptednumber | nulldata.items.catchShoot.threePointPctnumber | nulldata.items.catchShoot.pointsnumber | nulldata.items.catchShoot.effectiveFieldGoalPctnumber | nulldata.items.passingobject | nulldata.items.passing.passesMadenumber | nulldata.items.passing.passesReceivednumber | nulldata.items.passing.assistsnumber | nulldata.items.passing.secondaryAssistsnumber | nulldata.items.passing.potentialAssistsnumber | nulldata.items.passing.assistPointsCreatednumber | nulldata.items.passing.adjustedAssistsnumber | nulldata.items.passing.assistToPassPctnumber | nulldata.items.passing.assistToPassPctAdjnumber | nulldata.items.reboundingobject | nulldata.items.rebounding.reboundsnumber | nulldata.items.rebounding.contestedReboundsnumber | nulldata.items.rebounding.uncontestedReboundsnumber | nulldata.items.rebounding.contestedReboundPctnumber | nulldata.items.rebounding.reboundChancesnumber | nulldata.items.rebounding.reboundChancePctnumber | nulldata.items.rebounding.reboundChancesDeferrednumber | nulldata.items.rebounding.reboundChancePctAdjnumber | nulldata.items.rebounding.avgReboundDistancenumber | nulldata.items.rebounding.offensiveReboundsnumber | nulldata.items.rebounding.offensiveContestednumber | nulldata.items.rebounding.offensiveUncontestednumber | nulldata.items.rebounding.offensiveContestedPctnumber | nulldata.items.rebounding.offensiveChancesnumber | nulldata.items.rebounding.offensiveChancePctnumber | nulldata.items.rebounding.defensiveReboundsnumber | nulldata.items.rebounding.defensiveContestednumber | nulldata.items.rebounding.defensiveUncontestednumber | nulldata.items.rebounding.defensiveContestedPctnumber | nulldata.items.rebounding.defensiveChancesnumber | nulldata.items.rebounding.defensiveChancePctnumber | nulldata.items.speedDistanceobject | nulldata.items.speedDistance.distanceFeetnumber | nulldata.items.speedDistance.distanceMilesnumber | nulldata.items.speedDistance.distanceMilesOffensenumber | nulldata.items.speedDistance.distanceMilesDefensenumber | nulldata.items.speedDistance.avgSpeednumber | nulldata.items.speedDistance.avgSpeedOffensenumber | nulldata.items.speedDistance.avgSpeedDefensenumber | null_metaobjectResponse request/cache metadata. Optional evidence fields are specific to this handler; cache TTL does not measure source-data freshness.
_meta.request_idstring_meta.served_fromenum<string>Available options: live, cache
_meta.cache_ttl_secondsintegerResponse cache TTL; independent of source freshness. Omitted when zero.
errorobjectrequirederror.codestringrequiredStable machine-readable error code.
error.messagestringrequiredUser-facing error summary.
error.detailsanyOptional error details.