---
title: "Get a user rolling 7-day rank and sidebar profile"
method: GET
path: "/v1/leaderboard/users/{userId}/rank"
tags: ["user"]
---

# Get a user rolling 7-day rank and sidebar profile

`GET /v1/leaderboard/users/{userId}/rank`

## Request

- Base URL: `https://app.legend.trade/api/rest`
- URL: `https://app.legend.trade/api/rest/v1/leaderboard/users/{userId}/rank`
- Auth: none declared
- TypeScript: <https://skmtc.dev/legend/apis/legend-api/docs/v1/leaderboard/users/:userId/rank/get.ts> (a function with typed inputs; its response is checked against the schema)

## Path parameters

- `userId` string, required

## Query parameters

- `network` 'hyperliquid_mainnet' | 'hyperliquid_testnet'

## Response `200`

Successful response

- LeaderboardSidebarRank
  - `rank` integer, required: Rolling 7-day PNL rank.
  - `total` integer, required: Total number of ranked users.
  - `offset` integer, required: Zero-indexed rolling 7-day PNL position.
  - `user` LeaderboardSidebarUser, 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
    - `id` string, required
    - `username` string, required
    - `display_name` string, required
    - `avatar_url` string, required
    - `rank` integer, 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
    - `account_value_tier` integer, required
    - `is_official` boolean, required
    - `wallet_address` string, nullable, required
    - `feature_image` string, nullable, required
    - `stats` LeaderboardSidebarUserStats, required
      - `unrealizedPnl` number, required
  - `stats` LeaderboardSidebarRankStats, required
    - `elo` number, nullable, required
    - `totalProfitUsd` number, required
    - `roiPercent` number, nullable, required
    - `tradeWinRate` number, nullable, required
    - `volumeUsd` number, nullable, required
    - `accountValue` number, nullable, required
    - `avgWinPercent` number, nullable, required
    - `avgHoldTimeHours` number, nullable, required
    - `sharpeRatio` number, nullable, required

## Other responses

- `400`: Invalid input data
- `404`: Not found
- `500`: Internal server error

## Changes

> 113 revisions in range; 1 not diffed.

- **2026-10-25** `8d368659667e`: 15 breaking, 15 info
  - the response property `anyOf[#/components/schemas/LeaderboardSidebarRank]/stats/accountValue` became nullable for the status `200`
  - the response property `anyOf[#/components/schemas/LeaderboardSidebarRank]/stats/avgHoldTimeHours` became nullable for the status `200`
  - the response property `anyOf[#/components/schemas/LeaderboardSidebarRank]/stats/avgWinPercent` became nullable for the status `200`
  - the response property `anyOf[#/components/schemas/LeaderboardSidebarRank]/stats/elo` became nullable for the status `200`
  - …26 more
- **2026-10-07** `440fd2d98e59`: 1 info
  - added the optional property `anyOf[#/components/schemas/LeaderboardSidebarRank]/user/callerActions` to the response with the `200` status
- **2026-09-09** `28b6bc72573e`: 1 info
  - added the required property `anyOf[#/components/schemas/LeaderboardSidebarRank]/user/wallet_address` to the response with the `200` status
- **2026-09-08** `fae004332dd6`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/legend/apis/legend-api/changes/v1/leaderboard/users/:userId/rank/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/965e2d0a9c7d?raw)
