Skip to contents

One player's career: a row per season and competition with totals (birth date is not returned).

Endpoint: GET https://miniappapi.tbf.org.tr/webapi-service/api/Player/get-player-detail-profile-and-career-info/{player_id}

Usage

tbf_player_career(player_id)

Arguments

player_id

Required. TBF person id, e.g. 196413; person_id in tbf_players() and the box score.

Value

A wehoop_data tibble. One row per career season and competition. Totals and averages rows are not included. Every column below is always present (a zero-row tibble keeps them and their types); an answer with nothing in it raises wehoop_no_data, as in sdv-py.

col_nametypedescription
person_idintegerTBF person id of the player asked for (the player_id argument).
player_namecharacterPlayer's full name from the profile (the same on every row).
nationalitycharacterNationality as a TURKISH country name from the profile (country).
height_cmintegerHeight in centimetres from the profile; null when TBF has none.
season_labelcharacterCareer season as TBF writes it (seasonCode), e.g. 2025-2026.
seasonintegerCareer season END year, read from the season label.
team_namecharacterTeam the player represented that season, uppercase with Turkish letters (teamName).
activity_namecharacterLeague-season name (activityName), e.g. 'BSL 2025-2026'.
activity_type_idintegerCompetition type id (faaliyetTuruId): 1 = BSL, 4 = TBL, 79 = BGL.
activity_idintegerActivity id of the league-season (faaliyetAltAlaniId; key space: TBF league-seasons).
gamesintegerGames played (macSayisi = game count).
seconds_playedintegerTotal time on court that season in seconds (formattedTotalSeconds 'hh:mm:ss').
pointsintegerPoints scored in the game (or season) the row covers.
assistsintegerAssists in that season and competition.
fg_madeintegerField goals made (fieldGoalsMade), 2PT + 3PT.
fg_attemptedintegerField goals attempted (fieldGoalsAttempted), 2PT + 3PT.
fg3_madeintegerThree-point field goals made (threePointsMade).
fg3_attemptedintegerThree-point field goals attempted (threePointsAttempted).
ft_madeintegerFree throws made (the API spells the field freeThows).
ft_attemptedintegerFree throws attempted (freeThowsAttempted).
off_reboundsintegerOffensive rebounds in that season and competition.
def_reboundsintegerDefensive rebounds in that season and competition.
reboundsintegerTotal rebounds in that season and competition.
stealsintegerSteals in that season and competition.
turnoversintegerTurnovers (the API spells the field tournovers).
blocksintegerBlocks in that season and competition.
foulsintegerPersonal fouls (the API spells the field fauls).
efficiencyintegerEfficiency rating total (playerEfficiency, PIR) for that season and competition.
fouls_drawnintegerFouls drawn (yapilanFaul).
blocks_receivedintegerOwn shots blocked by an opponent (yenilenBlok).

Details

Official TBF app API, unofficial for SportsDataverse: the backend of the Turkish Basketball Federation's mobile app (miniappapi.tbf.org.tr), which serves BSL, TBL, KBSL and the other TBF leagues. It needs no key; robots.txt answers 404 on the host, and the runtime spaces requests at least 1 s apart. SportsDataverse has not ruled on TBF's terms, so payloads are not redistributed as release assets. The vendor's origin hosts (nikayazilim.com) serve the same data without Cloudflare but are deliberately not used, redirects are never followed, and www.tbf.org.tr's interactive Turnstile is neither used nor automated.

Coverage: season and competition are parameters (bsl Basketbol Super Ligi, back to 1966-67 in the league list; tbl second tier; kbsl women, both from 2015-16). Game wrappers serve FINISHED games only (an unfinished game raises wehoop_asset_fetch). Box scores exist from 2006-07 (no starters flagged that season); play-by-play and shots from 2025-26 only, an earlier finished game raises wehoop_no_data. Every game carries a Genius LiveStats id (genius_id, joins the genius family) from 2018-19 on some seasons and on every game of 2025-26 and later. Birth dates, contact details, photos and logos are dropped. Names and category labels are Turkish; the column descriptions give the English gloss.

Errors: wehoop_no_data when TBF has nothing for the request (HTTP 404, an unknown game or player, a season the league list lacks, an empty list, a finished game before 2025-26 asked for play-by-play or shots); wehoop_bad_request for an invalid argument or HTTP 400 / 422; wehoop_asset_fetch when the fetch failed or the answer is not the one asked for (an unfinished game, a body for another game, season, league or team, an error envelope, a redirect, a partial page or a changed capped list). All inherit wehoop_error. Timestamps are Turkey local time (Europe/Istanbul).

 tbf_player_career(player_id = 196413)