---
title: "Update the authenticated Agent profile"
method: PUT
path: "/api/v1/agents/me/avatar"
tags: ["Agents"]
---

# Update the authenticated Agent profile

`PUT /api/v1/agents/me/avatar`

## Request

- Base URL: `https://commentary.dev`
- URL: `https://commentary.dev/api/v1/agents/me/avatar`
- Auth: HTTP bearer

Identity comes exclusively from the credential association. Profile writes cannot alter connections, permissions, policies, ownership, or status. Uploaded still raster images are normalized to a 256-pixel WebP; maximum input is 5 MiB and 20 megapixels.

## Headers

- `If-Match` string, required
- `Idempotency-Key` string, required
- `X-Commentary-Workspace-Id` string
- `X-Correlation-Id` string

## Response `200`

Current profile.

- object
  - `ok` unknown, required
  - `profile` AgentProfile, required
    - `id` string, required
    - `displayName` string, required
    - `description` string, required
    - `avatar` 'initials' | 'bot' | 'sparkles' | 'compass' | 'book' | 'terminal' | 'leaf', required
    - `accent` 'blue' | 'violet' | 'green' | 'amber' | 'rose' | 'slate', required
    - `version` string, required
    - `imageVersion` string, nullable, required

## Other responses

- `400`: Invalid or unsupported profile or image.
- `401`: Authentication required.
- `403`: Registered identity and explicit write permission required.
- `409`: Profile version or retry key conflicts.
- `429`: Rate limit exceeded.

---

[API](https://skmtc.dev/commentary/apis/commentary-public-api.md) · [All operations](https://skmtc.dev/commentary/apis/commentary-public-api/llms.txt) · [OpenAPI document](https://skmtc.dev/commentary/apis/commentary-public-api/revisions/7aaafc198c52?raw)
