Create a meeting bot
create_botSend a MeetStream bot to Zoom, Google Meet, or Teams meetings to record audio/video, transcribe, and receive webhooks. Schedule future joins and get bot and transcript IDs.
Instructions
Send a MeetStream bot to a Zoom / Google Meet / Microsoft Teams meeting (or schedule it with join_at). Returns bot_id and (when a transcription provider is set) transcript_id. Set callback_url to receive lifecycle webhooks.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| join_at | No | Schedule a future join, ISO 8601 e.g. 2026-07-02T15:00:00Z | |
| bot_name | No | Display name in the meeting (default "MeetStream Bot") | |
| language | No | Language in the provider's format (deepgram "en", assemblyai "en_us", sarvam "en-IN") | |
| bot_message | No | Chat message posted when the bot joins | |
| callback_url | No | HTTPS webhook for lifecycle events (events arrive under the "event" key) | |
| meeting_link | Yes | Full meeting URL (Zoom, Google Meet, or Teams) | |
| record_video | No | Record video too (default false = audio only) | |
| bot_image_url | No | PUBLIC image URL for the bot avatar (raw base64 is rejected) | |
| agent_config_id | No | Attach a MIA conversational AI agent | |
| idempotency_key | No | UUID for safe retries (a retry returns the original bot, HTTP 507, no double charge) | |
| retention_hours | No | Data retention window in hours (API default 24) | |
| custom_attributes | No | String key/values echoed back in every webhook | |
| separate_audio_streams | No | Capture per-participant audio | |
| separate_video_streams | No | Capture per-participant video | |
| transcription_provider | No | Post-call: deepgram (default choice), assemblyai, sarvam (Indic), meetstream, jigsawstack, meeting_captions (native). Real-time: deepgram_streaming, assemblyai_streaming. NOTE: streaming providers never fire transcription.processed/bot.done webhooks. | |
| live_transcript_webhook_url | No | Webhook URL for live transcript chunks |