Updates one or more profile fields for the specified user. The requesting user must own the account, or use a service or master token to update any user.
Supports direct image uploads for the avatar and banner via multipart/form-data. Uploaded images are processed, stored in Supabase, and the old files are automatically cleaned up after a successful update.
Send application/json for text-only updates. Use multipart/form-data
when uploading image files.
Authentication
Requires a valid user auth token. The authenticated user must match :userId, or the request must carry a service/master token.
Path Parameters
The Replyke user ID (UUID) to update.
Body Parameters
All fields are optional. Only the fields provided are updated.
New username. Automatically lowercased and sanitized. Returns 409 if already
taken by another user.
URL of the user’s avatar image. Ignored if avatarFile is also provided.
ISO 8601 datetime string for the user’s date of birth (e.g. "1990-06-15T00:00:00.000Z").
Geographic location stored as a PostGIS point. Latitude between -90 and 90.
Longitude between -180 and 180.
Public custom key-value data. Replaces the existing value.
Private custom key-value data. Not returned to other users. Replaces the
existing value.
Avatar image file (multipart). Maximum 50 MB. Must be a valid image.
Requires avatarFile.options to be present in the same request.
Banner image file (multipart). Maximum 50 MB. Must be a valid image.
Requires bannerFile.options to be present in the same request.
Response
On success, returns HTTP 200 with the updated user’s authenticated profile:
External identifier from your system.
User role (e.g., "visitor").
Public custom key-value data.
Whether the user’s email has been verified.
Whether the user account is active.
ISO timestamp of the user’s last activity.
Active suspensions on the account.
Processed avatar image with variants.
Processed banner image with variants.
Active auth methods (e.g., ["password", "google"]).
ISO timestamp of account creation.
When name, username, or bio changes, the user’s semantic search
embedding is automatically updated asynchronously.
Error Responses
{
"error" : "Not authorized to update this user." ,
"code" : "user/not-authorized"
}
{
"error" : "User not found" ,
"code" : "user/not-found"
}
{
"message" : "Avatar image exceeds 50MB limit." ,
"code" : "user/file-too-large"
}
{
"message" : "Avatar file is not a valid image: ..." ,
"code" : "user/invalid-image"
}
Missing Image Options — 400
{
"message" : "Image options are required when uploading an avatar. Must include mode property." ,
"code" : "user/missing-image-options"
}
{
"error" : "User validation failed" ,
"code" : "user/validation-failed"
}
{
"error" : "..." ,
"code" : "user/invalid-params"
}
See Also