v20

OpenAPI 3.1.0raw.githubusercontent.com2026-08-011984401.2 MB
Tournament: Lifecycle

Regenerate tournament matches

Recovery lever for an IN_PROGRESS tournament whose match generation partially failed - typically after POST /tournaments/{identifier}/start, whose background chain gives each node one attempt before moving on. This starts a FRESH generation pass with an empty skip list, so every currently-eligible node is re-attempted. It is safe to call repeatedly: generation is exactly-once per node, so a node that already has a match is never regenerated and existing matches are never destroyed. A tournament that is not IN_PROGRESS answers 400. The work is ASYNCHRONOUS - queued is an upper bound on what will be re-attempted, not a completion count; poll GET /tournaments/{identifier}/bracket for the real state. Requires a SEPARATE regenerate capability on the key (it is not covered by lifecycle), and the key owner must be a tournament ADMIN - a tournamentStaff MODERATOR is NOT sufficient and receives 403.

post/tournaments/{identifier}/regenerate-matches

Path parameters

identifierstring required

Tournament slug.

Tournament slug.

Request body

confirmtrue required

Must be exactly true. Required so this repair lever cannot be fired by an empty or accidental POST.

Response

Regeneration was scheduled (or there was nothing eligible).

queuedinteger required

An UPPER BOUND on the nodes this call will re-attempt, NOT a live count of outstanding work. It counts every node that is currently eligible for initial generation at the moment of the call, including nodes a previous sweep already gave up on. Actual generation happens asynchronously afterwards and some of those attempts may fail again, so do not treat queued as a number of matches that will exist. 0 means there was nothing eligible to re-attempt and nothing was scheduled.

timestampstring required