---
title: "Get all-time PnL and unique open assets for current chat members"
method: GET
path: "/v1/chat/rooms/{roomId}/leaderboard"
tags: ["chat"]
---

# Get all-time PnL and unique open assets for current chat members

`GET /v1/chat/rooms/{roomId}/leaderboard`

## Request

- Base URL: `https://app.legend.trade/api/rest`
- URL: `https://app.legend.trade/api/rest/v1/chat/rooms/{roomId}/leaderboard`
- Auth: HTTP bearer

If member order changes between pages, returns HTTP 409. Restart from the first page without a cursor.

## Path parameters

- `roomId` string, uuid, required

## Query parameters

- `limit` integer
- `cursor` string

## Response `200`

Successful response

- ChatLeaderboardOutput
  - `total` integer
  - `nextCursor` string
  - `previousCursor` string
  - `hasMore` boolean, required
  - `memberCount` integer, required
  - `rows` ChatLeaderboardRow[], required
    - `user` PublicUser, required
      - `id` string, required
      - `telegram_id` string, nullable, required
      - `username` string, required
      - `display_name` string, required
      - `referral_code` string, nullable, required
      - `referral_code_alt` string, nullable, required
      - `referred_by_id` string, nullable, required
      - `wallet_address` string, nullable, required
      - `created_at` string, required
      - `updated_at` string, required
      - `x_username` string, nullable, required
      - `last_online` string, nullable, required
      - `last_online_mobile` string, nullable, required
      - `avatar_url` string, required
      - `bio` string, nullable, required
      - `clan_id` string, nullable, required
      - `clan` UserClan, nullable
        - `id` string, required
        - `name` string, required
        - `description` string, nullable, required
        - `image_url` string, nullable, required
        - `banner_url` string, nullable, required
        - `chat_room_id` string, nullable, required
        - `created_at` string, required
        - `updated_at` string, required
      - `rank` integer, nullable, required
      - `rank_testnet` integer, nullable, required
      - `streak` integer, nullable, required
      - `elo` integer, nullable, required
      - `is_npc` boolean, required
      - `last_reset_at` string, nullable, required
      - `feature_image` string, required
      - `completed_onboarding` boolean, required
      - `dismissed_trade_note_cta` boolean, required
      - `has_deposited` boolean, required
      - `invite_code_id` string, nullable, required
      - `main_signer_quorum_id` string, nullable, required
      - `builder_fee_override` integer, nullable, required
      - `fee_rebate_rate` number, nullable, required
      - `fee_rebate_override_rate` number, nullable, required
      - `clan_fee_rebate_rate` number, nullable, required
      - `deleted_at` string, nullable, required
      - `network_mode` 'hyperliquid_testnet' | 'hyperliquid_mainnet' | 'hyperliquid_paper', required
      - `restrict_dms_to_following` boolean, required
      - `pnl_share_enabled` boolean, required
      - `pnl_share_rate` number, required
      - `acknowledged_season_zero` boolean, required
      - `notification_preferences` unknown, required
      - `fat_finger_settings` unknown, required
      - `account_value_tier` integer, required
      - `is_official` boolean, required
      - `trader_level_seen` integer, nullable, required
      - `max_market_order_slippage` number, nullable, required
      - `wallets` Wallet[]
        - `id` string, required
        - `user_id` string, required
        - `address` string, required
        - `type` 'primary' | 'arena' | 'copy_trading', required
        - `privy_wallet_id` string, required
        - `signer_quorum_id` string, nullable, required
        - `hl_setup_complete` boolean, required
        - `created_at` string, required
        - `updated_at` string, required
      - `callerActions` UserActions: Null or false hides an action. Mutations check current permissions again.
        - `callerId` string, uuid, required
        - `follow` UserFollowAction, required
          - `isFollowing` boolean, required
        - `shareProfile` boolean, required
        - `autocopy` UserAutocopyAction, required
          - `activeCopyProfileId` string, uuid, nullable, required: The active copy owned by the caller. Null means no active copy exists.
        - `sendFunds` UserSendFundsAction, required
          - `walletAddress` string, required
        - `chat` boolean, required: Show the chat action. The chat API still checks access.
        - `clanInvite` UserClanInviteAction, required
          - `clanId` string, uuid, required
          - `status` 'available' | 'pending' | 'limit_reached', required: Enable the invite action only when the status is available.
        - `mute` UserMuteAction, required
          - `isMuted` boolean, required
        - `report` boolean, required
    - `rank` integer, nullable, required
    - `pnlUsd` number, nullable, required
    - `assets` ChatMemberAsset[], required
      - `symbol` string, required
      - `notionalUsd` number, required

## Other responses

- `400`: Invalid input data
- `401`: Authorization not provided
- `403`: Insufficient access
- `404`: Not found
- `500`: Internal server error

## Changes

- **2026-10-25** `8d368659667e`: 24 breaking, 24 info
  - the response property `rows/items/pnlUsd` became nullable for the status `200`
  - the response property `rows/items/user/bio` became nullable for the status `200`
  - the response property `rows/items/user/clan/anyOf[subschema #1]/banner_url` became nullable for the status `200`
  - the response property `rows/items/user/clan/anyOf[subschema #1]/chat_room_id` became nullable for the status `200`
  - …44 more
- **2026-10-21** `be91c3fa83a3`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/legend/apis/legend-api/changes/v1/chat/rooms/:roomId/leaderboard/get.md)

---

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