Endpoints
All endpoints are GET under https://sb1-api.buzzerbeater.com/v1, answer JSON, and need a bearer token
with the scope shown. Ids are UUIDs. The complete schema of every response, always in step with the
server, is in the interactive reference and the
OpenAPI document; this page is the map.
Lists that can grow take offset (default 0) and limit (1–30, default 25).
Seasons are numbers (season=12); leaving it out means the season being played.
Enums are strings, spelled as in the reference ("ManagedTeam", "Averages").
"Other club" marks calls that count toward the daily breadth when the club or player is not the
manager's own (Scopes and privacy).
The manager — public
| Endpoint | Returns |
|---|---|
/me | Me: the manager (id, username, isSupporter), every club and national team they run (teams[] with id, name, shortName, kind), and the token's scopes |
Start here: it is how a tool learns which team ids it may use.
Clubs — public
| Endpoint | Returns | Other club |
|---|---|---|
/teams/{teamId} | Team: name, short name, kind, country, league, manager | counted |
/teams/{teamId}/roster | Roster: players[] (see Player) | counted |
/teams/{teamId}/schedule?season=&offset=&limit= | Schedule: the season's games, with scores once played | counted |
/teams/{teamId}/stats?season=&mode=Averages|Totals | TeamStats: each player's season statistics | counted |
/teams/{teamId}/arena | Arena: seats and prices as the public arena page shows them | counted |
Players — public
| Endpoint | Returns | Other club |
|---|---|---|
/players/{playerId} | Player | counted |
A Player carries the public figures — firstName, lastName, nickname, number, countryId,
age, height, salary, dmi, potential (0–11), gameShape, buzzerBeaterRating, bestPosition,
isTransferListed, isRetired, injury, club, nationalTeam — and skills only for the manager's own
players (team scope) and the squad of a national team they coach (national scope). Each skill is
{ "level": 9, "change": "Improved" } (Unchanged, Improved, Worsened), the level and the last week's change as the game shows them. A
transfer-listed player of another club has skills: null here: see Transfer list.
Matches and competitions — public
| Endpoint | Returns |
|---|---|
/matches/{matchId} | Match: teams, date, competition, score |
/matches/{matchId}/boxscore | BoxScore: strategies, the teams' rating levels, every player's line |
/competitions/{competitionId}/standings?season= | Standings: the table of a league (round-robin stages) |
World — public
| Endpoint | Returns |
|---|---|
/seasons | SeasonList: every season with its number and dates |
/countries | CountryList |
/countries/{countryId}/leagues?level= | LeagueList: the leagues of a country, optionally of one level |
/countries/{countryId}/national-teams | NationalTeamList: the country's senior and junior national teams |
National teams — public, national
| Endpoint | Scope | Returns |
|---|---|---|
/national-teams/{teamId}/roster | public | Roster: the called-up squad with public figures; skills only for its coach with national |
/national-teams/{teamId}/training/history | national | SquadTrainingHistory: the squad's skill changes from training at their clubs, for the coach only |
Training, staff and facilities — team
Only for clubs the manager owns.
| Endpoint | Returns |
|---|---|
/teams/{teamId}/training | TrainingPlan: the drill and positions set for the next training |
/teams/{teamId}/training/history?offset=&limit= | TrainingHistory (below) |
/teams/{teamId}/staff | StaffList: every staff member's type (Coach, YouthTrainer, Doctor, …), level (Minimal … WorldRenowned), specialty, salary |
/teams/{teamId}/facilities | Facilities: the level of every building of the sport city, and the weekly upkeep |
/players/{playerId}/training | PlayerTraining: one player's week-by-week training, for supporters as in the game |
A TrainingHistory has sessions[], newest first, each with:
type(the drill),positions,trainedAt,efficiencyPercent;conditions:coachLevel,coachSpecialty,youthTrainerLevel,gymLevel,trainingCourtLevel,isOffseason— the staff and facilities the session actually ran with (null for sessions older than the API);participants[]: every player trained, withminutes,trainingMinutes(those that counted for the drill) andhasFullMinutes;skillChanges[]:player,skill,from,to(drops included);breakthroughs[]:player,skill,oldLevel,newLevel,kinds.
As in the game, managers without supporter status get the latest session only.
Finances — economy
Only for clubs the manager owns.
| Endpoint | Returns |
|---|---|
/teams/{teamId}/economy | EconomySummary: the week's income and expenses by kind, and the balance |
/teams/{teamId}/economy/salaries | Payroll: players' and staff salaries |
Transfer list — market
| Endpoint | Returns |
|---|---|
/market/players?… | MarketPlayerList: listed players with public figures, currentPrice, endsAt, leadingBidder — never skills |
/market/players/{playerId}/auction | Auction: prices, startedAt, endsAt, isOpen, listingClub, bids[], hasMoreBids, and while open skills + skillsVisibleUntil |
Search filters: minAge, maxAge, minHeight, maxHeight, minSalary, maxSalary, minPrice,
maxPrice, minPotential, maxPotential, country, position, injury
(Nothing, OnlyInjured, ExcludeInjured); order with orderBy (AuctionTime, Age, Salary) and
sort (Asc, Desc); page with offset and limit, up to offset + limit = 150. There are no skill
filters and no ordering by skills: those would reveal skills through the search.
An auction shows another club's player's skills only while it is open and only with market; each
reveal counts toward the limits in Scopes and privacy. Do not keep
them past skillsVisibleUntil. Bids are shown as the game shows them to the manager (non-supporters see
the leading ones; hasMoreBids says there were more). There is no endpoint to bid, and there will not be.
OAuth — no token
| Endpoint | |
|---|---|
POST /oauth/token | trade a code or a refresh token — see Authentication |
POST /oauth/revoke | revoke a token |