Skip to main content
POST
/
leagues
/
{identifier}
/
bans
/
{banId}
/
revoke
curl -X POST https://teambattles.gg/api/v1/leagues/my-league/bans/jh7ban123/revoke \
  -H "Authorization: Bearer tb_your_api_key" \
  -H "Content-Type: application/json" \
  -d '{"reason": "Appeal accepted"}'
{
  "success": true,
  "timestamp": "<string>"
}

Permission Required

This endpoint requires a league-operator API key bound to this league with the bans league capability, plus the leagueOperatorApi plan feature (api_pro or higher). A free key receives 403 error_api_feature_required.

Access / Membership Rules

You must have a MANAGER or higher role in the league (or be a TeamBattles staff member) to revoke a ban. 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). The ban referenced by {banId} must belong to the bound league.

What’s Returned

Revokes an active league team ban. On success the response is { "success": true, "timestamp": "<ISO 8601>" }.

Request Body

The request body is optional - send an empty body, or include a revocation reason.
ParameterTypeRequiredDescription
reasonstringNoOptional revocation reason (up to 500 characters).
curl -X POST https://teambattles.gg/api/v1/leagues/my-league/bans/jh7ban123/revoke \
  -H "Authorization: Bearer tb_your_api_key" \
  -H "Content-Type: application/json" \
  -d '{"reason": "Appeal accepted"}'

Authorizations

Authorization
string
header
required

Send your API key as: Authorization: Bearer tb_

Path Parameters

identifier
string
required

League slug or Convex league ID.

banId
string
required

League ban ID.

Body

application/json

Optional reason for revoking a league ban.

reason
string

Optional revocation reason.

Maximum string length: 500

Response

The league ban was revoked.

success
boolean
required
timestamp
string
required

Response generation time (ISO 8601).