> ## 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.

# PFPlayerDataManagementUpdateUserInternalDataRequest

> PFPlayerDataManagementUpdateUserInternalDataRequest data model. This function performs an additive update of the arbitrary JSON object containing the custom.

PFPlayerDataManagementUpdateUserInternalDataRequest data model. This function performs an additive update of the arbitrary JSON object containing the custom data for the user. In updating the custom data object, keys which already exist in the object will have their values overwritten, keys with null values will be removed. No other key-value pairs will be changed apart from those specified in the call.

## Syntax

```cpp theme={null}
typedef struct PFPlayerDataManagementUpdateUserInternalDataRequest {  
    PFStringDictionaryEntry const* customTags;  
    uint32_t customTagsCount;  
    PFStringDictionaryEntry const* data;  
    uint32_t dataCount;  
    const char* const* keysToRemove;  
    uint32_t keysToRemoveCount;  
    const char* playFabId;  
} PFPlayerDataManagementUpdateUserInternalDataRequest;  
```

### Members

**`customTags`**   [PFStringDictionaryEntry](/services/playfab/api-references/c/pftypes/structs/pfstringdictionaryentry) const\*<br />*may be nullptr*

(Optional) The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.).

**`customTagsCount`**   uint32\_t

Count of customTags

**`data`**   [PFStringDictionaryEntry](/services/playfab/api-references/c/pftypes/structs/pfstringdictionaryentry) const\*<br />*may be nullptr*

(Optional) Key-value pairs to be written to the custom data. Note that keys are trimmed of whitespace, are limited in size, and may not begin with a '!' character or be null.

**`dataCount`**   uint32\_t

Count of data

**`keysToRemove`**   const char\* const\*<br />*may be nullptr*

(Optional) Optional list of Data-keys to remove from UserData. Some SDKs cannot insert null-values into Data due to language constraints. Use this to delete the keys directly.

**`keysToRemoveCount`**   uint32\_t

Count of keysToRemove

**`playFabId`**   const char\*<br />*is null-terminated*

Unique PlayFab assigned ID of the user on whom the operation will be performed.

## Requirements

**Header:** PFPlayerDataManagementTypes.h

## See also

[PFPlayerDataManagementTypes members](/services/playfab/api-references/c/pfplayerdatamanagementtypes/pfplayerdatamanagementtypes_members)


## Related topics

- [PFPlayerDataManagementServerUpdateUserInternalDataAsync](/services/playfab/api-references/c/pfplayerdatamanagement/functions/pfplayerdatamanagementserverupdateuserinternaldataasync.md)
- [PFPlayerDataManagementServerUpdateUserPublisherInternalDataAsync](/services/playfab/api-references/c/pfplayerdatamanagement/functions/pfplayerdatamanagementserverupdateuserpublisherinternaldataasync.md)
- [Services C API overview - PFPlayerDataManagementTypes.h](/services/playfab/api-references/c/pfplayerdatamanagementtypes/pfplayerdatamanagementtypes_members.md)
- [PFPlayerDataManagementServerUpdateUserInternalDataGetResult](/services/playfab/api-references/c/pfplayerdatamanagement/functions/pfplayerdatamanagementserverupdateuserinternaldatagetresult.md)
- [PFPlayerDataManagementServerUpdateUserPublisherInternalDataGetResult](/services/playfab/api-references/c/pfplayerdatamanagement/functions/pfplayerdatamanagementserverupdateuserpublisherinternaldatagetresult.md)
