Profile Picture & Logos
Upload a profile picture
Section titled “Upload a profile picture”POST /v1/profile-pictureRequired role: Authenticated user (any).
Upload a profile picture for the current user. The image is resized and stored as a 256×256 WebP file.
Request: multipart/form-data
| Field | Type | Description |
|---|---|---|
file | File | Image file. Accepted formats: JPEG, PNG, WebP, GIF. Maximum size: 2 MB. |
On success, the user’s image field is updated to the URL of the stored file.
Remove a profile picture
Section titled “Remove a profile picture”DELETE /v1/profile-pictureRequired role: Authenticated user (any).
Deletes the stored avatar file and clears the user’s image field. Returns 204 No Content.
Use Gravatar as profile picture
Section titled “Use Gravatar as profile picture”PUT /v1/profile-picture/gravatarRequired role: Authenticated user (any).
Sets the user’s image field to their Gravatar URL (derived from their email address). No file is uploaded or stored.
Upload an organization logo
Section titled “Upload an organization logo”POST /v1/organizations/:orgId/logoRequired role: Admin or owner.
Upload a logo for the organization. The image is resized and stored as a 256×256 WebP file.
Request: multipart/form-data
| Field | Type | Description |
|---|---|---|
file | File | Image file. Accepted formats: JPEG, PNG, WebP, GIF. Maximum size: 2 MB. |
Remove an organization logo
Section titled “Remove an organization logo”DELETE /v1/organizations/:orgId/logoRequired role: Admin or owner.
Deletes the stored logo file and clears the organization’s logo field. Returns 204 No Content.
Serving uploaded files
Section titled “Serving uploaded files”Uploaded files are served as static assets:
| Path | Description |
|---|---|
GET /uploads/avatars/:filename.webp | User profile picture. |
GET /uploads/org-logos/:filename.webp | Organization logo. |
These endpoints require no authentication.