Skip to main content
PATCH
/
users
/
{id}
Update User
curl --request PATCH \
  --url https://{defaultHost}/users/{id} \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "name": "<string>",
  "bio": "<string>",
  "username": "<string>",
  "profile_picture": {
    "id": "<string>",
    "direct_upload_id": "<string>"
  }
}
'
{
  "id": "<string>",
  "username": "<string>",
  "name": "<string>",
  "bio": "<string>",
  "created_at": "<string>",
  "profile_picture": {},
  "total_usd": "<string>",
  "balances": [
    {
      "symbol": "<string>",
      "name": "<string>",
      "balance": "<string>",
      "value_usd": "<string>",
      "price_usd": 123,
      "icon_url": "<string>",
      "breakdown": {}
    }
  ],
  "verification": {}
}

Authorizations

Authorization
string
header
required

An account API key, account scoped JWT, app API key, or user OAuth token.

Headers

Api-Version-Date
string<date>

Pins the request to a dated API version. When omitted, the request uses the original (2025-01-01) request/response shapes, so existing unversioned callers are never broken. Generated SDKs always send the latest version they were built against. An unrecognized value is rejected with a 400. The schemas documented here always describe the latest version.

Example:

"2026-06-09"

Path Parameters

id
string
required

The ID of the user, which will look like user_*************, a username, or 'me'.

Query Parameters

account_id
string

The account whose profile override to update. Required for API key callers.

Body

application/json
name
string
bio
string
username
string
profile_picture
object

Response

200 - application/json

user updated

id
string
required

The ID of the user, which will look like user_*************

username
string
required

The user's unique username

name
string | null
required

The user's display name

bio
string | null
required

The user's biography

created_at
string
required

When the user was created, as an ISO 8601 timestamp

profile_picture
object
required

The user's profile picture, an object with a url

total_usd
string | null
required

Total USD value across all balances with a known exchange rate. Only computed on the self-view (GET /users/me) for callers with the balance-read scope; null (with an empty balances array) otherwise and when the balance source is unavailable

balances
object[]
required
verification
object
required

The user's identity-verification status. individual is KYC, business is KYB; each is null when that profile has not been created, otherwise { status } where status is one of not_started, pending, approved, rejected