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