Overview
Join an arena tournament. Players can join at any time during the tournament, though it’s recommended to join before it starts for maximum participation.Requires authentication with OAuth token that has
tournament:write, bot:play, or web:mobile scope.Endpoint
Authentication
Requires OAuth token with one of:tournament:writescopebot:playscope (for bot accounts)web:mobilescope (for mobile clients)
Path Parameters
8-character tournament ID
Request Body
Password for private tournaments. Required if the tournament has password protection
Team ID to join with (required for team battle tournaments). You must be a member of the team
If
true, request immediate pairing. Only works if tournament has already startedResponse
Returns a JSON object indicating success or failure:true if successfully joined, false if failedtrue if successfully joined (deprecated, use ok instead)Error message if join failed
Example Response
Join Result Codes
Possible error messages:Wrong entry code
Incorrect password provided for private tournament
Your pause is not over yet
You have a temporary ban from joining tournaments
Tournament restrictions
You don’t meet the tournament entry conditions (rating, account age, etc.)
Missing team
Team battle tournament requires a team selection, or you’re not a member of the specified team
You are not allowed to join arenas
Your account has an arena ban
You are not allowed to play in prized tournaments
Your account has a prize ban and the tournament description mentions prizes
You are joining too many tournaments
Rate limit exceeded for tournament joins
This tournament no longer exists
Tournament ID is invalid or tournament was deleted
Entry Conditions
Tournaments may have various entry conditions:Rating Requirements
- Minimum rating in the tournament’s performance type
- Maximum rating in the tournament’s performance type
Account Requirements
- Minimum number of rated games in the performance type
- Minimum account age
Team Requirements
- Team membership for team-restricted tournaments
- Team selection for team battle tournaments
Other Restrictions
- Password protection
- Allow-list (only specific users can join)
- No arena-banned or prize-banned accounts
User-Specific Access Codes
Tournament passwords can be user-specific. If a tournament uses HMAC-based access codes, each user has a unique password calculated as:This allows tournament organizers to distribute individual codes to participants.
Rate Limits
Timing Considerations
Joining Before Start
- You can join any time before the tournament starts
- You’ll be paired in the first round when the tournament starts
Joining After Start
- You can still join after the tournament starts
- You’ll be paired as soon as possible
- Your score starts at 0 regardless of current round
- Use
pairMeAsap: trueto request immediate pairing
Joining Late
- You can join up until pairings are closed (typically last 30-120 seconds of tournament)
- Late joiners have fewer opportunities to play games
Team Battle Specifics
Withdrawing
To withdraw from a tournament, use the Withdraw endpoint:Example Usage
Join a Public Tournament
Join a Private Tournament
Join a Team Battle
Join and Request Immediate Pairing
Related Endpoints
- List Tournaments - Get all current tournaments
- Get Tournament Details - Get full tournament information
- Withdraw from Tournament - Leave a tournament
- Create Tournament - Create a new tournament
Source Code Reference
Implementation can be found in:app/controllers/Tournament.scala:176-194-joinandapiJoinmethodsmodules/tournament/src/main/TournamentApi.scala:285-344-joinmethodmodules/tournament/src/main/TournamentForm.scala:139-154- Join form validation

