Change your display name
The users.profile.update operation: PATCH /api/v1/users/me/profile in the REST API and the users_profile_update tool in the MCP server.
/api/v1/users/me/profileChanges the name the people in your organizations see for you: in the members list, in audit logs and next to your photo. 1–200 characters; line breaks and control characters are refused. Sending the name you already have changes nothing.
A name you set yourself stays: signing in with Google or Microsoft later no longer replaces it with the name of
that account (nameSetByUser). Your organizations get user.updated, which says what changed but carries no
name.
Who can call it: the signed-in user, for their own account, in the console.
At a glance
- REST:
PATCH /api/v1/users/me/profile - MCP tool:
users_profile_update - Operation ID:
users.profile.update - Scope: Platform
- Permission:
account:write - Risk tier:
write - Dry run: Supported (send
Ownrecord-Dry-Run: true) - Idempotency:
Idempotency-Keyoptional - Modes: Test and live
- Authentication: API key with the
account:writescope - Since: M13
Request
Body
A JSON object (Content-Type: application/json):
| Field | Type | Required | Description |
|---|---|---|---|
name | string | Yes | Your name as the people in your organizations see it, 1–200 characters. Signing in with Google or Microsoft no longer changes it. |
Response
200 OK with a JSON object:
| Field | Type | Description |
|---|---|---|
object | "user_profile" | |
id | usr_… ID | |
email | string | Your account's address (changed with users.email_change.start). |
name | string or null | Your display name, or null when there is none yet. |
nameSetByUser | boolean | Whether you set the name yourself. Until you do, a Google or Microsoft sign-in may update it from that account. |
avatar | object or null | Your uploaded photo (private: shown to you, to the people in your organizations and to staff), or null. |
updatedAt | date-time |
Examples
Use my full name
PATCH /api/v1/users/me/profile
Authorization: Bearer or_test_…
Content-Type: application/json
{
"name": "Ana Novak"
}
Response (200):
{
"object": "user_profile",
"id": "usr_01m4tx5nj8emwbyf7y9vcf47xa",
"email": "ana@acme.example",
"name": "Ana Novak",
"nameSetByUser": true,
"avatar": null,
"updatedAt": "2026-11-05T09:00:00.000Z"
}
Errors
| Code | HTTP status | When | What to do |
|---|---|---|---|
validation_failed | 400 | The name is empty, longer than 200 characters or has a control character. | Fix the fields listed in details.issues and send the request again. |
version_conflict | 409 | Your account changed at the same time; retry. | Fetch the object again and retry the change. |
permission_denied | 403 | The caller isn't a person signed in to the console. | Ask an organization owner or admin for a role or scope that allows this action. |
It can also return these common errors: api_version_unsupported, invalid_json, unsupported_media_type, authentication_required, api_key_invalid, resource_not_found, idempotency_key_reused, idempotency_in_progress, rate_limited, internal_error.