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

# PFPlayerDataManagementServerGetUserReadOnlyDataAsync

> Server API to retrieve title-specific user data that is read-only for the client for a specified PlayFab player, callable from trusted game servers over HTTPS.

Retrieves the title-specific custom data for the user which can only be read by the client

## Syntax

```cpp theme={null}
HRESULT PFPlayerDataManagementServerGetUserReadOnlyDataAsync(  
    PFEntityHandle titleEntityHandle,  
    const PFPlayerDataManagementGetUserDataRequest* request,  
    XAsyncBlock* async  
)  
```

### Parameters

**`titleEntityHandle`**   PFEntityHandle

PFEntityHandle for a title Entity obtained using PFAuthenticationGetEntityWithSecretKeyAsync.

**`request`**   [PFPlayerDataManagementGetUserDataRequest\*](/services/playfab/api-references/c/pfplayerdatamanagementtypes/structs/pfplayerdatamanagementgetuserdatarequest)

Populated request object.

**`async`**   XAsyncBlock\*\
**Inout**

XAsyncBlock for the async operation.

### Return value

Type: HRESULT

Result code for this API operation.

## Remarks

This API is available on Win32, Linux, and macOS. Data is stored as JSON key-value pairs. If the Keys parameter is provided, the data object returned will only contain the data specific to the indicated Keys. Otherwise, the full set of custom user data will be returned. See also ServerGetUserDataAsync, ServerGetUserInternalDataAsync, ServerUpdateUserDataAsync, ServerUpdateUserInternalDataAsync, ServerUpdateUserReadOnlyDataAsync. When the asynchronous task is complete, call [PFPlayerDataManagementServerGetUserReadOnlyDataGetResultSize](/services/playfab/api-references/c/pfplayerdatamanagement/functions/pfplayerdatamanagementservergetuserreadonlydatagetresultsize) and [PFPlayerDataManagementServerGetUserReadOnlyDataGetResult](/services/playfab/api-references/c/pfplayerdatamanagement/functions/pfplayerdatamanagementservergetuserreadonlydatagetresult) to get the result.

## Requirements

**Header:** PFPlayerDataManagement.h

## See also

[PFPlayerDataManagement members](/services/playfab/api-references/c/pfplayerdatamanagement/pfplayerdatamanagement_members)


## Related topics

- [PFPlayerDataManagementServerGetUserReadOnlyDataGetResult](/services/playfab/api-references/c/pfplayerdatamanagement/functions/pfplayerdatamanagementservergetuserreadonlydatagetresult.md)
- [Services C API overview - PFPlayerDataManagement.h](/services/playfab/api-references/c/pfplayerdatamanagement/pfplayerdatamanagement_members.md)
- [PFPlayerDataManagementServerGetUserPublisherReadOnlyDataAsync](/services/playfab/api-references/c/pfplayerdatamanagement/functions/pfplayerdatamanagementservergetuserpublisherreadonlydataasync.md)
- [PFPlayerDataManagementServerUpdateUserReadOnlyDataAsync](/services/playfab/api-references/c/pfplayerdatamanagement/functions/pfplayerdatamanagementserverupdateuserreadonlydataasync.md)
- [PFPlayerDataManagementServerUpdateUserPublisherReadOnlyDataAsync](/services/playfab/api-references/c/pfplayerdatamanagement/functions/pfplayerdatamanagementserverupdateuserpublisherreadonlydataasync.md)
