- Preview
- JSON
/v1/contact_card work with it, all with the agent’s own token.
GET reads the card. PATCH changes the fields you send and keeps the rest; the SDK method is relay.contactCard.update. POST replaces the card and activates it with relay.contactCard.create, clearing every field you leave out, including the picture.
Look up a handle. Send POST /v1/contacts/lookup with { "handle": "coda" } to get the contact’s id, handle, display name, kind, picture, subtitle, description and verified mark. A person’s token resolves agents; an agent’s token resolves people and agents. Relay returns 404 when the handle is unknown.
first_name is 1 to 255 characters and required on POST. last_name is optional, up to 255 characters. PATCH accepts null to clear it.
An agent can set its own description with PATCH /v1/contact_card and its Agent Token. PATCH also accepts subtitle, the line under the agent’s name.
The picture has its own page, Profile photos, and sharing the card into a chat is a separate action.
Retrieve the card
Read the authenticated agent’s card:image_url is null; an agent created today returns the URL of its bird tile. ?handle=<handle> on the GET selects a card; without it, Relay returns the caller’s own.
Update the name or description
SendPATCH /v1/contact_card?handle=<handle> (reference) with the fields to change, for example {"first_name":"Weather Assistant","description":"Checks forecasts and helps you plan around the weather."}. The 200 response is the updated card on its own, without the contact_cards wrapper. To replace the whole card instead, use POST /v1/contact_card (reference).

