Telnyx Meeting Session Actions API

Send real-time speech and chat actions to an active meeting session.

Operations 3

POST /meeting_sessions/{id}/actions/send_chat Send chat in a meeting session #
POST /meeting_sessions/{id}/actions/speak Speak in a meeting session #
POST /meeting_sessions/{id}/actions/stop_speaking Stop speaking in a meeting session #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • 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.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/telnyx:telnyx-meeting-session-actions-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

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 Specification

telnyx-meeting-session-actions-api-openapi.yml Raw ↑
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