---
title: AI Meeting API for Zoom, Meet & Teams | Telnyx
canonical: https://telnyx.com/products/meeting-api
---
# AI Meeting API for Zoom, Meet & Teams | Telnyx

**TELNYX MEETING API**

# Meeting API for AI Agents

Your agent can now join a meeting. Transcribe, speak, chat, and get a summary at the end. One API call, one API key.

[Start building](https://telnyx.com/sign-up)[Explore Voice AI](https://telnyx.com/products/voice-ai)

WHY TELNYX

## Building for agents, making our platform agent-first.

* ### API-first, not GUI-first  
Every other notetaker assumes a human clicks join. Meeting API assumes an agent calls an endpoint. Same primitives, same API key, extended into the meeting room.
* ### One vendor, one bill  
No second auth flow, no second billing relationship. STT, TTS, telephony, and meeting participation run on the Telnyx API key you already have. One account, one invoice, one support thread.
* ### One network, one API  
Call quality, latency, transcription, and TTS on the same carrier-grade network. No third-party hops. Consistent performance from session layer to model layer, all behind one API key.

FEATURES

## Everything an agent needs to show up in a meeting.

Each primitive is independently useful and composes with the rest of the Telnyx stack.

* Live transcription  
Stream the meeting transcript to your agent as it happens, with speaker labels and timestamps, through Telnyx STT.
* Programmable speech  
Your agent can make the bot say anything at any point in the meeting. Text goes through Telnyx TTS and plays into the meeting audio.
* Chat injection  
Drop messages into the meeting chat on Zoom, Google Meet, and Teams. Webex supports joining and transcription but not chat.
* Post-meeting artifacts  
When the meeting ends, receive structured summaries and action items generated by Telnyx Inference. summarize\_on\_end auto-generates a summary from the final transcript.
* Webhook-driven lifecycle  
Set a webhook\_url on session create to receive signed meeting lifecycle events. No polling required, but polling is supported for batch workflows.
* Cross-platform support  
One API surface for Zoom, Google Meet, Microsoft Teams, and Webex. Same request shape, same response shape, same webhook contract.

HOW IT WORKS

## Four API calls cover the full meeting lifecycle.

Create a session, poll for status, fetch the transcript, and tell the bot to speak.

Create, poll, transcribe, speak

```
# 1. Create a meeting session
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": "Standup Bot",
    "summarize_on_end": true
  }'

# 2. Poll session status until active
curl https://api.telnyx.com/v2/meeting_sessions/$SESSION_ID \
  -H "Authorization: Bearer $TELNYX_API_KEY"

# 3. Fetch the live transcript
curl "https://api.telnyx.com/v2/meeting_sessions/$SESSION_ID/transcript?after=0&limit=100" \
  -H "Authorization: Bearer $TELNYX_API_KEY"

# 4. Make the bot speak
curl -X POST https://api.telnyx.com/v2/meeting_sessions/$SESSION_ID/actions/speak \
  -H "Authorization: Bearer $TELNYX_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "text": "I have the action items from last week." }'
```

Same flow with requests

```
import os, time, requests

API = "https://api.telnyx.com/v2"
HEADERS = {"Authorization": f"Bearer {os.environ['TELNYX_API_KEY']}", "Content-Type": "application/json"}

# 1. Create a meeting session
session = requests.post(f"{API}/meeting_sessions", headers=HEADERS, json={"meeting_url": "https://meet.google.com/abc-defg-hij", "bot_name": "Standup Bot", "summarize_on_end": True}).json()["data"]
session_id = session["id"]

# 2. Poll until active
while True:
    status = requests.get(f"{API}/meeting_sessions/{session_id}", headers=HEADERS).json()["data"]
    if status["status"] == "active": break
    time.sleep(5)

# 3. Fetch the transcript
transcript = requests.get(f"{API}/meeting_sessions/{session_id}/transcript?after=0&limit=100", headers=HEADERS).json()["data"]

# 4. Make the bot speak
requests.post(f"{API}/meeting_sessions/{session_id}/actions/speak", headers=HEADERS, json={"text": "I have the action items from last week."})
```

Same flow with fetch

```
const API = "https://api.telnyx.com/v2";
const headers = {Authorization: `Bearer ${process.env.TELNYX_API_KEY}`, "Content-Type": "application/json"};

// 1. Create a meeting session
const session = await fetch(`${API}/meeting_sessions`, {method: "POST", headers, body: JSON.stringify({meeting_url: "https://meet.google.com/abc-defg-hij", bot_name: "Standup Bot", summarize_on_end: true})}).then(r => r.json());
const sessionId = session.data.id;

// 2. Poll until active
let status;
do {
  await new Promise(r => setTimeout(r, 5000));
  status = await fetch(`${API}/meeting_sessions/${sessionId}`, {headers}).then(r => r.json());
} while (status.data.status !== "active");

// 3. Fetch the transcript
const transcript = await fetch(`${API}/meeting_sessions/${sessionId}/transcript?after=0&limit=100`, {headers}).then(r => r.json());

// 4. Make the bot speak
await fetch(`${API}/meeting_sessions/${sessionId}/actions/speak`, {method: "POST", headers, body: JSON.stringify({text: "I have the action items from last week."})});
```

Create, poll, transcribe, speakSame flow with requestsSame flow with fetch

PRODUCTS

## One API key. Every primitive your agent needs.

* [![Voice-AI-Agents_Hero](https://d2efw2akbx8gaf.cloudfront.net/https://dotcom-payload-assets-prod.s3.us-east-1.amazonaws.com/cms-media/Voice-AI-Agents_Hero_16x9%402x.webp?width=1024&format=webp)Voice AI AgentsProgrammable voice agents for inbound and outbound calls. Same STT, TTS, and orchestration primitives that power Meeting API.](https://telnyx.com/products/voice-ai-agents)
* [![inference](https://d2efw2akbx8gaf.cloudfront.net/https://dotcom-payload-assets-prod.s3.us-east-1.amazonaws.com/cms-media/ab-prod-02-inference.png?width=2000&format=webp)InferenceOpen-weight and frontier models on edge-deployed GPUs. Per-token pricing with global availability.](https://telnyx.com/products/inference)
* [![Text-to-Speech — one API for leading voice engines](https://d2efw2akbx8gaf.cloudfront.net/https://dotcom-payload-assets-prod.s3.us-east-1.amazonaws.com/cms-media/Voice-API_Feature_Text-to-speech_16x9%402x.webp?width=1696&format=webp)Text-to-SpeechHosted voices from Telnyx and third-party providers. Use the same voice in your meeting bot, your voice agent, and your IVR.](https://telnyx.com/products/text-to-speech-api)
* [![Real-time speech-to-text transcription](https://d2efw2akbx8gaf.cloudfront.net/https://dotcom-payload-assets-prod.s3.us-east-1.amazonaws.com/cms-media/stt-hero.png?width=833&format=webp)Speech-to-TextReal-time and batch transcription with multiple model options. Pick the model that fits your latency, accuracy, and cost targets.](https://telnyx.com/products/speech-to-text-api)

## Get a Telnyx API key and send an agent into a meeting.

Sign up, grab your key, and run the cURL example above. Meeting API is in beta.

[Get started](https://telnyx.com/sign-up)[Read the docs](https://developers.telnyx.com)

## Get a Telnyx API key and send an agent into a meeting.

Sign up, grab your key, and run the cURL example above. Meeting API is in beta.

[Get started](https://telnyx.com/sign-up)[Read the docs](https://developers.telnyx.com)

## FAQ

### What is Telnyx Meeting API?

Meeting API is an API-first agent primitive that lets a developer programmatically add a Telnyx-controlled AI participant to a Zoom, Google Meet, Microsoft Teams, or Webex meeting. The bot transcribes the meeting live, can speak and chat into it, and returns structured summaries and action items when the meeting ends.

### Which meeting platforms are supported?

### How does an agent use Meeting API?

### How is Meeting API priced?

### Which transcription model does the bot use?

### Can the bot record the meeting?

### What artifacts does the bot produce?

### How are webhooks delivered?

### Where is meeting data stored?

### Is Meeting API generally available?

### Why use Telnyx Meeting API instead of a standalone meeting bot API?

[Start building](https://telnyx.com/sign-up)