Skip to main content
POST
/
leagues
/
{identifier}
/
dashboard
/
stats
curl -X POST https://teambattles.gg/api/v1/leagues/my-league/dashboard/stats \
  -H "Authorization: Bearer tb_your_api_key"
{
  "stats": {
    "teamCount": 0,
    "pendingApplications": 0,
    "activeSeasons": 0,
    "openTickets": 0
  },
  "timestamp": "<string>"
}

Permission Required

This endpoint is an admin read. It requires a league-operator API key bound to this league with the leagues.league_admin:read access permission, plus the leagueOperatorApi plan feature (api_pro or higher). A free key receives 403 error_api_feature_required. The POST method is used to deliver an authenticated read; this endpoint does not modify the league.

Access / Membership Rules

You must have a MANAGER or higher role in the league (or be a TeamBattles staff member) to read dashboard stats. If you lack the required access, you’ll receive a 403 error. The {identifier} path parameter is the league slug - the URL-friendly league name (e.g., my-league).

What’s Returned

Returns aggregate league admin dashboard counts for the bound league as { "stats": { ... }, "timestamp": "<ISO 8601>" }. The stats object contains:
FieldTypeDescription
teamCountnumberNumber of teams in the league.
pendingApplicationsnumberTeam applications awaiting a decision.
activeSeasonsnumberCurrently active seasons.
openTicketsnumberOpen league support tickets.
This endpoint takes no request body.
curl -X POST https://teambattles.gg/api/v1/leagues/my-league/dashboard/stats \
  -H "Authorization: Bearer tb_your_api_key"

Authorizations

Authorization
string
header
required

Send your API key as: Authorization: Bearer tb_

Path Parameters

identifier
string
required

League slug or Convex league ID.

Response

League dashboard stats.

Aggregate league admin dashboard statistics.

stats
object
required
timestamp
string
required