> ## 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 Custom Properties

> Updates the title-specific custom property values for a player

## Error codes

This operation may return the following PlayFab errors:

| Error | Code |
| --- | --- |
| PlayerCustomPropertiesDuplicatePropertyName | 19006 |
| PlayerCustomPropertiesPropertyCountTooHigh | 19005 |
| PlayerCustomPropertiesPropertyNameIsInvalid | 19001 |
| PlayerCustomPropertiesPropertyNameTooLong | 19000 |
| PlayerCustomPropertiesStringPropertyValueTooLong | 19002 |
| PlayerCustomPropertiesValueIsInvalidType | 19003 |
| PlayerCustomPropertiesVersionMismatch | 19004 |
| ProductDisabledForTitle | 1609 |




## OpenAPI

````yaml post /Server/UpdatePlayerCustomProperties
openapi: 3.0.0
info:
  version: '260922'
  title: PlayFab Server API
  description: >-
    Provides functionality to allow external (developer-controlled) servers to
    interact with user inventories and data in a trusted manner, and to handle
    matchmaking and client connection orchestration
  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: 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
paths:
  /Server/UpdatePlayerCustomProperties:
    post:
      tags:
        - Player Data Management
      summary: Update Player Custom Properties
      description: |
        Updates the title-specific custom property values for a player

        ## Error codes

        This operation may return the following PlayFab errors:

        | Error | Code |
        | --- | --- |
        | PlayerCustomPropertiesDuplicatePropertyName | 19006 |
        | PlayerCustomPropertiesPropertyCountTooHigh | 19005 |
        | PlayerCustomPropertiesPropertyNameIsInvalid | 19001 |
        | PlayerCustomPropertiesPropertyNameTooLong | 19000 |
        | PlayerCustomPropertiesStringPropertyValueTooLong | 19002 |
        | PlayerCustomPropertiesValueIsInvalidType | 19003 |
        | PlayerCustomPropertiesVersionMismatch | 19004 |
        | ProductDisabledForTitle | 1609 |
      operationId: UpdatePlayerCustomProperties
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdatePlayerCustomPropertiesRequest'
        description: >-
          Performs an additive update of the custom properties for the specified
          player. In updating the player's custom properties, properties which
          already exist will have their values overwritten. No other properties
          will be changed apart from those specified in the call.
      responses:
        '200':
          $ref: '#/components/responses/UpdatePlayerCustomPropertiesResult'
        '400':
          $ref: '#/components/responses/ApiErrorWrapper'
      security:
        - SecretKey: []
components:
  schemas:
    UpdatePlayerCustomPropertiesRequest:
      description: >-
        Performs an additive update of the custom properties for the specified
        player. In updating the player's custom properties, properties which
        already exist will have their values overwritten. No other properties
        will be changed apart from those specified in the call.
      type: object
      properties:
        CustomTags:
          description: >-
            The optional custom tags associated with the request (e.g. build
            number, external trace identifiers, etc.).
          type: object
        ExpectedPropertiesVersion:
          description: >-
            Optional field used for concurrency control. One can ensure that the
            update operation will only be performed if the player's properties
            have not been updated by any other clients since last the version.
          type: number
          x-actualtype: int32
        PlayFabId:
          description: >-
            Unique PlayFab assigned ID of the user on whom the operation will be
            performed.
          type: string
        Properties:
          description: Collection of properties to be set for a player.
          type: array
          items:
            $ref: '#/components/schemas/UpdateProperty'
          x-isclass: true
      required:
        - PlayFabId
        - Properties
      example:
        PlayFabId: '2039475'
        Properties:
          - Name: level
            Value: 5
          - Name: created
            Value: false
        ExpectedPropertiesVersion: 12
    UpdateProperty:
      type: object
      properties:
        Name:
          description: >-
            Name of the custom property. Can contain Unicode letters and digits.
            They are limited in size.
          type: string
        Value:
          description: >-
            Value of the custom property. Limited to booleans, numbers, and
            strings.
          type: object
      required:
        - Name
        - Value
    UpdatePlayerCustomPropertiesResult:
      type: object
      properties:
        PlayFabId:
          description: PlayFab unique identifier of the user whose properties were updated.
          type: string
        PropertiesVersion:
          description: >-
            Indicates the current version of a player's properties that have
            been set. This is incremented after updates and deletes. This
            version can be provided in update and delete calls for concurrency
            control.
          type: number
          x-actualtype: int32
      required:
        - PropertiesVersion
      example:
        PlayFabId: '2039475'
        PropertiesVersion: 8
    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:
    UpdatePlayerCustomPropertiesResult:
      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/UpdatePlayerCustomPropertiesResult'
            example:
              code: 200
              status: OK
              data:
                PlayFabId: '2039475'
                PropertiesVersion: 8
    ApiErrorWrapper:
      description: This is the outer wrapper for all responses with errors
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ApiErrorWrapper'
  securitySchemes:
    SecretKey:
      type: apiKey
      in: header
      name: X-SecretKey
      description: >-
        This API requires a title secret key, available to title admins, from
        PlayFab Game Manager.

````

## Related topics

- [Update Player Custom Properties](/api-reference/player-data-management/update-player-custom-properties.md)
- [Player Custom Properties](/services/playfab/live-service-management/game-configuration/segmentation/player-custom-properties.md)
- [Player Custom Properties Quickstart](/services/playfab/live-service-management/game-configuration/segmentation/player-custom-properties-qs.md)
- [PFPlayerDataManagementServerUpdatePlayerCustomPropertiesAsync](/services/playfab/api-references/c/pfplayerdatamanagement/functions/pfplayerdatamanagementserverupdateplayercustompropertiesasync.md)
- [PFPlayerDataManagementServerUpdatePlayerCustomPropertiesRequest](/services/playfab/api-references/c/pfplayerdatamanagementtypes/structs/pfplayerdatamanagementserverupdateplayercustompropertiesrequest.md)
