User profile management

Get user profile

GET /users/{id}

Requires authentication.

Retrieve a user's public profile by ID, including display name, avatar, and status.

Parameters

Name In Type Description
id path string User ID

Responses

200 User profile

{
  "user": {
    "id": "01JQ3KMN7XFGY4P6WBR2SZTA9V",
    "display_name": "Alice Chen",
    "avatar_url": "/files/01JQ3KMT6B/download?sig=abc",
    "gravatar_url": "https://www.gravatar.com/avatar/abc123?d=mp",
    "status": "In a meeting",
    "created_at": "2025-01-15T09:30:00Z"
  }
}

401 Unauthorized

{
  "error": {
    "code": "NOT_AUTHENTICATED",
    "message": "Not authenticated"
  }
}

404 Not found

{
  "error": {
    "code": "NOT_FOUND",
    "message": "Resource not found"
  }
}

Update own profile

POST /users/me/profile

Requires authentication.

Update the current user's profile fields such as display name and status. Changes are reflected across all workspaces.

Request body

{
  "display_name": "Alice Chen"
}

Responses

200 Profile updated

{
  "user": {
    "id": "01JQ3KMN7XFGY4P6WBR2SZTA9V",
    "email": "alice@example.com",
    "email_verified_at": "2025-01-15T09:30:00Z",
    "display_name": "Alice Chen",
    "avatar_url": "/files/01JQ3KMT6B/download?sig=abc",
    "gravatar_url": "https://www.gravatar.com/avatar/abc123?d=mp",
    "status": "In a meeting",
    "created_at": "2025-01-15T09:30:00Z",
    "updated_at": "2025-01-15T09:30:00Z"
  }
}

400 Bad request

{
  "error": {
    "code": "VALIDATION_ERROR",
    "message": "Invalid request parameters"
  }
}

401 Unauthorized

{
  "error": {
    "code": "NOT_AUTHENTICATED",
    "message": "Not authenticated"
  }
}

Upload avatar image

POST /users/me/avatar

Requires authentication.

Upload a profile avatar image. Accepts JPEG, PNG, GIF, or WebP. The image is resized and stored on the server, replacing any existing avatar.

Request body

Content type: multipart/form-data

Field Type Required Description
file file yes -

Responses

200 Avatar uploaded

{
  "avatar_url": "/files/01JQ3KMT6B/download?sig=abc"
}

400 Bad request

{
  "error": {
    "code": "VALIDATION_ERROR",
    "message": "Invalid request parameters"
  }
}

401 Unauthorized

{
  "error": {
    "code": "NOT_AUTHENTICATED",
    "message": "Not authenticated"
  }
}

403 Forbidden

{
  "error": {
    "code": "PERMISSION_DENIED",
    "message": "You do not have permission to perform this action"
  }
}

Remove avatar

DELETE /users/me/avatar

Requires authentication.

Remove the current user's avatar, reverting to the default Gravatar-based avatar.

Responses

200 Avatar removed

{
  "success": true
}

401 Unauthorized

{
  "error": {
    "code": "NOT_AUTHENTICATED",
    "message": "Not authenticated"
  }
}