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"
}
}