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

# Update Player Statistics

> Updates the values of the specified title-specific statistics for the user. By default, clients are not permitted to update statistics. Developers may override this setting in the Game Manager > Settings > API Features.

## Error codes

This operation may return the following PlayFab errors:

| Error | Code |
| --- | --- |
| APINotEnabledForGameClientAccess | 1082 |
| DuplicateStatisticName | 1253 |
| ProductDisabledForTitle | 1609 |
| StatisticCountLimitExceeded | 1203 |
| StatisticNameConflict | 1196 |
| StatisticNotFound | 1195 |
| StatisticValueAggregationOverflow | 1308 |
| StatisticVersionClosedForWrites | 1197 |
| StatisticVersionInvalid | 1198 |




## OpenAPI

````yaml post /Client/UpdatePlayerStatistics
openapi: 3.0.0
info:
  version: '260922'
  title: PlayFab Client API
  description: >-
    APIs which provide the full range of PlayFab features available to the
    client - authentication, account and data management, inventory, friends,
    matchmaking, reporting, and platform-specific functionality
  termsOfService: https://playfab.com/terms/
  contact:
    url: https://community.playfab.com/index.html
  license:
    name: Apache 2.0
    url: https://github.com/PlayFab/API_Specs/blob/master/LICENSE
servers:
  - url: https://{titleId}.playfabapi.com
    description: PlayFab title endpoint
    variables:
      titleId:
        default: your_title_id
        description: Your PlayFab title ID (hex).
security: []
tags:
  - name: Account Management
    description: Account Management APIs
  - name: Advertising
    description: Advertising APIs
  - name: Analytics
    description: Analytics APIs
  - name: Authentication
    description: Authentication APIs
  - name: Character Data
    description: Character Data APIs
  - name: Characters
    description: Characters APIs
  - name: Content
    description: Content Service APIs
  - name: Friend List Management
    description: Friend List Management APIs
  - name: Matchmaking
    description: Matchmaking APIs
  - name: Platform Specific Methods
    description: Platform Specific Methods APIs
  - name: Player Data Management
    description: Player Data Management APIs
  - name: Player Item Management
    description: Player Item Management APIs
  - name: PlayStream
    description: PlayStream Management APIs
  - name: Server-Side Cloud Script
    description: Server-Side Cloud Script APIs
  - name: Shared Group Data
    description: Shared Group Data APIs
  - name: Title-Wide Data Management
    description: Title-Wide Data Management APIs
  - name: Trading
    description: Trading Management APIs
paths:
  /Client/UpdatePlayerStatistics:
    post:
      tags:
        - Player Data Management
      summary: Update Player Statistics
      description: >
        Updates the values of the specified title-specific statistics for the
        user. By default, clients are not permitted to update statistics.
        Developers may override this setting in the Game Manager > Settings >
        API Features.


        ## Error codes


        This operation may return the following PlayFab errors:


        | Error | Code |

        | --- | --- |

        | APINotEnabledForGameClientAccess | 1082 |

        | DuplicateStatisticName | 1253 |

        | ProductDisabledForTitle | 1609 |

        | StatisticCountLimitExceeded | 1203 |

        | StatisticNameConflict | 1196 |

        | StatisticNotFound | 1195 |

        | StatisticValueAggregationOverflow | 1308 |

        | StatisticVersionClosedForWrites | 1197 |

        | StatisticVersionInvalid | 1198 |
      operationId: UpdatePlayerStatistics
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdatePlayerStatisticsRequest'
        description: >-
          Enable this option with the 'Allow Client to Post Player Statistics'
          option in PlayFab GameManager for your title. However, this is not
          best practice, as this data will no longer be safely controlled by the
          server. This operation is additive. Statistics not currently defined
          will be added, while those already defined will be updated with the
          given values. All other user statistics will remain unchanged. Note
          that if the statistic is intended to have a reset period, the
          UpdatePlayerStatisticDefinition API call can be used to define that
          reset period. Once a statistic has been versioned (reset), the
          now-previous version can still be written to for up a short,
          pre-defined period (currently 10 seconds), using the Version parameter
          in this call.
      responses:
        '200':
          $ref: '#/components/responses/UpdatePlayerStatisticsResult'
        '400':
          $ref: '#/components/responses/ApiErrorWrapper'
      security:
        - SessionTicket: []
components:
  schemas:
    UpdatePlayerStatisticsRequest:
      description: >-
        Enable this option with the 'Allow Client to Post Player Statistics'
        option in PlayFab GameManager for your title. However, this is not best
        practice, as this data will no longer be safely controlled by the
        server. This operation is additive. Statistics not currently defined
        will be added, while those already defined will be updated with the
        given values. All other user statistics will remain unchanged. Note that
        if the statistic is intended to have a reset period, the
        UpdatePlayerStatisticDefinition API call can be used to define that
        reset period. Once a statistic has been versioned (reset), the
        now-previous version can still be written to for up a short, pre-defined
        period (currently 10 seconds), using the Version parameter in this call.
      type: object
      properties:
        CustomTags:
          description: >-
            The optional custom tags associated with the request (e.g. build
            number, external trace identifiers, etc.).
          type: object
        Statistics:
          description: Statistics to be updated with the provided values
          type: array
          items:
            $ref: '#/components/schemas/StatisticUpdate'
          x-isclass: true
      required:
        - Statistics
      example:
        Statistics:
          - StatisticName: Points
            Version: 1
            Value: 600
          - StatisticName: Wins
            Version: 0
            Value: 16
          - StatisticName: Stars
            Value: 7
    StatisticUpdate:
      type: object
      properties:
        StatisticName:
          description: unique name of the statistic
          type: string
        Value:
          description: statistic value for the player
          type: number
          x-actualtype: int32
        Version:
          description: >-
            for updates to an existing statistic value for a player, the version
            of the statistic when it was loaded. Null when setting the statistic
            value for the first time.
          type: number
          x-actualtype: uint32
      required:
        - StatisticName
        - Value
    UpdatePlayerStatisticsResult:
      type: object
      properties: {}
    ApiErrorWrapper:
      description: The basic wrapper around every failed API response
      type: object
      properties:
        code:
          description: Numerical HTTP code
          type: integer
        status:
          description: String HTTP code
          type: string
        error:
          description: Playfab error code
          type: string
        errorCode:
          description: Numerical PlayFab error code
          type: integer
        errorMessage:
          description: Description for the PlayFab errorCode
          type: string
        errorDetails:
          description: Detailed description of individual issues with the request object
          type: object
      required:
        - code
        - errorCode
  responses:
    UpdatePlayerStatisticsResult:
      description: ''
      content:
        application/json:
          schema:
            type: object
            properties:
              code:
                type: integer
                description: >-
                  The Http status code. If X-ReportErrorAsSuccess header is set
                  to true, this will report the actual http error code.
              status:
                type: string
                description: The Http status code as a string.
              data:
                $ref: '#/components/schemas/UpdatePlayerStatisticsResult'
    ApiErrorWrapper:
      description: This is the outer wrapper for all responses with errors
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ApiErrorWrapper'
  securitySchemes:
    SessionTicket:
      type: apiKey
      in: header
      name: X-Authorization
      description: >-
        This API requires a client session ticket, available from any Client
        Login function.

````

## Related topics

- [Update Player Statistics](/api-reference/player-data-management/update-player-statistics.md)
- [Update Player Statistic Definition](/api-reference/player-data-management/update-player-statistic-definition.md)
- [Using player statistics](/services/playfab/community/leaderboards/tournaments-leaderboards/using-player-statistics.md)
- [Using resettable statistics and leaderboards](/services/playfab/community/leaderboards/tournaments-leaderboards/using-resettable-statistics-and-leaderboards.md)
- [Get Player Statistic Definitions](/services/playfab/api-references/rest/admin/player-data-management/get-player-statistic-definitions.md)
