PATCH /v1/users/me
Update the caller's profile fields. Sparse: only fields set to a value are applied. To clear a field, send an explicit empty string.
::: tip Auth Required: cookie or Bearer. :::
Request
PATCH /v1/users/me
| Header | Required | Notes |
|---|---|---|
Cookie: identsphere_at=... OR Authorization: Bearer ... | yes | — |
Content-Type: application/json | yes | — |
Body
{
"display_name": "Alice A.",
"job_title": "Staff Engineer",
"phone_number": null,
"bio": "Likes Rust and good coffee.",
"preferences": { "theme": "dark", "compact_sidebar": true }
}
| Field | Type | Notes |
|---|---|---|
display_name | string | null | Max 200 chars. Empty string clears. |
job_title | string | null | Max 200 chars. Empty string clears. |
phone_number | string | null | Max 50 chars. Empty string clears. |
bio | string | null | Max 2000 chars. Empty string clears. |
preferences | object | null | Free-form JSON. Replaces (not merges). |
Email is NOT mutable through this endpoint — implement an email-change flow separately if you need it.
Response
200 OK
The updated profile, in the same shape as GET /v1/users/me.
Error responses
| Status | Code | When |
|---|---|---|
| 400 | invalid_input | A field failed length validation. |
| 401 | authentication_required | No valid auth credential. |
| 404 | not_found | User no longer exists. |
Notes
updated_atis bumped.- The
preferencesJSON is opaque to the SDK; you choose the shape.