Teams, Players & Rosters
Team extensions
Requires stats entitlement. Separate read model; private, no-store. Requests to existing routes without include=extended retain their existing contracts.
https://api.sportquanta.com/v1/kbl/teams/{id}/extendedReference context: KBL.
Overview · Response conventions
Authorizations
AuthorizationstringheaderrequiredSend a workspace API token in the Authorization: Bearer <token> header.
Path Parameters
idstringrequiredQuery Parameters
seasonintegerdefault:0Season start year. Omit or use zero for the newest stored extension. Unsupported seasons return unavailable.
Required range: 0 <= x, x <= 2100
Response
application/jsonAdditive basketball data; unavailable values remain null.
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.
The league is unsupported, the endpoint is not available for that sport, or the requested data has not been ingested. Inspect error.code.
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.
dataobjectAdditive read model stored separately from legacy canonical records. Availability varies by league, source and game. Null means unknown. No legacy cache is reused.
data.subject_idstringrequireddata.subject_typeenum<string>requiredAvailable options: game, team, player, standings
data.seasonintegerrequireddata.schema_version1requireddata.observed_atstring<date-time>requireddata.sourcestringrequireddata.dataobjectrequiredSubject-specific extensions. Game records contain metadata, teams, players, periods, NBA events/shots and existing rotation evidence. Team/player records are current directory/profile observations, not historical snapshots. KBL event interpretations and normalized advanced metrics remain unavailable.
data.data.statusenum<string>Available options: scheduled, live, final
data.data.game_typestringdata.data.schedule_datestring | nulldata.data.regulation_periodsnumber | nulldata.data.periodnumber | nulldata.data.clockstring | nulldata.data.ended_atstring | nulldata.data.competition_namestring | nulldata.data.season_namestring | nulldata.data.broadcastobjectdata.data.broadcast.namestring | nulldata.data.broadcast.source_codestring | nulldata.data.officialsobject[]data.data.officials.source_idstring | nulldata.data.officials.namestring | nulldata.data.officials.given_namestring | nulldata.data.officials.family_namestring | nulldata.data.officials.rolestring | nulldata.data.officials.assistantboolean | nulldata.data.coachesobject | object[]data.data.coaches.option 1objectdata.data.coaches.homeobject[]data.data.coaches.home.source_idstring | nulldata.data.coaches.home.namestring | nulldata.data.coaches.home.given_namestring | nulldata.data.coaches.home.family_namestring | nulldata.data.coaches.home.rolestring | nulldata.data.coaches.home.assistantboolean | nulldata.data.coaches.awayobject[]data.data.coaches.away.source_idstring | nulldata.data.coaches.away.namestring | nulldata.data.coaches.away.given_namestring | nulldata.data.coaches.away.family_namestring | nulldata.data.coaches.away.rolestring | nulldata.data.coaches.away.assistantboolean | nulldata.data.coaches.option 2objectdata.data.coaches.source_idstring | nulldata.data.coaches.namestring | nulldata.data.coaches.given_namestring | nulldata.data.coaches.family_namestring | nulldata.data.coaches.rolestring | nulldata.data.coaches.assistantboolean | nulldata.data.teamsobject[]data.data.teams.team_idstring | nulldata.data.teams.homebooleandata.data.teams.statsobjectNew box-score counts only. Missing is null, valid zero is zero. Team-only and provider totals are explicitly separate.
data.data.teams.stats.pointsnumber | nulldata.data.teams.stats.reboundsnumber | nulldata.data.teams.stats.rebounds_offensivenumber | nulldata.data.teams.stats.rebounds_defensivenumber | nulldata.data.teams.stats.rebounds_player_totalnumber | nulldata.data.teams.stats.assistsnumber | nulldata.data.teams.stats.stealsnumber | nulldata.data.teams.stats.blocksnumber | nulldata.data.teams.stats.turnoversnumber | nulldata.data.teams.stats.fouls_personalnumber | nulldata.data.teams.stats.field_goals_madenumber | nulldata.data.teams.stats.field_goals_attemptednumber | nulldata.data.teams.stats.three_pointers_madenumber | nulldata.data.teams.stats.three_pointers_attemptednumber | nulldata.data.teams.stats.free_throws_madenumber | nulldata.data.teams.stats.free_throws_attemptednumber | nulldata.data.teams.stats.blocks_receivednumber | nulldata.data.teams.stats.fouls_drawnnumber | nulldata.data.teams.stats.fouls_technicalnumber | nulldata.data.teams.stats.fouls_team_technicalnumber | nulldata.data.teams.stats.team_reboundsnumber | nulldata.data.teams.stats.team_turnoversnumber | nulldata.data.teams.stats.total_turnoversnumber | nulldata.data.teams.stats.points_off_turnoversnumber | nulldata.data.teams.stats.points_in_paintnumber | nulldata.data.teams.stats.fast_break_pointsnumber | nulldata.data.teams.stats.second_chance_pointsnumber | nulldata.data.teams.stats.bench_pointsnumber | nulldata.data.teams.stats.largest_leadnumber | nulldata.data.teams.stats.lead_changesnumber | nulldata.data.teams.stats.times_tiednumber | nulldata.data.teams.stats.minutesstring | nullNBA ISO duration or KBL minutes:seconds source duration; never overwrites legacy minutes.
data.data.teams.stats.derivedobjectdata.data.teams.stats.derived.effective_field_goal_pctnumber | nulldata.data.teams.stats.derived.true_shooting_pctnumber | nulldata.data.teams.stats.derived.free_throw_attempt_ratenumber | nulldata.data.teams.stats.derived.assist_turnover_rationumber | nulldata.data.teams.stats.derived.steal_turnover_rationumber | nulldata.data.teams.stats.derived.double_doubleboolean | nulldata.data.teams.stats.derived.triple_doubleboolean | nulldata.data.teams.stats.derived.calculation_methodstringdata.data.teams.stats.derived.true_shooting_fta_coefficientnumberdata.data.teams.stats.derived.percentage_scalestringdata.data.teams.stats.provider_advancedobjectKBL original abbreviated fields and original units. poss is NOT a normalized possession count; per is NOT verified Hollinger PER.
data.data.teams.stats.provider_advanced.{key}number | nulldata.data.teams.stats.provider_advanced_semanticsstringdata.data.playersobject[]data.data.players.player_idstring | nulldata.data.players.source_player_idstring | nulldata.data.players.team_idstring | nulldata.data.players.namestring | nulldata.data.players.starterboolean | nulldata.data.players.playedboolean | nulldata.data.players.on_courtboolean | nulldata.data.players.statusstring | nulldata.data.players.not_playing_reasonstring | nulldata.data.players.statsobjectNew box-score counts only. Missing is null, valid zero is zero. Team-only and provider totals are explicitly separate.
data.data.players.stats.pointsnumber | nulldata.data.players.stats.reboundsnumber | nulldata.data.players.stats.rebounds_offensivenumber | nulldata.data.players.stats.rebounds_defensivenumber | nulldata.data.players.stats.rebounds_player_totalnumber | nulldata.data.players.stats.assistsnumber | nulldata.data.players.stats.stealsnumber | nulldata.data.players.stats.blocksnumber | nulldata.data.players.stats.turnoversnumber | nulldata.data.players.stats.fouls_personalnumber | nulldata.data.players.stats.field_goals_madenumber | nulldata.data.players.stats.field_goals_attemptednumber | nulldata.data.players.stats.three_pointers_madenumber | nulldata.data.players.stats.three_pointers_attemptednumber | nulldata.data.players.stats.free_throws_madenumber | nulldata.data.players.stats.free_throws_attemptednumber | nulldata.data.players.stats.blocks_receivednumber | nulldata.data.players.stats.fouls_drawnnumber | nulldata.data.players.stats.fouls_technicalnumber | nulldata.data.players.stats.fouls_team_technicalnumber | nulldata.data.players.stats.team_reboundsnumber | nulldata.data.players.stats.team_turnoversnumber | nulldata.data.players.stats.total_turnoversnumber | nulldata.data.players.stats.points_off_turnoversnumber | nulldata.data.players.stats.points_in_paintnumber | nulldata.data.players.stats.fast_break_pointsnumber | nulldata.data.players.stats.second_chance_pointsnumber | nulldata.data.players.stats.bench_pointsnumber | nulldata.data.players.stats.largest_leadnumber | nulldata.data.players.stats.lead_changesnumber | nulldata.data.players.stats.times_tiednumber | nulldata.data.players.stats.minutesstring | nullNBA ISO duration or KBL minutes:seconds source duration; never overwrites legacy minutes.
data.data.players.stats.derivedobjectdata.data.players.stats.derived.effective_field_goal_pctnumber | nulldata.data.players.stats.derived.true_shooting_pctnumber | nulldata.data.players.stats.derived.free_throw_attempt_ratenumber | nulldata.data.players.stats.derived.assist_turnover_rationumber | nulldata.data.players.stats.derived.steal_turnover_rationumber | nulldata.data.players.stats.derived.double_doubleboolean | nulldata.data.players.stats.derived.triple_doubleboolean | nulldata.data.players.stats.derived.calculation_methodstringdata.data.players.stats.derived.true_shooting_fta_coefficientnumberdata.data.players.stats.derived.percentage_scalestringdata.data.players.stats.provider_advancedobjectKBL original abbreviated fields and original units. poss is NOT a normalized possession count; per is NOT verified Hollinger PER.
data.data.players.stats.provider_advanced.{key}number | nulldata.data.players.stats.provider_advanced_semanticsstringdata.data.periodsobject[]data.data.periods.periodnumber | nulldata.data.periods.home_scorenumber | nulldata.data.periods.away_scorenumber | nulldata.data.periods.winnerenum<string | null>Available options: home, away, tie, null
data.data.eventsobject[]data.data.events.source_event_idstring | nulldata.data.events.clockstring | nulldata.data.events.occurred_atstring | nulldata.data.events.edited_atstring | nulldata.data.events.event_typestring | nulldata.data.events.action_typestring | nulldata.data.events.descriptionstring | nulldata.data.events.player_idstring | nulldata.data.events.team_idstring | nulldata.data.events.blocker_idstring | nulldata.data.events.assist_player_idstring | nulldata.data.events.foul_drawn_player_idstring | nulldata.data.events.related_shot_event_idstring | nulldata.data.events.zonestring | nulldata.data.events.zone_detailstring | nulldata.data.events.source_official_idstring | nulldata.data.events.ordernumber | nulldata.data.events.periodnumber | nulldata.data.events.home_scorenumber | nulldata.data.events.away_scorenumber | nulldata.data.events.attempted_pointsnumber | nulldata.data.events.scored_pointsnumber | nulldata.data.events.distance_ftnumber | nulldata.data.events.source_xnumber | nulldata.data.events.source_ynumber | nulldata.data.events.madeboolean | nulldata.data.events.fast_breakboolean | nulldata.data.events.in_paintboolean | nulldata.data.events.after_turnoverboolean | nulldata.data.events.second_chanceboolean | nulldata.data.events.blockedboolean | nulldata.data.events.qualifiersstring[] | nulldata.data.events.coordinate_systemstringdata.data.shotsobject[]data.data.shots.source_event_idstring | nulldata.data.shots.clockstring | nulldata.data.shots.occurred_atstring | nulldata.data.shots.edited_atstring | nulldata.data.shots.event_typestring | nulldata.data.shots.action_typestring | nulldata.data.shots.descriptionstring | nulldata.data.shots.player_idstring | nulldata.data.shots.team_idstring | nulldata.data.shots.blocker_idstring | nulldata.data.shots.assist_player_idstring | nulldata.data.shots.foul_drawn_player_idstring | nulldata.data.shots.related_shot_event_idstring | nulldata.data.shots.zonestring | nulldata.data.shots.zone_detailstring | nulldata.data.shots.source_official_idstring | nulldata.data.shots.ordernumber | nulldata.data.shots.periodnumber | nulldata.data.shots.home_scorenumber | nulldata.data.shots.away_scorenumber | nulldata.data.shots.attempted_pointsnumber | nulldata.data.shots.scored_pointsnumber | nulldata.data.shots.distance_ftnumber | nulldata.data.shots.source_xnumber | nulldata.data.shots.source_ynumber | nulldata.data.shots.madeboolean | nulldata.data.shots.fast_breakboolean | nulldata.data.shots.in_paintboolean | nulldata.data.shots.after_turnoverboolean | nulldata.data.shots.second_chanceboolean | nulldata.data.shots.blockedboolean | nulldata.data.shots.qualifiersstring[] | nulldata.data.shots.coordinate_systemstringdata.data.event_coverageobjectdata.data.event_coverage.availablebooleandata.data.event_coverage.completebooleandata.data.event_coverage.countintegerdata.data.event_coverage.reasonstringdata.data.event_coverage.validationstringdata.data.rotationobject | nullExisting canonical rotation evidence, with its existing limitations; does not assert current on-court status.
data.data.citystring | nulldata.data.conferencestring | nulldata.data.divisionstring | nulldata.data.source_scopestringdata.data.schoolstring | nulldata.data.last_affiliationstring | nulldata.data.birth_datestring | nulldata.data.countrystring | nulldata.data.height_sourcestring | nulldata.data.weight_lbsnumber | nulldata.data.first_season_yearnumber | nulldata.data.last_recorded_season_yearnumber | nulldata.data.seasons_experiencenumber | nulldata.data.draft_yearnumber | nulldata.data.draft_roundnumber | nulldata.data.draft_overall_picknumber | nulldata.data.draft_statusstring | nulldata.data.itemsobject[]data.data.items.team_idstring | nulldata.data.items.conferencestring | nulldata.data.items.divisionstring | nulldata.data.items.conference_games_backnumber | nulldata.data.items.division_games_backnumber | nulldata.data.items.playoff_ranknumber | nulldata.data.items.playoff_seedingstring | nulldata.data.items.clinch_indicatorstring | nulldata.data.items.clinched_conference_titleboolean | nulldata.data.items.clinched_division_titleboolean | nulldata.data.items.clinched_playoffsboolean | nulldata.data.items.clinched_play_inboolean | nulldata.data.field_sourcesobjectActual canonical provenance for directory fields.
data.data.field_sources.{key}string | nulldata.data.source_observationsobjectObservation timestamps keyed by the source payload role, such as box_score, play_by_play, game_detail, team_records or player_records.
data.data.source_observations.{key}string<date-time>data.data.identity_coverageobjectdata.data.identity_coverage.player_observationsintegerdata.data.identity_coverage.matched_playersintegerdata.data.identity_coverage.matched_teamsintegerdata.data.identity_coverage.methodstringdata.data.availabilityobjectdata.data.availability.sourcestring | nulldata.data.availability.observed_atstring | nulldata.data.availability.playersobject[]data.data.availability.players.player_idstring | nulldata.data.availability.players.source_status_textstring | nulldata.data.availability.players.availability_reasonstring | nulldata.data.availability.players.observed_updated_atstring | nulldata.data.shot_summaryobject[]data.data.shot_summary.team_idstring | nulldata.data.shot_summary.completebooleandata.data.shot_summary.calculation_methodstringdata.data.shot_summary.percentage_scalestringdata.data.shot_summary.by_shot_typeobject[] | nulldata.data.shot_summary.by_shot_type.source_labelstring | nulldata.data.shot_summary.by_shot_type.attemptedintegerdata.data.shot_summary.by_shot_type.madeintegerdata.data.shot_summary.by_shot_type.percentagenumber | nulldata.data.shot_summary.by_zoneobject[] | nulldata.data.shot_summary.by_zone.source_labelstring | nulldata.data.shot_summary.by_zone.attemptedintegerdata.data.shot_summary.by_zone.madeintegerdata.data.shot_summary.by_zone.percentagenumber | 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.