> You are reading the Docusign Developer Documentation. For clean Markdown of any page, append .md to the page URL.
>
> Documentation indexes by section:
> - APIs and SDKs: https://docusign.docs.buildwithfern.com/docs/llms.txt
> - Platform 101: https://docusign.docs.buildwithfern.com/platform/llms.txt
> - Extension Apps: https://docusign.docs.buildwithfern.com/extension-apps/llms.txt
> - Docusign CLI: https://docusign.docs.buildwithfern.com/docusign-cli/llms.txt
>
> Authentication (OAuth, JWT Grant, M2M): https://docusign.docs.buildwithfern.com/platform/auth
> Webhooks and Connect: https://docusign.docs.buildwithfern.com/platform/webhooks
>
> OpenAPI specifications: https://docusign.docs.buildwithfern.com/openapi.json
> MCP server: https://docusign.docs.buildwithfern.com/_mcp/server

# Add or update custom user settings

PUT https://demo.docusign.net/restapi/v2.1/accounts/{accountId}/users/{userId}/custom_settings
Content-Type: application/json

Adds or updates custom user settings for the specified user.

**Note:** Custom user settings are not the same as user account
settings.

Custom settings provide a flexible way to store and retrieve
custom user information that you can use in your own system.

**Important:** There is a limit on the size for all the custom
user settings for a single user. The limit is 4,000 characters,
which includes the XML and JSON structure for the settings.

You can group custom user settings when adding them. Grouping
allows you to retrieve settings that are in a specific group,
instead of retrieving all the user custom settings.

To group custom user settings, include the
`X-DocuSign-User-Settings-Key` header in the request:

`X-DocuSign-User-Settings-Key:group_name`

Where the `group_name` is your designated name for the group of
customer user settings.

When getting or deleting grouped custom user settings, you must
include the `X-DocuSign-User-Settings-Key` header information.

Grouping custom user settings is not required and if the `X-DocuSign-User-Settings-Key`
header information is not included, the custom user settings are
added normally and can be retrieved or deleted without including
the `X-DocuSign-User-Settings-Key` header.

Reference: https://developers.docusign.com/docs/esign-rest-api/reference/users/usercustomsettings/update

## Authentication

- `Authorization` header (required) (prefixed with ` Bearer  `) — OAuth 2.0 access token (JWT or auth-code grant). Sent as `Authorization: Bearer <token>` on every request except `GET /v2.1` and `GET /service_information`, which are public discovery endpoints.

## Servers

- `https://demo.docusign.net/restapi` (Demo, default)
- `https://www.docusign.net/restapi` (Production)

## Request

### Path parameters

- `accountId` (string, required) — The external account number (int) or account ID Guid.
- `userId` (string, required) — The ID of the user to access. **Note:** Users can only access their own information. A user, even one with Admin rights, cannot access another user's settings.

### Body (application/json)

This endpoint expects a customSettingsInformation.

- `customSettings` (list of nameValue, optional) — The name/value pair information for the user custom setting.

## Response

### 200

Successful response.

- `customSettings` (list of nameValue, optional) — The name/value pair information for the user custom setting.

## Errors

### 400 Bad Request Error

Error encountered.

- `errorCode` (string, optional) — The code associated with the error condition.
- `message` (string, optional) — A brief message describing the error condition.

## Types

### nameValue

A name-value pair that describes an item and provides a value for the item.

- `errorDetails` (errorDetails, optional) — This object describes errors that occur. It is only valid for responses, and ignored in requests.
- `name` (string, optional) — The name of the item.
- `originalValue` (string, optional) — The initial value of the item.
- `value` (string, optional) — The current value of the item.

### errorDetails

This object describes errors that occur. It is only valid for responses, and ignored in requests.

- `errorCode` (string, optional) — The code associated with the error condition.
- `message` (string, optional) — A brief message describing the error condition.

## Examples

**Request**

```json
{
  "customSettings": [
    {
      "errorDetails": {
        "errorCode": "sample string 1",
        "message": "sample string 2"
      },
      "name": "sample string 1",
      "originalValue": "sample string 2",
      "value": "sample string 3"
    }
  ]
}
```

**Response**

```json
{
  "customSettings": [
    {
      "errorDetails": {
        "errorCode": "sample string 1",
        "message": "sample string 2"
      },
      "name": "sample string 1",
      "originalValue": "sample string 2",
      "value": "sample string 3"
    }
  ]
}
```