---
title: "Enroll a Player in a Tournament"
method: POST
path: "/leaderboards/{brandId}/{leaderboardId}/enroll/{playerId}"
tags: ["Leaderboards"]
---

# Enroll a Player in a Tournament

`POST /leaderboards/{brandId}/{leaderboardId}/enroll/{playerId}`

Enrollment applies to tournament-type leaderboards only. Calling this on a regular leaderboard returns `400 "Only tournaments require enrollment"`.

If `costAmount` is non-null in the response, re-fetch `GET /player-rewards/brand/{brandId}/player/{playerId}` so the player's balance reflects the entry fee.

## Path parameters

- `brandId` string, uuid, required
- `leaderboardId` string, required
- `playerId` string, required

## Response `201`

Player is enrolled.

- EnrollmentStatus
  - `leaderboardId` string
  - `playerId` string
  - `isEnrolled` boolean
  - `enrolledAt` string, date-time, nullable
  - `costCurrencyId` string, uuid, nullable
  - `costAmount` integer, nullable

## Other responses

- `400` — The target leaderboard is not a tournament, or the player cannot enroll.
- `404` — Resource not found (brand, player, mission, leaderboard, etc.).

---

[API](https://skmtc.net/optimove/apis/optimove-api.md) · [All operations](https://skmtc.net/optimove/apis/optimove-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/optimove/optimove-api/revisions/fc55c5b1bec5/schema)
