> ## Documentation Index
> Fetch the complete documentation index at: https://developers.telnyx.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Digital Avatars

> Give the bot a rendered digital avatar as its in-meeting presence, lip-synced to everything it says.

Instead of a plain roster entry, give the bot a rendered digital avatar as its in-meeting presence. The digital avatar replaces the bot's camera: attendees see it on screen, and everything the bot says through [speak](/docs/meeting/interact#speak) is lip-synced by the digital avatar. This suits branded, customer-facing, or demo meetings where a personified presence matters.

Enable it with the `avatar` parameter at session creation. Build the JSON with `jq --arg` so the shell expands your Anam key -- inside a single-quoted `-d '...'` body, `$ANAM_API_KEY` would be sent literally:

```bash theme={null}
REQUEST_BODY=$(jq -n \
  --arg meeting_url "https://meet.google.com/abc-defg-hij" \
  --arg avatar_id "your-anam-avatar-id" \
  --arg anam_api_key "$ANAM_API_KEY" \
  '{
    meeting_url: $meeting_url,
    avatar: {
      provider: "anam",
      avatar_id: $avatar_id,
      api_key: $anam_api_key
    }
  }')

curl -X POST https://api.telnyx.com/v2/meeting_sessions \
  -H "Authorization: Bearer $TELNYX_API_KEY" \
  -H "Content-Type: application/json" \
  --data "$REQUEST_BODY"
```

| Field       | Type   | Description                                                                                                                          |
| ----------- | ------ | ------------------------------------------------------------------------------------------------------------------------------------ |
| `provider`  | string | The avatar provider. Today this is `anam`.                                                                                           |
| `avatar_id` | string | The digital avatar to use, chosen from your anam account.                                                                            |
| `api_key`   | string | Your anam API key. Write-only: it mints a session token and is never stored or returned. Keep it in a secret, not in committed code. |

How it works:

* Telnyx TTS drives the digital avatar's speech and lip sync.
* Avatar sessions are immediate REST creates only: `join_at` is not supported, and avatars are not available through calendar auto-join. Avatar mode is chosen at creation and cannot be toggled mid-meeting.
* The digital avatar works on all supported platforms (Google Meet, Zoom, Teams, Webex).
* Readiness is visible in the session response via `avatar_state`: `starting`, `connected`, `degraded`, or `disconnected` -- read it rather than assuming the camera is ready.
* The avatar's camera video is not included in the provider recording; the bot's audio is.
* An active avatar takes precedence over a [static `camera_image`](/docs/meeting/join-meeting#set-a-static-camera-image): the image is ignored and its URL is not fetched.

The avatar provider is pluggable. `anam` is the only provider available today; additional providers, including a Telnyx-hosted digital avatar, are under evaluation for future releases.

## Related

* [Meeting Presence](/docs/meeting/interact) -- the default bot presence and session actions
