---
title: "Update User Profile"
method: PUT
path: "/v1/user"
tags: ["User"]
---

# Update User Profile

`PUT /v1/user`

## Request

- Base URL: `https://api.robosystems.ai` (the document declares no server; this is the origin it was published from)
- URL: `https://api.robosystems.ai/v1/user`
- Auth: one of:
  - API key in header `X-API-Key`
  - HTTP bearer

## Request body

- UpdateUserRequest: Request model for updating user profile. Changing `email` re-authenticates: a fresh proof (password re-entry or a `mgmt`-flow passkey assertion) must accompany the request, exactly as passkey enrollment and removal require. Name-only updates need no proof.
  - `name` string, nullable: User's display name
  - `email` string, email, nullable: User's email address
  - `reauth_password` string, nullable: Password re-entry, required to change email for a password-holding account
  - `reauth_assertion` object, nullable: A fresh mgmt-flow passkey assertion, required to change email for a passkey-only account

## Response `200`

Successful Response

- UserResponse: User information response model.
  - `id` string, required: Unique identifier for the user
  - `name` string, nullable: User's display name
  - `email` string, nullable: User's email address
  - `email_verified` boolean: Whether user's email is verified
  - `accounts` AccountInfo[]: User's authentication accounts
    - `provider` string, required: Authentication provider ID (e.g., 'github', 'google')
    - `provider_type` string, required: Type of provider
    - `provider_account_id` string, required: Account ID at the provider

## Other responses

- `400`: Invalid request
- `401`: Authentication required
- `403`: Access denied
- `409`: Email already in use
- `422`: Validation Error
- `429`: Rate limit exceeded
- `500`: Internal server error

---

[API](https://skmtc.dev/robosystems/apis/robosystems-api.md) · [All operations](https://skmtc.dev/robosystems/apis/robosystems-api/llms.txt) · [OpenAPI document](https://skmtc.dev/robosystems/apis/robosystems-api/revisions/e661e2d5ca6a?raw)
