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

# Retrieve a meeting session

> Retrieves a single meeting session by ID. A session that does not exist or that belongs to a different account both return 404.



## OpenAPI

````yaml /openapi/source/external/meeting-sessions/meeting-sessions.json get /meeting_sessions/{id}
openapi: 3.1.0
info:
  title: Telnyx Meeting Sessions API
  version: 2.0.0
  description: >-
    Programmatically create, control, and inspect Telnyx Meeting Sessions,
    including real-time actions, events, transcripts, recordings, and artifacts.
  x-latency-category: interactive
  x-endpoint-cost: light
servers:
  - url: https://api.telnyx.com/v2
security:
  - bearerAuth: []
tags:
  - name: Meeting Sessions
    description: Create, list, retrieve, update, and stop meeting sessions.
  - name: Meeting Session Actions
    description: Send real-time speech and chat actions to an active meeting session.
  - name: Meeting Session Data
    description: >-
      Read lifecycle events, transcript segments, and recordings for a meeting
      session.
  - name: Meeting Session Artifacts
    description: Create and retrieve asynchronous summaries and action-item artifacts.
  - name: Meeting Session Webhooks
    description: Outbound webhook deliveries for meeting session events.
paths:
  /meeting_sessions/{id}:
    get:
      tags:
        - Meeting Sessions
      summary: Retrieve a meeting session
      description: >-
        Retrieves a single meeting session by ID. A session that does not exist
        or that belongs to a different account both return 404.
      operationId: retrieveMeetingSession
      parameters:
        - $ref: '#/components/parameters/MeetingSessionId'
      responses:
        '200':
          description: Successful response with the meeting session.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MeetingSessionResponse'
              example:
                data:
                  id: mtgsess_9b2f...
                  account_id: '22'
                  provider: recall
                  status: active
                  status_detail: null
                  recording: true
                  meeting_url: https://meet.google.com/abc-defg-hij
                  platform: google_meet
                  bot_name: Notetaker
                  config:
                    voice: null
                    speak_on_enter: null
                    barge_in: false
                    summarize_on_end: true
                  avatar: null
                  avatar_state: null
                  avatar_state_changed_at: null
                  assistant: null
                  assistant_state: null
                  assistant_state_changed_at: null
                  webhook_url: null
                  metadata: {}
                  failure_reason: null
                  created_at: '2026-06-16T08:58:00Z'
                  join_at: null
                  joined_at: '2026-06-16T09:00:00Z'
                  ended_at: null
                  updated_at: '2026-06-16T09:00:00Z'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalServerError'
        '503':
          $ref: '#/components/responses/MeetingReadAuthUnavailable'
components:
  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
  schemas:
    MeetingSessionResponse:
      type: object
      additionalProperties: false
      required:
        - data
      properties:
        data:
          $ref: '#/components/schemas/MeetingSession'
    MeetingSession:
      title: MeetingSession
      type: object
      additionalProperties: false
      description: >-
        Represents a meeting session. All serializer fields are present and
        required; nullable fields use null when absent. No actor, provider-bot,
        idempotency, routing, key, or internal fields are exposed.
      required:
        - id
        - account_id
        - provider
        - status
        - status_detail
        - recording
        - meeting_url
        - platform
        - bot_name
        - config
        - avatar
        - avatar_state
        - avatar_state_changed_at
        - assistant
        - assistant_state
        - assistant_state_changed_at
        - webhook_url
        - metadata
        - failure_reason
        - created_at
        - join_at
        - joined_at
        - ended_at
        - updated_at
      properties:
        id:
          type: string
          description: Unique identifier for the meeting session.
        account_id:
          type: string
          description: Identifier of the owning account.
        provider:
          type: string
          description: Provider handling the meeting session.
        status:
          type: string
          enum:
            - scheduled
            - joining
            - waiting_for_admission
            - active
            - leaving
            - ended
            - failed
            - admission_denied
          description: >-
            Lifecycle status. `waiting_for_admission` means the bot reached the
            meeting lobby and may require host approval. `active` means the bot
            entered the meeting/media path. `ended` alone does not prove
            attendance; use non-null `joined_at` as positive evidence that the
            session became active. `admission_denied` is reserved for an
            explicit provider denial, while cancellation or another termination
            can end a never-admitted session as `ended`.
        status_detail:
          type:
            - string
            - 'null'
          description: Additional human-readable detail about the status, or null.
        recording:
          type: boolean
          description: Whether the session is being recorded.
        meeting_url:
          type: string
          format: uri
          description: The meeting URL the bot joins.
        platform:
          type: string
          enum:
            - zoom
            - google_meet
            - teams
            - webex
            - unknown
          description: Detected meeting platform.
        bot_name:
          type: string
          description: Display name of the bot in the meeting.
        config:
          $ref: '#/components/schemas/MeetingSessionConfig'
        avatar:
          oneOf:
            - $ref: '#/components/schemas/MeetingSessionAvatar'
            - type: 'null'
          description: Avatar configuration if an avatar is attached, otherwise null.
        avatar_state:
          type:
            - string
            - 'null'
          enum:
            - starting
            - connected
            - degraded
            - disconnected
            - null
          description: >-
            Current state of the avatar connection, or null if no avatar is
            attached.
        avatar_state_changed_at:
          type:
            - string
            - 'null'
          format: date-time
          description: Timestamp of the last avatar state change, or null.
        assistant:
          oneOf:
            - $ref: '#/components/schemas/MeetingSessionAssistant'
            - type: 'null'
          description: Assistant configuration if an assistant is attached, otherwise null.
        assistant_state:
          type:
            - string
            - 'null'
          enum:
            - starting
            - connected
            - failed
            - ended
            - null
          description: Current state of the assistant, or null if no assistant is attached.
        assistant_state_changed_at:
          type:
            - string
            - 'null'
          format: date-time
          description: Timestamp of the last assistant state change, or null.
        webhook_url:
          type:
            - string
            - 'null'
          format: uri
          description: >-
            Webhook endpoint for session lifecycle callbacks, or null if not
            configured.
        metadata:
          type: object
          additionalProperties: true
          description: Arbitrary key-value metadata attached to the session.
        failure_reason:
          type:
            - string
            - 'null'
          description: Human-readable failure reason if the session failed, or null.
        created_at:
          type: string
          format: date-time
          description: Timestamp when the session was created.
        join_at:
          type:
            - string
            - 'null'
          format: date-time
          description: Scheduled join time, or null for immediate join.
        joined_at:
          type:
            - string
            - 'null'
          format: date-time
          description: >-
            Timestamp when the session first became `active`, or null if it
            never became active. This remains positive admission evidence after
            terminal transitions.
        ended_at:
          type:
            - string
            - 'null'
          format: date-time
          description: Timestamp when the session ended, or null if ongoing.
        updated_at:
          type: string
          format: date-time
          description: Timestamp of the last update to the session.
    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
    MeetingSessionConfig:
      title: MeetingSessionConfig
      type: object
      additionalProperties: false
      required:
        - voice
        - speak_on_enter
        - barge_in
        - summarize_on_end
      properties:
        voice:
          type:
            - string
            - 'null'
          description: Configured voice identifier, or null if not set.
        speak_on_enter:
          type:
            - string
            - 'null'
          description: Text spoken on meeting entry, or null if not set.
        barge_in:
          type: boolean
          description: >-
            When enabled, a human participant `speech_on` event interrupts and
            stops the current bot audio; it does not bypass admission or
            initiate speech. Assistant sessions reject `barge_in: true`.
        summarize_on_end:
          type: boolean
          description: Whether a summary artifact is generated on session end.
    MeetingSessionAvatar:
      title: MeetingSessionAvatar
      type: object
      additionalProperties: false
      required:
        - provider
        - avatar_id
      properties:
        provider:
          type: string
          const: anam
          description: Avatar provider identifier.
        avatar_id:
          type: string
          description: Identifier of the avatar.
    MeetingSessionAssistant:
      title: MeetingSessionAssistant
      type: object
      additionalProperties: false
      required:
        - id
        - audio_gate
      properties:
        id:
          type: string
          description: Identifier of the assistant.
        audio_gate:
          type: string
          enum:
            - none
            - half_duplex
          description: Audio gating strategy for the assistant call leg.
  responses:
    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/ErrorResponse'
          example:
            error:
              code: unauthorized
              message: invalid or missing credentials
    Forbidden:
      description: The authenticated credential is not permitted to perform this operation.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          example:
            error:
              code: forbidden
              message: credential is not permitted
    NotFound:
      description: Not Found
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          example:
            error:
              code: not_found
              message: meeting session not found
    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/ErrorResponse'
          example:
            error:
              code: auth_overloaded
              message: authentication temporarily overloaded
    InternalServerError:
      description: Internal Server Error
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          example:
            error:
              code: internal_error
              message: internal server error
    MeetingReadAuthUnavailable:
      description: Authentication is temporarily unavailable.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          example:
            error:
              code: auth_unavailable
              message: authentication service unavailable
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer

````