---
title: "Retrieve a meeting session"
method: GET
path: "/meeting_sessions/{id}"
tags: ["Meeting Sessions"]
---

# Retrieve a meeting session

`GET /meeting_sessions/{id}`

## Request

- Base URL: `https://api.telnyx.com/v2`
- URL: `https://api.telnyx.com/v2/meeting_sessions/{id}`
- Auth: HTTP bearer

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

## Path parameters

- `id` string, required

## Response `200`

Successful response with the meeting session.

- MeetingSessionResponse
  - `data` MeetingSession, required: 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.
    - `id` string, required: Unique identifier for the meeting session.
    - `account_id` string, required: Identifier of the owning account.
    - `provider` string, required: Provider handling the meeting session.
    - `status` 'scheduled' | 'joining' | 'waiting_for_admission' | 'active' | 'leaving' | 'ended' | 'failed' | 'admission_denied', required: 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` string, nullable, required: Additional human-readable detail about the status, or null.
    - `recording` boolean, required: Whether the session is being recorded.
    - `meeting_url` string, uri, required: The meeting URL the bot joins.
    - `platform` 'zoom' | 'google_meet' | 'teams' | 'webex' | 'unknown', required: Detected meeting platform.
    - `bot_name` string, required: Display name of the bot in the meeting.
    - `config` MeetingSessionConfig, required
      - `voice` string, nullable, required: Configured voice identifier, or null if not set.
      - `speak_on_enter` string, nullable, required: Text spoken on meeting entry, or null if not set.
      - `chat_on_enter` string, nullable, required: The message posted to chat on join, or null when unset.
      - `barge_in` boolean, required: 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` boolean, required: Whether a summary artifact is generated on session end.
    - `avatar` MeetingSessionAvatar, required: The assistant's avatar, captured from its `avatar_settings` when the session was created. For display only; later changes to the assistant do not update it.
      - `provider` 'telnyx', required: Avatar provider identifier.
      - `model` string, required: Avatar rendering model, for example `foxtrot-1`.
      - `avatar_id` string, required: Identifier of the avatar.
      - `background_id` string, required: Identifier of the avatar's background.
    - `avatar_state` 'starting' | 'connected' | 'degraded' | 'disconnected' | 'null', nullable, required: Current state of the avatar, or null if the session has no avatar. `starting` until the avatar's video is playing, then `connected`; `degraded` when the session has fallen back to voice-only (the `avatar.degraded` event carries the reason); `disconnected` when the avatar has ended.
    - `avatar_state_changed_at` string, date-time, nullable, required: Timestamp of the last avatar state change, or null.
    - `assistant` MeetingSessionAssistant, required
      - `id` string, required: Identifier of the assistant.
      - `audio_gate` 'half_duplex' | 'full_duplex', required: Audio gating strategy in force for the assistant call leg.
      - `dynamic_variables` object, nullable, required: The dynamic variables in force for this session, or null when none were supplied.
      - `leave_on_end` boolean, required: Whether the bot leaves when the Assistant's conversation ends or fails.
    - `assistant_state` 'starting' | 'connected' | 'failed' | 'ended' | 'null', nullable, required: Current state of the assistant, or null if no assistant is attached.
    - `assistant_state_changed_at` string, date-time, nullable, required: Timestamp of the last assistant state change, or null.
    - `webhook_url` string, uri, nullable, required: Webhook endpoint for session lifecycle callbacks, or null if not configured.
    - `metadata` object, required: Arbitrary key-value metadata attached to the session.
    - `failure_reason` string, nullable, required: Human-readable failure reason if the session failed, or null.
    - `created_at` string, date-time, required: Timestamp when the session was created.
    - `join_at` string, date-time, nullable, required: Scheduled join time, or null for immediate join.
    - `joined_at` string, date-time, nullable, required: Timestamp when the session first became `active`, or null if it never became active. This remains positive admission evidence after terminal transitions.
    - `ended_at` string, date-time, nullable, required: Timestamp when the session ended, or null if ongoing.
    - `updated_at` string, date-time, required: Timestamp of the last update to the session.

## Other responses

- `401`: 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.
- `403`: The authenticated credential is not permitted to perform this operation.
- `404`: Not Found
- `429`: Authentication is temporarily overloaded. Retry after the number of seconds in `Retry-After`.
- `500`: Internal Server Error
- `503`: Authentication is temporarily unavailable.

## Changes

- **2026-10-15** `a72569d69430`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/team-telnyx/apis/telnyx-api/changes/meeting_sessions/:id/get.md)

---

[API](https://skmtc.dev/team-telnyx/apis/telnyx-api.md) - [All operations](https://skmtc.dev/team-telnyx/apis/telnyx-api/llms.txt) - [OpenAPI document](https://skmtc.dev/team-telnyx/apis/telnyx-api/revisions/0f17b8167873?raw)
