---
title: "List Leaderboards for a Player"
method: GET
path: "/leaderboards/brand/{brandId}/player/{playerId}"
tags: ["Leaderboards"]
---

# List Leaderboards for a Player

`GET /leaderboards/brand/{brandId}/player/{playerId}`

## Request

- Base URL: `https://opti-ls-api-us.optimove.net/api`
- URL: `https://opti-ls-api-us.optimove.net/api/leaderboards/brand/{brandId}/player/{playerId}`
- Auth: none declared

Leaderboards and tournaments visible to the player: those not limited to any target group, plus those that share at least one target group with the player. Use this list in any player-facing UI.

Target group membership comes from Optimove and refreshes daily, so a player added to a group may not see its tournaments until the next day.

## Path parameters

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

## Query parameters

- `type` 'leaderboard' | 'tournament'

## Response `200`

Array of leaderboards visible to the player.

- Leaderboard[]
  - `id` string: UUID. Use as `leaderboardId` in statistics and enrollment calls.
  - `brandId` string, uuid
  - `name` string: Display name shown in the widget.
  - `description` string, nullable: Optional longer description.
  - `type` 'leaderboard' | 'tournament': `leaderboard` (auto-enrolled, rank by score) or `tournament` (opt-in, may have entry cost).
  - `status` 'draft' | 'active' | 'rewarding' | 'archived': `draft` not visible; `active` running; `rewarding` period ended, prizes distributing (typically resolves within 5 to 20 minutes); `archived` terminal state.
  - `objectivesActivated` boolean: `true` when the leaderboard score is driven by in-app objectives.
  - `startDate` string, date-time: When the current period started.
  - `endDate` string, date-time: When the current period ends.
  - `isRepeatable` boolean: Whether the leaderboard resets and restarts automatically.
  - `resetEveryHours` integer, nullable: Reset interval in hours (e.g. `168` = weekly). `null` if not repeatable.
  - `rewards` LeaderboardRewardTier[]: Prize tiers by rank range. Show these as the incentive to compete.
    - `id` string
    - `leaderboardId` string
    - `rankFrom` integer: Start of the rank range eligible for this prize tier (inclusive).
    - `rankTo` integer: End of the rank range (inclusive).
    - `items` LeaderboardRewardItem[]
      - `id` string
      - `leaderboardRewardId` string
      - `rewardId` string, uuid: Look up in the rewards catalog by matching against `id`.
      - `amount` integer
      - `rewardName` string
      - `rewardType` 'currency' | 'progression' | 'badge'
      - `rewardIcon` string, nullable
      - `rewardTag` 'common' | 'rare' | 'epic' | 'legendary'
    - `createdAt` string, date-time
    - `updatedAt` string, date-time
  - `objectives` string[]: Objective IDs that drive the leaderboard score. Empty array when `objectivesActivated` is `false`.
  - `participationCostCurrencyId` string, uuid, nullable: UUID of the currency required to enter (tournaments only). `null` if free.
  - `participationCostAmount` integer, nullable: Amount of that currency required to enter (tournaments only). `null` if free.
  - `targetGroupIds` integer[], nullable: Target groups the leaderboard is limited to. `null` or empty means open to all players. Already applied in `listPlayerLeaderboards`.
  - `createdAt` string, date-time
  - `updatedAt` string, date-time

---

[API](https://skmtc.dev/optimove/apis/optimove-loyalty-system-api.md) - [All operations](https://skmtc.dev/optimove/apis/optimove-loyalty-system-api/llms.txt) - [OpenAPI document](https://skmtc.dev/optimove/apis/optimove-loyalty-system-api/revisions/f174877a5fb7?raw)
