---
title: "Save user preferences"
type: reference
method: POST
path: /rest-api/user-preference/save.do
tag: "Users"
---

# Save user preferences

`POST https://YOUR-NETWORK-DOMAIN/rest-api/user-preference/save.do`

Updates the authenticated user's profile preferences. Accepts a JSON body with any combination of profile fields: email, phone, firstName, lastName, websiteUrl, company, state, accountUIStyle, and comments. Only non-null fields in the request body are applied (partial update). If a 'password' object is included (with current, password, and confirm sub-fields), the password is changed after verifying the current password matches. Requires authentication. The updated preference object is returned in the response.

## Body

A JSON body. An example, built from the field definitions:

```json
{
  "userId": "101",
  "username": "john.doe",
  "email": "john.doe@example.com",
  "phone": "+1 (555) 123-4567"
}
```

## Responses

- `200` — User preferences saved successfully. Response includes the updated 'preference' object.
- `400` — Bad request — invalid or missing parameters
- `401` — Unauthorized — authentication error
- `403` — Forbidden — insufficient permissions

## Example request

```bash
curl --request POST \
  --url 'https://YOUR-NETWORK-DOMAIN/rest-api/user-preference/save.do' \
  --header 'X-Api-Key: YOUR_API_KEY' \
  --header 'Content-Type: application/json' \
  --data '{
  "userId": "101",
  "username": "john.doe",
  "email": "john.doe@example.com",
  "phone": "+1 (555) 123-4567"
}'
```

Source: https://epom.com/ad-server/docs/api/users/post-user-preference-save