What You Get
Depending on your flags:transcribe_enabled=true→ transcriptsegments[](live via WebSocket and/or post-meeting via REST)recording_enabled=true→ post-meetingrecordings[]with playable/downloadable media
Supported Meeting Platforms
The API is platform-agnostic. The only differences are the meeting identifiers you pass.| Platform | platform | native_meeting_id | passcode | Notes |
|---|---|---|---|---|
| Google Meet | google_meet | abc-defg-hij | No | Often requires host admission (waiting room) |
| Microsoft Teams | teams | numeric ID (e.g. 1234567890123) | Yes (?p= value) | passcode is required for most Teams links |
| Zoom | zoom | numeric ID (e.g. 12345678901) | Optional (?pwd=) | Requires extra setup + usually Marketplace approval |
Lifecycle (High-Level)
Typical flow:- You call
POST /bots - Bot joins the meeting (
joining, sometimesawaiting_admission) - Bot becomes
active - You stop it (or the meeting ends)
- Meeting becomes
completedand post-meeting artifacts finalize (recordings + final transcript)
- Webhooks: Webhooks
- WebSocket live transcript updates: WebSocket guide
Live vs Post-Meeting
- Live: use WebSockets to stream segments with low latency
- Post-meeting: use
GET /transcripts/{platform}/{native_meeting_id}for the finalized result - Playback (when recording exists): stream bytes from
/recordings/.../rawand highlight segments usingstart_time/end_time
Deleting / Anonymizing
DELETE /meetings/{platform}/{native_meeting_id} is designed to be safe to retry (idempotent) and scrubs meeting data for telemetry/usage tracking.