Skip to main content
Avatar endpoints require a signed-in user session. See Authentication for the initial sign-in flow.
Avatar upload is a two-step process: request a presigned upload URL, then upload the file directly to S3. After upload, confirm or poll for the processed avatar before updating the UI.

Step 1: Get Upload URL

Step 2: Upload the Image

Upload the raw file bytes directly to the presigned URL:

Step 3: Wait for Processing

The image is processed asynchronously after upload. If you want the client to explicitly finish the flow, retry updateUser({ confirmAvatar: true }) until the processed asset is ready:
If you prefer not to confirm explicitly, you can also poll GET /users/me until avatarUrl appears after processing finishes:

Constraints

Removing an Avatar

Error Handling