---
title: "Update own profile"
type: reference
method: POST
path: /rest-api/user-preference/update-profile.do
tag: "Users"
---

# Update own profile

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

Changes the authenticated user's own profile the way the console's Preferences page does: firstName, lastName, phone, company, websiteUrl, country, state, accountUIStyle, advancedAnalyticsView, locale, darkTheme, compactMode, receiveNewsletter and receiveNotificationsByEmail. Send a JSON body with only the fields to change; a field left out keeps its value, and an empty string clears phone, company, websiteUrl, country or state. Password, e-mail, API key and role are never changed here — a body property this operation does not know is listed in 'ignoredFields' with its reason in 'ignoredFieldReasons' instead of being applied. 'locale' is accepted only when the network lets signed-in users change the interface language. Returns the resulting profile in 'preference', shaped as by user-preference/get.

## Body

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

```json
{
  "firstName": "Olivia",
  "lastName": "Bennett",
  "phone": "+1 (555) 123-4567",
  "company": "Northwind Media"
}
```

## Responses

- `200` — Profile saved
- `400` — Body is not valid JSON, a value has the wrong type, or a field is invalid (per-field 'errors'; e.g. a country code that is not in the country list)
- `401` — Unauthorized — authentication error
- `403` — Forbidden — insufficient permissions

## Example request

```bash
curl --request POST \
  --url 'https://YOUR-NETWORK-DOMAIN/rest-api/user-preference/update-profile.do' \
  --header 'X-Api-Key: YOUR_API_KEY' \
  --header 'Content-Type: application/json' \
  --data '{
  "firstName": "Olivia",
  "lastName": "Bennett",
  "phone": "+1 (555) 123-4567",
  "company": "Northwind Media"
}'
```

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