Skip to content
Inkbox

Inkbox

BlogContactDocs
GuidesAPI Reference

Ctrl K

GuidesAPI Reference

Jump to

Agent avatar

When a human connects to your agent, the router sends them the agent's contact card. Give the agent an avatar and the card arrives with a real contact photo — the image your humans see in Messages and in their address book after saving the card.

Upload once per identity. Inkbox normalizes every upload the same way:

  • 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.

You never need to think about contact-card size limits — the normalized avatar always fits.

Avatar endpoints live under the identity, not the iMessage API:

https://inkbox.ai/api/v1/identities/{agent_handle}/avatar

An admin API key can manage any agent's avatar. An agent's own API key can manage that agent's avatar only.


Upload an avatar PUT

PUT /identities/{agent_handle}/avatar

Upload (or replace) the avatar as a multipart form with a single 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.

JSONJSON

Error responses

StatusDescription
403The API key is not allowed to manage this agent's avatar
404No identity with this handle
413Upload larger than 5 MB
415The file isn't a decodable image

Code examples


Fetch the avatar GET

GET /identities/{agent_handle}/avatar

Returns the stored avatar as image/jpeg bytes — always the normalized 600 × 600 square, regardless of what was uploaded.

Error responses

StatusDescription
403The API key is not allowed to access this agent's avatar
404The identity has no avatar (or no identity with this handle)

Code examples


Delete the avatar DELETE

DELETE /identities/{agent_handle}/avatar

Removes the avatar; future contact cards go out without a photo. Returns 204 and is idempotent — deleting when no avatar is set also returns 204.

Error responses

StatusDescription
403The API key is not allowed to manage this agent's avatar
404No identity with this handle

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 include has_avatar so you can tell at a glance whether an agent's card will carry a photo.

Inkbox

Copyright © 2026 Inkbox

This site is protected by reCAPTCHA.

Google Privacy Policy and Terms of Service apply.

Website

Inkbox

Copyright © 2026 Inkbox

This site is protected by reCAPTCHA.

Google Privacy Policy and Terms of Service apply.

Website

Y CombinatorBacked by Y Combinator
Agent avatar