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

# Speak

> Make the bot say text out loud in the meeting, and stop it mid-utterance.

`POST /v2/meeting_sessions/{id}/actions/speak` makes the bot speak text into the meeting. The session's `voice` is the default; override it per request.

```bash theme={null}
curl -X POST https://api.telnyx.com/v2/meeting_sessions/mtgsess_9b2f.../actions/speak \
  -H "Authorization: Bearer $TELNYX_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "text": "Here are the three decisions from this call.",
    "interrupt": false
  }'
```

The full request schema is on [Speak in a meeting session](/api-reference/meeting-session-actions/speak-in-a-meeting-session).

Speech is queued, so a long utterance is never cut short by the next `speak` call. If `barge_in` was enabled on the session, participants can interrupt the bot with their own speech.

<Note>
  With a [Telnyx AI Assistant](/docs/meeting/ai-assistants) attached, the bot is a webpage-output bot: `speak` is accepted, but the audio routes through the assistant's output page instead of the bot mic and plays only once the assistant is `connected`. If that page is unreachable the call fails with a `502` (see [Errors](/docs/meeting/control#errors)). The assistant is designed to own the conversation, so prefer letting it speak; to have the bot say a fixed line the moment it joins, see [Announce the Bot on Arrival](/docs/meeting/join-meeting/introductions).
</Note>

## Stop Speaking

`POST /v2/meeting_sessions/{id}/actions/stop_speaking` stops the current utterance and flushes the queue.

```bash theme={null}
curl -X POST https://api.telnyx.com/v2/meeting_sessions/mtgsess_9b2f.../actions/stop_speaking \
  -H "Authorization: Bearer $TELNYX_API_KEY"
```

## Related

* [Controlling the Bot](/docs/meeting/control) -- the WebSocket alternative and the action error envelope
* [Chat](/docs/meeting/control/chat) -- post to the meeting chat instead of speaking
* [Announce the Bot on Arrival](/docs/meeting/join-meeting/introductions) -- `speak_on_enter`
* [Digital avatars](/docs/meeting/digital-avatars) -- lip-sync everything the bot says
