Telnyx Meeting Session Actions API
Send real-time speech and chat actions to an active meeting session.
Send real-time speech and chat actions to an active meeting session.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/telnyx:telnyx-meeting-session-actions-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
version: 2.0.0
x-latency-category: responsive
x-endpoint-cost: light
title: Telnyx Meeting Session Actions API
description: SIP trunking, SMS, MMS, Call Control and Telephony Data Services.
contact:
email: support@telnyx.com
servers:
- url: https://api.telnyx.com/v2
description: Version 2.0.0 of the Telnyx API
security:
- bearerAuth: []
tags:
- name: Meeting Session Actions
description: Send real-time speech and chat actions to an active meeting session.
paths:
/meeting_sessions/{id}/actions/send_chat:
post:
operationId: sendChatMeetingSession
tags:
- Meeting Session Actions
summary: Send chat in a meeting session
description: Sends a chat message into a meeting session.
parameters:
- $ref: '#/components/parameters/MeetingSessionId'
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/SendChatMeetingSessionRequest'
example:
text: I will send the summary after this call.
responses:
'202':
description: The chat message was accepted and is being delivered.
content:
application/json:
schema:
$ref: '#/components/schemas/ActionAcceptedResponse'
'400':
$ref: '#/components/responses/meeting-sessions_BadRequest'
'401':
$ref: '#/components/responses/meeting-sessions_Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
'404':
$ref: '#/components/responses/meeting-sessions_NotFound'
'409':
$ref: '#/components/responses/meeting-sessions_Conflict'
'413':
$ref: '#/components/responses/PayloadTooLarge'
'422':
$ref: '#/components/responses/meeting-sessions_UnprocessableEntity'
'429':
$ref: '#/components/responses/TooManyRequests'
'500':
$ref: '#/components/responses/meeting-sessions_InternalServerError'
'502':
$ref: '#/components/responses/MeetingSendChatProviderError'
'503':
$ref: '#/components/responses/ServiceUnavailable'
/meeting_sessions/{id}/actions/speak:
post:
operationId: speakMeetingSession
tags:
- Meeting Session Actions
summary: Speak in a meeting session
description: 'Sends audio / text-to-speech into a meeting session. With a Telnyx AI Assistant (or avatar) 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`.'
parameters:
- $ref: '#/components/parameters/MeetingSessionId'
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/SpeakMeetingSessionRequest'
example:
text: Here are the three decisions from this call.
interrupt: false
responses:
'202':
description: The speak action was accepted and is being processed.
content:
application/json:
schema:
$ref: '#/components/schemas/ActionAcceptedResponse'
'400':
$ref: '#/components/responses/meeting-sessions_BadRequest'
'401':
$ref: '#/components/responses/meeting-sessions_Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
'404':
$ref: '#/components/responses/meeting-sessions_NotFound'
'409':
$ref: '#/components/responses/meeting-sessions_Conflict'
'413':
$ref: '#/components/responses/PayloadTooLarge'
'422':
$ref: '#/components/responses/meeting-sessions_UnprocessableEntity'
'429':
$ref: '#/components/responses/TooManyRequests'
'500':
$ref: '#/components/responses/meeting-sessions_InternalServerError'
'502':
$ref: '#/components/responses/MeetingSpeakUpstreamError'
'503':
$ref: '#/components/responses/ServiceUnavailable'
/meeting_sessions/{id}/actions/stop_speaking:
post:
operationId: stopSpeakingMeetingSession
tags:
- Meeting Session Actions
summary: Stop speaking in a meeting session
description: Stops any active text-to-speech playback in a meeting session.
parameters:
- $ref: '#/components/parameters/MeetingSessionId'
responses:
'202':
description: The stop-speaking action was accepted.
content:
application/json:
schema:
$ref: '#/components/schemas/ActionAcceptedResponse'
'401':
$ref: '#/components/responses/meeting-sessions_Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
'404':
$ref: '#/components/responses/meeting-sessions_NotFound'
'409':
$ref: '#/components/responses/meeting-sessions_Conflict'
'422':
$ref: '#/components/responses/meeting-sessions_UnprocessableEntity'
'429':
$ref: '#/components/responses/TooManyRequests'
'500':
$ref: '#/components/responses/meeting-sessions_InternalServerError'
'502':
$ref: '#/components/responses/MeetingStopSpeakingProviderError'
'503':
$ref: '#/components/responses/ServiceUnavailable'
components:
responses:
meeting-sessions_UnprocessableEntity:
description: Unprocessable Entity, including an unsupported capability
content:
application/json:
schema:
$ref: '#/components/schemas/meeting-sessions_ErrorResponse'
example:
error:
code: unsupported_capability
message: avatar video is not supported on platform 'unknown'
meeting-sessions_InternalServerError:
description: Internal Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/meeting-sessions_ErrorResponse'
example:
error:
code: internal_error
message: internal server error
MeetingSendChatProviderError:
description: The meeting provider rejected native chat delivery.
content:
application/json:
schema:
$ref: '#/components/schemas/meeting-sessions_ErrorResponse'
example:
error:
code: provider_error
message: meeting provider rejected chat message
meeting-sessions_BadRequest:
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/meeting-sessions_ErrorResponse'
example:
error:
code: invalid_request
message: request is invalid
PayloadTooLarge:
description: Payload Too Large
content:
application/json:
schema:
$ref: '#/components/schemas/meeting-sessions_ErrorResponse'
example:
error:
code: invalid_request
message: request body too large
MeetingStopSpeakingProviderError:
description: The meeting provider rejected stopping audio playback.
content:
application/json:
schema:
$ref: '#/components/schemas/meeting-sessions_ErrorResponse'
example:
error:
code: provider_error
message: meeting provider rejected stop audio
TooManyRequests:
description: Authentication is temporarily overloaded. Retry after the number of seconds in `Retry-After`.
headers:
Retry-After:
required: true
description: Seconds to wait before retrying.
schema:
type: integer
minimum: 1
maximum: 5
content:
application/json:
schema:
$ref: '#/components/schemas/meeting-sessions_ErrorResponse'
example:
error:
code: auth_overloaded
message: authentication temporarily overloaded
meeting-sessions_NotFound:
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/meeting-sessions_ErrorResponse'
example:
error:
code: not_found
message: meeting session not found
ServiceUnavailable:
description: A required feature or dependency is not configured or authentication is unavailable.
content:
application/json:
schema:
$ref: '#/components/schemas/meeting-sessions_ErrorResponse'
example:
error:
code: not_configured
message: required feature is not configured
Forbidden:
description: The authenticated credential is not permitted to perform this operation.
content:
application/json:
schema:
$ref: '#/components/schemas/meeting-sessions_ErrorResponse'
example:
error:
code: forbidden
message: credential is not permitted
meeting-sessions_Unauthorized:
description: '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.'
content:
application/json:
schema:
$ref: '#/components/schemas/meeting-sessions_ErrorResponse'
example:
error:
code: unauthorized
message: invalid or missing credentials
MeetingSpeakUpstreamError:
description: Text-to-speech generation or meeting audio delivery failed.
content:
application/json:
schema:
$ref: '#/components/schemas/meeting-sessions_ErrorResponse'
example:
error:
code: tts_error
message: tts synthesis failed
meeting-sessions_Conflict:
description: Conflict
content:
application/json:
schema:
$ref: '#/components/schemas/meeting-sessions_ErrorResponse'
example:
error:
code: invalid_state
message: only scheduled sessions can be updated
schemas:
SendChatMeetingSessionRequest:
title: SendChatMeetingSessionRequest
type: object
additionalProperties: false
required:
- text
properties:
text:
type: string
minLength: 1
maxLength: 4000
description: Chat message text to send in the meeting.
SpeakMeetingSessionRequest:
title: SpeakMeetingSessionRequest
type: object
additionalProperties: false
required:
- text
properties:
text:
type: string
minLength: 1
maxLength: 4000
description: Text for the bot to speak.
voice:
type: string
minLength: 1
maxLength: 100
description: 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:
type: boolean
description: If true, interrupt any currently playing audio to speak this text immediately.
ActionAcceptedResponse:
type: object
additionalProperties: false
required:
- data
properties:
data:
type: object
additionalProperties: false
required:
- accepted
properties:
accepted:
type: boolean
const: true
example:
data:
accepted: true
meeting-sessions_ErrorResponse:
type: object
additionalProperties: false
required:
- error
properties:
error:
type: object
additionalProperties: false
required:
- code
- message
properties:
code:
type: string
message:
type: string
examples:
- error:
code: invalid_request
message: webhook_url is disabled
- error:
code: not_found
message: meeting session not found
- error:
code: unsupported_capability
message: avatar video is not supported on platform 'unknown'
- error:
code: internal_error
message: internal server error
parameters:
MeetingSessionId:
name: id
in: path
required: true
description: Unique identifier for the meeting session.
schema:
type: string
examples:
- mtgsess_a1b2c3d4-e5f6-7890-abcd-ef1234567890
securitySchemes:
BearerAuth:
type: http
scheme: bearer
bearerFormat: API key
description: 'Telnyx API key supplied as `Authorization: Bearer <token>`. In production, auth may be validated by the API gateway and forwarded via Telnyx auth headers.'
Payment:
type: apiKey
in: header
name: Authorization
description: 'Machine Payment Protocol credential used on paid retries, sent as `Authorization: Payment ...`. Obtained by paying a challenge returned in the `WWW-Authenticate` header of a 402 response. This is not a Telnyx API key; initial challenge requests use standard bearer authentication instead.'
agent-memory_bearerAuth:
type: http
scheme: bearer
description: Telnyx API key
bearerAuth:
type: http
scheme: bearer
branded-calling_bearerAuth:
type: http
scheme: bearer
description: Telnyx API key. Generate one at https://portal.telnyx.com/#/app/api-keys.
collections_bearerAuth:
type: http
scheme: bearer
description: Telnyx API key. Collections and results are automatically scoped to the authenticated user's organization.
number-reputation_bearerAuth:
type: http
scheme: bearer
description: Telnyx API key. Generate one at https://portal.telnyx.com/#/app/api-keys.
oauthClientAuth:
type: oauth2
flows:
clientCredentials:
tokenUrl: https://api.telnyx.com/v2/oauth/token
scopes:
admin: Administrative access to Telnyx resources
authorizationCode:
authorizationUrl: https://api.telnyx.com/v2/oauth/authorize
tokenUrl: https://api.telnyx.com/v2/oauth/token
refreshUrl: https://api.telnyx.com/v2/oauth/token
scopes:
admin: Administrative access to Telnyx resources
description: OAuth 2.0 authentication for Telnyx API and MCP integrations
outbound-voice-profiles_bearerAuth:
type: http
scheme: bearer
bearerFormat: JWT
pronunciation-dicts_bearerAuth:
type: http
scheme: bearer
description: Telnyx API v2 key. Obtain from https://portal.telnyx.com
rcs-registration_bearerAuth:
type: http
scheme: bearer
bearerFormat: API key
stored-payment-transactions_bearerAuth:
type: http
scheme: bearer
bearerFormat: JWT
transcriptions-search_bearerAuth:
type: http
scheme: bearer
description: Telnyx API key. Results are automatically scoped to the authenticated user's organization.
web-search_bearerAuth:
type: http
scheme: bearer
description: Telnyx API key
x-service-info:
categories:
- communication
- developer-tools
docs:
apiReference: https://developers.telnyx.com
homepage: https://telnyx.com
llms: https://telnyx.com/llms.txt