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

# Still Images

> Show a static JPEG as the bot's camera tile, supplied inline or by URL at session creation.

`POST /v2/meeting_sessions` accepts an optional `camera_image`: a static image shown as the bot's camera tile for this session. It is not a native account or participant profile photo, and its exact presentation can vary by meeting platform and recording configuration.

Supply exactly one JPEG source -- inline Base64 or an HTTPS URL:

```json theme={null}
{
  "camera_image": {
    "format": "jpeg",
    "base64_data": "<complete RFC 4648 Base64 of the JPEG>"
  }
}
```

```json theme={null}
{
  "camera_image": {
    "format": "jpeg",
    "url": "https://cdn.example.com/bot-camera.jpg"
  }
}
```

The image contract is strict:

* `format` must be `jpeg`. Supplying both `base64_data` and `url`, or neither, is rejected.
* `base64_data` must be canonical plain RFC 4648 Base64 -- no data URIs, whitespace, or URL-safe alphabet. The encoded value is limited to 1,835,008 characters and the decoded JPEG to 1,363,148 bytes; the image itself to 4,096 pixels per dimension and 4 megapixels.
* `url` must be a public HTTPS URL of at most 2,048 characters with no credentials, fragment, or explicit non-default port. The service fetches it once before creating the bot, with a five-second timeout, no redirects, and a required `2xx` `image/jpeg` response. Signed query strings are allowed -- treat a signed URL as a credential.
* `camera_image` is write-only: neither the image bytes nor the source URL are persisted, returned, or logged.

If the session also has a [digital avatar](/docs/meeting/digital-avatars), that live output takes precedence -- the static image is ignored and a URL source is not fetched.

## Related

* [Meeting Presence](/docs/meeting/presence) -- the bot's roster name and identity choices
* [Digital avatars](/docs/meeting/digital-avatars) -- a rendered avatar instead of a static tile
* [Join a Meeting](/docs/meeting/join-meeting) -- the rest of the create request
