Box score of a finished game: one row per team, with the head coach and the team line.
Endpoint: GET https://api.basketball-bundesliga.de/games/{game_id}/stats (DBBL: the same route on
https://api-1.dbbl.scb.world).
Arguments
- game_id
(required) Game id (
game_idinscb_games), e.g. 2006920 (BBL) or 10130 (DBBL). One sequence per league.- league
(default
"dbbl", the women's DBBL) League:bbl(men, easyCredit Basketball Bundesliga, api.basketball-bundesliga.de) ordbbl(women, Toyota Damen-Basketball-Bundesliga, api-1.dbbl.scb.world). The two share one API; game ids overlap, so a game is (league, game_id).
Value
A wehoop_data tibble: Box score of a finished game: one row per team, with the head coach and the team
line. An empty valid answer raises wehoop_no_data; the columns are always these, in this order (sdv-py
scb_game_teams):
| col_name | type | description |
| league | character | League the row belongs to: bbl (men) or dbbl (women); BBL and DBBL game ids overlap, so a game is (league, game_id). |
| game_id | character | Game id, a string. Joins to /games/{gameId}. |
| season | integer | Season END year (2026 = 2025-26), the sdv key; the API's season_id plus one. |
| side | character | home or guest (the away side), for the team the row belongs to. |
| team_id | character | Club id; equal to seasonTeamId in every sample. Joins to /teams/{teamId}. |
| head_coach_name | character | Name of the team's head coach. |
| status | character | Game status: PRE (scheduled), LIVE, POST (ended, not yet official) or OFFICIAL (final). |
| scheduled_time | character | Scheduled tip-off, ISO 8601 UTC. |
| season_team_id | character | Season-team id; equal to the club teamId in every sample (BBL 2005-2026, DBBL 2024-2026). |
| season_id | integer | Season, START year (2026 = 2026-27). |
| team_name | character | Team name as listed that season (sponsor names included, e.g. 'EWE Baskets Oldenburg'). |
| team_tlc | character | Three-letter club code. |
| competition | character | Competition: BBL, BBL_CUP (Pokal), ALLSTAR, CHAMPIONS_CUP on the BBL host; DBBL, DBBL_CUP on the DBBL host. |
| stage | character | Stage: MAIN_ROUND (Hauptrunde, regular season), PLAYINS, FIRST_ROUND, SECOND_ROUND, ROUND_OF_16 (Achtelfinale), ROUND_OF_8 (Viertelfinale), SEMI_FINALS, FINALS, THIRD_PLACE_GAME, QUALIFICATION, GROUP_STAGE. |
| seconds_played | integer | The team's playing time in SECONDS in the game (players plus the team line) (12000 = 5 x 40 min). |
| points | integer | The team's points in the game (players plus the team line). |
| two_point_shots_made | integer | The team's 2-point field goals made in the game (players plus the team line). |
| two_point_shots_attempted | integer | The team's 2-point field goals attempted in the game (players plus the team line). |
| two_point_shot_success_percent | double | The team's 2-point field-goal percentage in the game (players plus the team line), 0-100 (one decimal); 0 when no attempts. |
| three_point_shots_made | integer | The team's 3-point field goals made in the game (players plus the team line). |
| three_point_shots_attempted | integer | The team's 3-point field goals attempted in the game (players plus the team line). |
| three_point_shot_success_percent | double | The team's 3-point field-goal percentage in the game (players plus the team line), 0-100 (one decimal); 0 when no attempts. |
| field_goals_made | integer | The team's field goals made in the game (players plus the team line). |
| field_goals_attempted | integer | The team's field goals attempted in the game (players plus the team line). |
| field_goals_success_percent | double | The team's field-goal percentage in the game (players plus the team line), 0-100 (one decimal); 0 when no attempts. |
| free_throws_made | integer | The team's free throws made in the game (players plus the team line). |
| free_throws_attempted | integer | The team's free throws attempted in the game (players plus the team line). |
| free_throws_success_percent | double | The team's free-throw percentage in the game (players plus the team line), 0-100 (one decimal); 0 when no attempts. |
| offensive_rebounds | integer | The team's offensive rebounds in the game (players plus the team line). |
| defensive_rebounds | integer | The team's defensive rebounds in the game (players plus the team line). |
| total_rebounds | integer | The team's rebounds (offensive + defensive) in the game (players plus the team line). |
| assists | integer | The team's assists in the game (players plus the team line). |
| steals | integer | The team's steals in the game (players plus the team line). |
| turnovers | integer | The team's turnovers in the game (players plus the team line). |
| blocks | integer | The team's blocked shots in the game (players plus the team line). |
| fouls_committed | integer | The team's fouls committed in the game (players plus the team line). |
| efficiency | integer | The team's efficiency (EFF = PTS + REB + AST + STL + BLK - missed FG - missed FT - TO; checked on a 2026 box score) in the game (players plus the team line). |
| plus_minus | integer | The team's point margin in the game. |
| team_line_seconds_played | integer | Team-line playing time in SECONDS (not credited to a player). |
| team_line_points | integer | Team-line points (not credited to a player). |
| team_line_two_point_shots_made | integer | Team-line 2-point field goals made (not credited to a player). |
| team_line_two_point_shots_attempted | integer | Team-line 2-point field goals attempted (not credited to a player). |
| team_line_two_point_shot_success_percent | double | Team-line 2-point field-goal percentage (not credited to a player), 0-100 (one decimal); 0 when no attempts. |
| team_line_three_point_shots_made | integer | Team-line 3-point field goals made (not credited to a player). |
| team_line_three_point_shots_attempted | integer | Team-line 3-point field goals attempted (not credited to a player). |
| team_line_three_point_shot_success_percent | double | Team-line 3-point field-goal percentage (not credited to a player), 0-100 (one decimal); 0 when no attempts. |
| team_line_field_goals_made | integer | Team-line field goals made (not credited to a player). |
| team_line_field_goals_attempted | integer | Team-line field goals attempted (not credited to a player). |
| team_line_field_goals_success_percent | double | Team-line field-goal percentage (not credited to a player), 0-100 (one decimal); 0 when no attempts. |
| team_line_free_throws_made | integer | Team-line free throws made (not credited to a player). |
| team_line_free_throws_attempted | integer | Team-line free throws attempted (not credited to a player). |
| team_line_free_throws_success_percent | double | Team-line free-throw percentage (not credited to a player), 0-100 (one decimal); 0 when no attempts. |
| team_line_offensive_rebounds | integer | Team-line offensive rebounds (not credited to a player). |
| team_line_defensive_rebounds | integer | Team-line defensive rebounds (not credited to a player). |
| team_line_total_rebounds | integer | Team-line rebounds (offensive + defensive) (not credited to a player). |
| team_line_assists | integer | Team-line assists (not credited to a player). |
| team_line_steals | integer | Team-line steals (not credited to a player). |
| team_line_turnovers | integer | Team-line turnovers (not credited to a player). |
| team_line_blocks | integer | Team-line blocked shots (not credited to a player). |
| team_line_fouls_committed | integer | Team-line fouls committed (not credited to a player). |
| team_line_efficiency | integer | Team-line efficiency (EFF = PTS + REB + AST + STL + BLK - missed FG - missed FT - TO; checked on a 2026 box score) (not credited to a player). |
| team_line_plus_minus | integer | Team-line plus-minus: the team line has no court time, so this is not a margin. |
| field_goals_recomputed | logical | True when the API's field-goal totals disagreed with its 2-point plus 3-point parts (2005-06 box scores) and were recomputed from the parts. |
Details
Unofficial use of a public source: these wrappers read the front-end API of the German Bundesliga sites (easycredit-bbl.de, toyota-dbbl.de), run by SCB; payloads are not redistributed as release assets.
Legal notice: the BBL Impressum forbids storing BBL content (
Inhalte) in an information system without BBL's written permission. That is a copyright term, not a robots rule (the API host has no robots.txt). The owner reviewed it and accepted the intake (2026-10-12 ruling); keep requests slow (the runtime waits at least 1 s per host) and raise any published data release with the owner. The DBBL host is the same operator and API; its site notice was not separately reviewed.Both hosts need two headers: a constant
x-api-keyand anx-api-secretthat rotates. The runtime derives the secret on first use from the key embedded in an easycredit-bbl.de page (reversed,:turned into-) and never logs or returns it. The derivation was reverse-engineered from observed requests and responses and has not been checked against the site's own front-end code; if the site changes how it signs requests, every call fails withwehoop_asset_fetch.Id key spaces: seasonId is the START year (2025 = 2025-26), so a wrapper's END-year
seasonis sent asseason - 1. Teams are keyed by teamId (seasonTeamId equals it in every sample). seasonPlayerId is per player per season and per club (a player traded mid-season has two); realPlayerId is the person. playerId is ambiguous (the seasonPlayerId in box scores, records and /season-players; the person in /transfers). Game ids are strings.Errors are classed conditions:
wehoop_no_data(404, 204, a 400 "not a valid" id, no rows, a box score of a game not yet started),wehoop_bad_request(a bad argument, another 400 / 422) andwehoop_asset_fetch(a refused secret after one re-derive, any other non-2xx, an HTML / non-JSON / error-shaped body, a truncated page, a body for another game, season, club or league, a box score still in play), all inheritingwehoop_error. Wrappers raise; they never return an empty frame.
See also
Other SCB Functions:
scb_game(),
scb_game_actions(),
scb_game_players(),
scb_games(),
scb_games_recent(),
scb_player_statistics(),
scb_playoff_games(),
scb_playoff_series(),
scb_records_per_game(),
scb_records_season_averages(),
scb_referees(),
scb_season_player(),
scb_season_players(),
scb_season_teams(),
scb_seasons(),
scb_standings(),
scb_team(),
scb_team_rosters(),
scb_team_seasons(),
scb_team_statistics(),
scb_transfers(),
scb_transfers_teams()
Examples
# \donttest{
try(scb_game_teams(game_id = "2006920"))
#> Error in scb_game_teams(game_id = "2006920") :
#> www.easycredit-bbl.de/ answered HTTP 503: the API key could not be read.
# }
