# Update user private data (/docs/apis/management/users/PatchPrivateData)

`PATCH /users/{user_id}/private_data`

Applies a partial update to the private data associated with the specified user. Only fields included in the request are updated. Private data fields can be removed by sending a `null` value for the corresponding key. Intended for sensitive or internal-use attributes. Avoid exposing these values to client applications. If surfaced via custom claims, include them only in tokens issued to trusted backend services to prevent accidental disclosure.

Base URL: `https://{tenant}.{region}.monocloud.com/api`, where `{tenant}`, `{region}` (one of us, eu, in) come from your tenant. Authentication: send your Management API key in the `X-API-KEY` header.

## Parameters

- `user_id` (path) (string, required) The unique identifier of the user.

## Request body

JSON, required. The request payload used to update a user's private data.

- `private_data` (Record<string, any>, required) A structured payload for updating private data. Supports strings, numbers, booleans, arrays, and nested objects. Fields omitted remain unchanged; fields set to `null` are removed.

## Response body

`200`, JSON. The user's private data was updated successfully

Returns `UserPrivateData`.

- `private_data` (Record<string, any>, required) The private data associated with the user's account.

## Errors

- `400` Bad Request
  - `type` (string, required) A URI reference that identifies the error type. When accessed, it may provide human-readable documentation.
  - `title` (string, required) A short, human-readable summary of the error.
  - `status` (integer, required, int32) The HTTP status code associated with this error response.
  - `trace_id` (string, required) A unique identifier for the request, used for tracing and diagnostics.
  - `detail` (string) A human-readable explanation specific to this occurrence of the error.
  - `instance` (string) A URI reference that identifies the specific occurrence of the error.
- `401` Unauthorized
- `403` Forbidden
- `404` Not Found
  Same body as `400`.
- `422` Unprocessable Entity
  - `KeyValidationProblemDetails`
    - `type` (string, required) A URI reference that identifies the error type. When accessed, it may provide human-readable documentation.
    - `title` (string, required) A short, human-readable summary of the error.
    - `status` (integer, required, int32) The HTTP status code associated with this error response.
    - `trace_id` (string, required) A unique identifier for the request, used for tracing and diagnostics.
    - `detail` (string) A human-readable explanation specific to this occurrence of the error.
    - `instance` (string) A URI reference that identifies the specific occurrence of the error.
    - `errors` (Record<string, string[]>, required) A key-value map of validation errors, where each key represents a request field and the value contains one or more messages describing why the request could not be processed.
  - `IdentityValidationProblemDetails`
    - `type` (string, required) A URI reference that identifies the error type. When accessed, it may provide human-readable documentation.
    - `title` (string, required) A short, human-readable summary of the error.
    - `status` (integer, required, int32) The HTTP status code associated with this error response.
    - `trace_id` (string, required) A unique identifier for the request, used for tracing and diagnostics.
    - `detail` (string) A human-readable explanation specific to this occurrence of the error.
    - `instance` (string) A URI reference that identifies the specific occurrence of the error.
    - `errors` (IdentityError[], required) List of identity validation errors describing why the request could not be processed.

## Example (MonoCloud .NET SDK)

```csharp
using MonoCloud.Management;
using MonoCloud.Management.Models;
using MonoCloud.Management.Core.Base;

var apiClient = new MonoCloudManagementClient(new MonoCloudConfig("<your-domain>", "[[API-Key]]"));


var userId = "WUgDGqaqzqkRmsgd3PFAT";

var requestBody = new UpdatePrivateDataRequest
  {
    PrivateData = new Dictionary<string, object>
    {
      {
        "transaction_ids", new []
            {
              "5GRZ4X7XUItpRGOwkHhONqTtG",
              "9Fw7Jx9Zja5lWlmRkYJf1WMV9",
            }
      },
      {
        "subscription_plan", "premium"
      },
      {
        "last_renewed", 1672511400
      },
    },
  };


var result = await apiClient.Users.PatchPrivateDataAsync(userId, requestBody);
```

## Example (MonoCloud Javascript SDK)

```javascript
import { MonoCloudManagementClient } from '@monocloud/management';

const apiClient = MonoCloudManagementClient.init({ domain: '<your-domain>', apiKey: '[[API-Key]]' });

const userId = 'WUgDGqaqzqkRmsgd3PFAT';

const requestBody = {
  private_data: {
    transaction_ids: [
      '5GRZ4X7XUItpRGOwkHhONqTtG',
      '9Fw7Jx9Zja5lWlmRkYJf1WMV9'
    ],
    subscription_plan: 'premium',
    last_renewed: 1672511400
  }
};

const result = apiClient.users.patchPrivateData(userId, requestBody);
```