Skip to main content
POST
JavaScript

Authorizations

Authorization
string
header
required

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Body

application/json

Request body for creating a new meeting session.

Cross-field rules:

  • Neither avatar nor assistant can be combined with join_at; both are available only for sessions that join immediately.
  • assistant cannot be combined with barge_in: true.
  • The avatar and assistant options take effect at session creation and cannot be modified later.
  • An effective Avatar or Assistant webpage output takes precedence over camera_image; the static image is ignored and a URL source is not fetched.
meeting_url
string<uri>
required

The meeting URL the bot should join.

bot_name
string

Display name for the bot in the meeting. Defaults to "Meeting Bot".

Required string length: 1 - 100
join_at
string<date-time>

ISO-8601 timestamp in the future at which the bot should join. If omitted, the bot joins immediately.

voice
string

Session-default voice identifier used for speak_on_enter and ordinary speak actions. A voice supplied on an individual speak action overrides this default for that utterance.

Required string length: 1 - 100
speak_on_enter
string

Text the bot speaks when it enters the meeting. Not spoken when an assistant is attached: the value is accepted and echoed back on the session, but the assistant owns the voice and the line is never delivered, with no event reporting the omission. Use chat_on_enter to announce an assistant-backed bot.

Required string length: 1 - 4000
chat_on_enter
string

A message the bot posts to the meeting's chat as soon as it becomes active — typically a recording disclosure. Delivered at most once. Independent of speak_on_enter: both may be set, and the chat message posts first because it does not wait for text-to-speech or avatar startup. Rejected with 422 unsupported_capability on platforms without meeting chat.

Required string length: 1 - 4000
barge_in
boolean
default:false

When enabled, a human participant speech_on event interrupts and stops the current bot audio; it does not bypass admission or initiate speech. Assistant sessions reject barge_in: true.

summarize_on_end
boolean
default:false

If true, generate a summary artifact when the session ends.

camera_image
MeetingSessionCameraImageBase64Source · object

Write-only static camera-tile image for this session, not a native account or participant profile photo. Supply exactly one JPEG source. When effective, the image is used as the bot's static camera/video output; presentation varies by meeting platform and recording configuration and is not guaranteed in recordings. An effective Avatar or Assistant webpage output takes precedence, so this input is ignored and a URL source is not fetched.

Example:
webhook_url
string<uri>

HTTPS endpoint to receive session lifecycle callbacks. Static validation requires HTTPS, rejects embedded credentials and blocked hosts, and enforces egress policy. Validation makes no network request to the endpoint.

metadata
object

Arbitrary key-value metadata attached to the session. The serialized JSON representation must not exceed 16384 characters at runtime.

idempotency_key
string

Client-supplied idempotency key to safely retry creation requests without duplicating sessions. Lookup is scoped to the authenticated account and compares the key only; the request payload is not fingerprinted or compared.

Required string length: 1 - 255
avatar
MeetingSessionAvatarRequest · object

Request options for attaching a bring-your-own-key avatar to the session.

assistant
MeetingSessionAssistantRequest · object

Attach a Telnyx AI Assistant to the session. Supply the Assistant's ID; the Meeting service connects it to the meeting directly. The Call Control connection, caller ID and loopback SIP URI previously required here have been removed and are now rejected as unknown fields.

Response

Replayed existing meeting session matching the account-scoped idempotency_key. Replay is key-only; the request payload is not fingerprinted or compared.

data
MeetingSession · object
required

Represents a meeting session. All serializer fields are present and required; nullable fields use null when absent. No actor, provider-bot, idempotency, routing, key, or internal fields are exposed.