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

# Meeting Quick Start

> Send the bot to a meeting, follow the live transcript, and read the summary -- four curl commands end to end.

Send the bot to a real meeting and get back a transcript, summary, and action items. All you need is a Telnyx API key and a meeting link.

<Steps>
  <Step title="Send the Bot to a Meeting">
    Create a meeting session pointing at your meeting URL:

    ```bash theme={null}
    curl -X POST https://api.telnyx.com/v2/meeting_sessions \
      -H "Authorization: Bearer $TELNYX_API_KEY" \
      -H "Content-Type: application/json" \
      -d '{
        "meeting_url": "https://meet.google.com/abc-defg-hij",
        "bot_name": "Notetaker",
        "summarize_on_end": true
      }'
    ```

    Returns `201 Created` with the session `id`:

    ```json theme={null}
    {
      "data": {
        "id": "mtgsess_9b2f...",
        "status": "joining",
        "platform": "google_meet",
        "recording": false
      }
    }
    ```

    `summarize_on_end` attempts a `summary` artifact after the transcript is finalized, so a recap is ready without a second request. It does not generate action items -- request an `action_items` artifact separately -- and an empty transcript or a generation failure can result in no completed summary.
  </Step>

  <Step title="Admit the Bot">
    The bot appears in the meeting lobby under its `bot_name`; admit it like any other participant. Poll the session until `status` is `active`:

    ```bash theme={null}
    curl -H "Authorization: Bearer $TELNYX_API_KEY" \
      "https://api.telnyx.com/v2/meeting_sessions/mtgsess_9b2f..."
    ```

    A non-null `joined_at` is positive evidence that the bot became active. `admission_denied` is reserved for an explicit denial by the host; a never-admitted session can also end as plain `ended`, so do not infer attendance from `ended` alone. The full status lifecycle is on [Join with a Meeting URL](/docs/meeting/join-meeting/meeting-url).
  </Step>

  <Step title="Follow the Transcript Live">
    Long-poll the transcript endpoint while the meeting runs. `after` is your cursor; `wait_seconds` holds the request open until a new segment lands:

    ```bash theme={null}
    curl -H "Authorization: Bearer $TELNYX_API_KEY" \
      "https://api.telnyx.com/v2/meeting_sessions/mtgsess_9b2f.../transcript?after=0&wait_seconds=20"
    ```

    ```json theme={null}
    {
      "data": [
        {
          "seq": 41,
          "text": "let's ship it",
          "speaker_label": "Ada L.",
          "confidence": 0.94,
          "relative_ts": 1240.5,
          "occurred_at": "2026-06-16T09:00:42Z"
        }
      ],
      "meta": {
        "next_after": 41
      }
    }
    ```

    Repeat the call with `after` set to `meta.next_after` (the last `seq` you received). When an empty page returns `"next_after": null`, keep the cursor you already had -- null is not a replacement cursor.
  </Step>

  <Step title="Read the Results">
    When the meeting ends -- or you `DELETE` the session to make the bot leave -- the transcript is finalized and the summary generates. Read the artifacts:

    ```bash theme={null}
    curl -H "Authorization: Bearer $TELNYX_API_KEY" \
      "https://api.telnyx.com/v2/meeting_sessions/mtgsess_9b2f.../artifacts"
    ```

    Poll until the artifact's `status` is `completed`, then read `content.text` for the recap. To get action items, `POST` to the same `artifacts` endpoint with `{"type": "action_items"}`. The finalized transcript stays available at the `transcript` endpoint.
  </Step>
</Steps>

## Related

* [Join a Meeting](/docs/meeting/join-meeting) -- scheduling, calendar auto-join, and the session lifecycle
* [Meeting MCP Server](/docs/meeting/mcp) -- run the Meeting workflow from an MCP-compatible AI agent
* [Live Transcript](/docs/meeting/live-transcript) -- long polling and the WebSocket stream in depth
* [Meeting Presence](/docs/meeting/interact) -- make the bot speak, post to chat, and be interrupted
* [Collect Results](/docs/meeting/collect-results) -- artifacts, recordings, and deletion
* [Webhooks](/docs/meeting/webhooks) -- push session events to your endpoint instead of polling
