---
title: "Get performance statistics of a user"
method: GET
path: "/api/user/{username}/perf/{perf}"
tags: ["Users"]
---

# Get performance statistics of a user

`GET /api/user/{username}/perf/{perf}`

Read performance statistics of a user, for a single performance.
Similar to the [performance pages on the website](https://lichess.org/@/thibault/perf/bullet).

## Path parameters

- `username` string, required
- `perf` 'ultraBullet' | 'bullet' | 'blitz' | 'rapid' | 'classical' | 'correspondence' | 'chess960' | 'crazyhouse' | 'antichess' | 'atomic' | 'horde' | 'kingOfTheHill' | 'racingKings' | 'threeCheck', required

## Response `200`

The performance statistics of the user

- PerfStat
  - `user` object, required
    - `name` string, required
  - `perf` object, required
    - `glicko` object
      - `rating` number
      - `deviation` number
      - `provisional` boolean
    - `nb` integer
    - `progress` integer
  - `rank` integer, nullable, required
  - `percentile` number, required
  - `stat` object, required
    - `highest` object
      - `int` integer, required
      - `at` string, date-time, required
      - `gameId` string, required
    - `lowest` object
      - `int` integer, required
      - `at` string, date-time, required
      - `gameId` string, required
    - `bestWins` object, required
      - `results` object[], required
        - `opRating` integer, required
        - `opId` LightUser, required
          - `id` string, required
          - `name` string, required
          - `flair` string — See [available flair list and images](https://github.com/lichess-org/lila/tree/master/public/flair)
          - `title` 'GM' | 'WGM' | 'IM' | 'WIM' | 'FM' | 'WFM' | 'NM' | 'CM' | 'WCM' | 'WNM' | 'LM' | 'BOT' — only appears if the user is a titled player or a bot user
          - `patron` boolean — Use patronColor value instead to determine if player is a patron.
          - `patronColor` integer — Players can choose a color for their Patron wings. See [here for the color mappings](https://github.com/lichess-org/lila/blob/master/ui/lib/css/abstract/_patron-colors.scss). The presence of this field indicates the player is an active Patron.
        - `at` string, date-time, required
        - `gameId` string, required
    - `worstLosses` object, required
      - `results` object[], required
        - `opRating` integer, required
        - `opId` LightUser, required
          - `id` string, required
          - `name` string, required
          - `flair` string — See [available flair list and images](https://github.com/lichess-org/lila/tree/master/public/flair)
          - `title` 'GM' | 'WGM' | 'IM' | 'WIM' | 'FM' | 'WFM' | 'NM' | 'CM' | 'WCM' | 'WNM' | 'LM' | 'BOT' — only appears if the user is a titled player or a bot user
          - `patron` boolean — Use patronColor value instead to determine if player is a patron.
          - `patronColor` integer — Players can choose a color for their Patron wings. See [here for the color mappings](https://github.com/lichess-org/lila/blob/master/ui/lib/css/abstract/_patron-colors.scss). The presence of this field indicates the player is an active Patron.
        - `at` string, date-time, required
        - `gameId` string, required
    - `count` object, required
      - `all` integer, required
      - `rated` integer, required
      - `win` integer, required
      - `loss` integer, required
      - `draw` integer, required
      - `tour` integer, required
      - `berserk` integer, required
      - `opAvg` number, required
      - `seconds` integer, required
      - `disconnects` integer, required
    - `resultStreak` object, required
      - `win` object, required
        - `cur` object, required
          - `v` integer, required
          - `from` object
            - `at` string, date-time, required
            - `gameId` string, required
          - `to` object
            - `at` string, date-time, required
            - `gameId` string, required
        - `max` object, required
          - `v` integer, required
          - `from` object
            - `at` string, date-time, required
            - `gameId` string, required
          - `to` object
            - `at` string, date-time, required
            - `gameId` string, required
      - `loss` object, required
        - `cur` object, required
          - `v` integer, required
          - `from` object
            - `at` string, date-time, required
            - `gameId` string, required
          - `to` object
            - `at` string, date-time, required
            - `gameId` string, required
        - `max` object, required
          - `v` integer, required
          - `from` object
            - `at` string, required
            - `gameId` string, required
          - `to` object
            - `at` string, required
            - `gameId` string, required
    - `playStreak` object, required
      - `nb` object, required
        - `cur` object, required
          - `v` integer, required
        - `max` object, required
          - `v` integer, required
          - `from` object
            - `at` string, date-time, required
            - `gameId` string, required
          - `to` object
            - `at` string, date-time, required
            - `gameId` string, required
      - `time` object, required
        - `cur` object, required
          - `v` integer, required
        - `max` object, required
          - `v` integer, required
          - `from` object
            - `at` string, date-time, required
            - `gameId` string, required
          - `to` object
            - `at` string, date-time, required
            - `gameId` string, required
      - `lastDate` string, date-time

---

[API](https://skmtc.net/lichess/apis/lichess-org-api-reference.md) · [All operations](https://skmtc.net/lichess/apis/lichess-org-api-reference/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/lichess/lichess-org-api-reference/versions/1425db81eb3b/schema)
