- Accepts any common image format (PNG, JPEG, WebP, GIF, …) up to 5 MB.
- Transparent and near-white borders are trimmed away so your artwork fills the frame.
- Non-square images are then center-cropped to a square — the longer edges are cut evenly.
- The result is resized to 600 × 600 and stored as a JPEG; any remaining transparency is flattened onto white.
Upload an avatar
file field. Replacing is atomic — the new image simply takes the old one’s place.
Response (200)
Returns the full identity object;has_avatar flips to true.
JSON
Error responses
Code examples
Fetch the avatar
image/jpeg bytes — always the normalized 600 × 600 square, regardless of what was uploaded.
Error responses
Code examples
Delete the avatar
204 and is idempotent — deleting when no avatar is set also returns 204.
Error responses
Code examples
On the contact card
The contact card a human receives from the router composes everything set on the identity: display name, the agent’s number, its email address, its description (under Notes), and the avatar as the contact photo. Each piece is simply omitted when unset — an avatar is optional, but it’s the difference between a gray monogram and a face for your agent. Identity responses across the API includehas_avatar so you can tell at a glance whether an agent’s card will carry a photo.
