---
title: "Speak in a meeting session"
method: POST
path: "/meeting_sessions/{id}/actions/speak"
tags: ["Meeting Session Actions"]
---

# Speak in a meeting session

`POST /meeting_sessions/{id}/actions/speak`

## Request

- Base URL: `https://api.telnyx.com/v2`
- URL: `https://api.telnyx.com/v2/meeting_sessions/{id}/actions/speak`
- Auth: HTTP bearer

Sends audio / text-to-speech into a meeting session. With a Telnyx AI Assistant attached, the bot is a webpage-output bot: the speak audio routes through the assistant's output page rather than the bot mic and plays once the assistant is connected -- it is not refused. If that page cannot be reached, delivery fails with the 502 below, which may arrive without an error envelope, so branch on the status code before parsing a body. The assistant is designed to own the conversation, so prefer letting it speak or use `send_chat`. With a digital avatar (`assistant.avatar: true`), speak is refused with 409 `invalid_state` (message prefix `avatar_requires_assistant_speech:`): the avatar renders only the assistant's own speech.

## Path parameters

- `id` string, required

## Request body

- SpeakMeetingSessionRequest
  - `text` string, required: Text for the bot to speak.
  - `voice` string: Voice identifier to use for this utterance. When supplied, it overrides the session-default voice configured at creation; otherwise the speak action uses that session default.
  - `interrupt` boolean: If true, interrupt any currently playing audio to speak this text immediately.

## Response `202`

The speak action was accepted and is being processed.

- ActionAcceptedResponse
  - `data` object, required
    - `accepted` true, required

## Other responses

- `400`: Bad Request
- `401`: Unauthorized. On api.telnyx.com, authentication is enforced by the API gateway before the request reaches the Meeting service, so a missing or invalid API key returns the standard Telnyx error envelope (`{"errors": [{"code": "10009", ...}]}`) rather than the single-`error` shape below.
- `403`: The authenticated credential is not permitted to perform this operation.
- `404`: Not Found
- `409`: Conflict
- `413`: Payload Too Large
- `422`: Unprocessable Entity, including an unsupported capability
- `429`: Authentication is temporarily overloaded. Retry after the number of seconds in `Retry-After`.
- `500`: Internal Server Error
- `502`: Text-to-speech generation or meeting audio delivery failed.
- `503`: A required feature or dependency is not configured, authentication is unavailable, or (`assistant_lookup_unavailable`) the assistant could not be read to check its avatar.

## Changes

- **2026-10-15** `a72569d69430`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/team-telnyx/apis/telnyx-api/changes/meeting_sessions/:id/actions/speak/post.md)

---

[API](https://skmtc.dev/team-telnyx/apis/telnyx-api.md) - [All operations](https://skmtc.dev/team-telnyx/apis/telnyx-api/llms.txt) - [OpenAPI document](https://skmtc.dev/team-telnyx/apis/telnyx-api/revisions/0f17b8167873?raw)
