> ## Documentation Index
> Fetch the complete documentation index at: https://padelapi.org/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Show Player Stats

> Retrieve aggregated career and performance statistics for a professional padel
player, computed in real time from every finished and retired match in the Padel
API database. Use it to power player profiles, scouting tools, fantasy models and
fan dashboards without crunching raw match data yourself.

> 🔒 This endpoint [requires a **Pro** subscription](https://padelapi.org/billing).

The response covers win/loss record, set and game tallies, per-match averages and
tournament progression. Read `coverage` first: it tells you which matches the
performance metrics are computed over. Palmarés always spans the whole history.
The [padel statistics guide](https://padelapi.org/docs/guides/padel-statistics)
has worked examples and metric definitions.



## OpenAPI

````yaml https://padelapi.org/docs/api.json get /players/{player}/stats
openapi: 3.1.0
info:
  title: Padel API – API Reference
  version: '1.0'
  description: padelapi.org
servers:
  - url: https://padelapi.org/api
security:
  - http: []
paths:
  /players/{player}/stats:
    get:
      tags:
        - Player
      summary: Show Player Stats
      description: >-
        Retrieve aggregated career and performance statistics for a professional
        padel

        player, computed in real time from every finished and retired match in
        the Padel

        API database. Use it to power player profiles, scouting tools, fantasy
        models and

        fan dashboards without crunching raw match data yourself.


        > 🔒 This endpoint [requires a **Pro**
        subscription](https://padelapi.org/billing).


        The response covers win/loss record, set and game tallies, per-match
        averages and

        tournament progression. Read `coverage` first: it tells you which
        matches the

        performance metrics are computed over. Palmarés always spans the whole
        history.

        The [padel statistics
        guide](https://padelapi.org/docs/guides/padel-statistics)

        has worked examples and metric definitions.
      operationId: getPlayerStats
      parameters:
        - name: player
          in: path
          required: true
          description: The player ID
          schema:
            type: integer
        - name: after_date
          in: query
          description: Date after to calculate the stats in `YYYY-MM-DD` format.
          schema:
            type:
              - string
              - 'null'
            format: date
        - name: before_date
          in: query
          description: Date before to calculate the stats in `YYYY-MM-DD` format.
          schema:
            type:
              - string
              - 'null'
            format: date
        - name: level
          in: query
          description: >-
            Tournament level(s) to scope the stats. Accepts one or multiple
            comma-separated values (e.g. `major,p1,p2` for all Premier Padel
            matches).
          schema:
            type:
              - string
              - 'null'
        - name: round
          in: query
          description: >-
            Round of the match to calculate the stats (1 = Final, 2 = Semifinal,
            4 = Quarterfinal, 8 = Round of 16, 16 = Round of 32, 32 = Round of
            64)
          schema:
            type:
              - integer
              - 'null'
            enum:
              - '1'
              - '2'
              - '4'
              - '8'
              - '16'
              - '32'
      responses:
        '200':
          description: '`PlayerStatsResource`'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlayerStatsResource'
        '401':
          $ref: '#/components/responses/AuthenticationException'
        '404':
          $ref: '#/components/responses/ModelNotFoundException'
        '422':
          $ref: '#/components/responses/ValidationException'
components:
  schemas:
    PlayerStatsResource:
      type: object
      properties:
        id:
          type: integer
          description: Unique identifier of the player these stats belong to.
        self:
          type: string
          description: Path to this endpoint, relative to `https://padelapi.org`.
        coverage:
          description: >-
            Basis of the performance metrics, so you know what the numbers below
            are computed over. `full` means complete draws are available for the
            whole history and every match counts. `partial` means only finals
            exist for the earliest period, so performance counts the matches
            with complete draws and excludes those older finals. `finals_only`
            means only finals are available (they predate complete-draw
            coverage, or `round=1` was filtered), so performance is computed
            over them. `null` when there are no matches. Palmarés is unaffected:
            it always spans the whole history.
          anyOf:
            - type: 'null'
            - type: string
              enum:
                - full
                - partial
                - finals_only
        performance_since:
          type:
            - string
            - 'null'
          description: >-
            Date of the earliest match included in the performance metrics, as
            `YYYY-MM-DD`. Anything before it is excluded per `coverage`. `null`
            when there are no matches.
        matches_played:
          type: integer
          description: >-
            Matches counted in the performance metrics. Limited by `coverage`,
            so it can be lower than the total number of matches the player has
            ever played.
        matches_won:
          type: integer
          description: Matches won out of `matches_played`.
        win_percentage:
          type:
            - number
            - 'null'
          description: >-
            Win rate as a percentage of `matches_played`, rounded to two
            decimals. `null` when no matches are counted.
        sets_won:
          type: integer
          description: Sets won across `matches_played`.
        sets_lost:
          type: integer
          description: >-
            Sets lost across `matches_played`. Together with `sets_won` it gives
            the set balance.
        avg_sets_per_match:
          type:
            - number
            - 'null'
          description: >-
            Average sets played per match, counting both sides, rounded to two
            decimals. A proxy for how long the player's matches tend to run.
            `null` when no matches are counted.
        games_won:
          type: integer
          description: Games won across `matches_played`.
        games_lost:
          type: integer
          description: >-
            Games lost across `matches_played`. Together with `games_won` it
            measures game-level dominance.
        avg_games_per_match:
          type:
            - number
            - 'null'
          description: >-
            Average games played per match, counting both sides, rounded to two
            decimals. `null` when no matches are counted.
        titles:
          type: integer
          description: >-
            Tournaments won, over the player's whole history regardless of
            `coverage`.
        finals:
          type: integer
          description: >-
            Finals reached, over the player's whole history regardless of
            `coverage`. Includes the ones won, so `titles` is always a subset.
        semifinals:
          type:
            - integer
            - 'null'
          description: >-
            Semifinals reached, over the player's whole history regardless of
            `coverage`. `null` when `coverage` is `finals_only`, since earlier
            rounds are not available to count.
        best_round:
          type:
            - integer
            - 'null'
          description: >-
            Furthest stage ever reached, in the same scale as a match `round`:
            `1` a final, `2` a semifinal, `4` a quarterfinal, and so on. Lower
            is better. `null` when there are no matches.
        connections:
          type: object
          description: Related endpoints for these stats.
          properties:
            player:
              type: string
              description: Profile of the player these stats belong to.
          required:
            - player
      required:
        - id
        - self
        - coverage
        - performance_since
        - matches_played
        - matches_won
        - win_percentage
        - sets_won
        - sets_lost
        - avg_sets_per_match
        - games_won
        - games_lost
        - avg_games_per_match
        - titles
        - finals
        - semifinals
        - best_round
        - connections
      title: PlayerStatsResource
  responses:
    AuthenticationException:
      description: Unauthenticated
      content:
        application/json:
          schema:
            type: object
            properties:
              message:
                type: string
                description: Error overview.
            required:
              - message
    ModelNotFoundException:
      description: Not found
      content:
        application/json:
          schema:
            type: object
            properties:
              message:
                type: string
                description: Error overview.
            required:
              - message
    ValidationException:
      description: Validation error
      content:
        application/json:
          schema:
            type: object
            properties:
              message:
                type: string
                description: Errors overview.
              errors:
                type: object
                description: A detailed description of each field that failed validation.
                additionalProperties:
                  type: array
                  items:
                    type: string
            required:
              - message
              - errors
  securitySchemes:
    http:
      type: http
      scheme: bearer

````