Bots API

Deploy AI Bots to Meetings Instantly

The Bots API lets you deploy AI-powered bots to Google Meet, Microsoft Teams, and Zoom meetings for recording, transcription, and live event monitoring.

  • Send bots to meetings instantly or schedule in advance
  • Record audio/video or join in audio-only mode
  • Enable live transcription and speaker identification
  • Customize bot name, avatar, and entry message
  • Receive real-time status and completion webhooks

MeetingBaaS bots act as real meeting participants, providing seamless integration for automation, compliance, and analytics use cases.

Key Features

  • Multi-Platform Support: Google Meet, Microsoft Teams, Zoom
  • Instant or Scheduled Join: Deploy bots immediately or reserve for future meetings
  • Recording Modes: Speaker view, gallery view, or audio-only
  • Transcription: Live or post-meeting, with multiple provider options
  • Customizable Bots: Name, avatar, entry message, and more
  • Webhooks: Real-time status, completion, and error notifications
  • Advanced Options: WebSocket streaming, deduplication, and more

Bot Webhook Event Types

MeetingBaaS bots send the following webhook events to your endpoint:


  • complete: Bot finished recording, transcript and MP4 available
  • failed: Bot failed to join or record the meeting (with error details)
  • transcription_complete: Transcription completed (after retranscribe or async job)
  • bot.status_change: Live status updates (joining, in call, recording, paused, ended, etc.)

See below for example webhook payloads.


WEBHOOK_EVENTS.JSON
{ "events": [ { "type": "meeting.started", "event_id": "evt_123456789", "created_at": "2023-06-01T12:00:00Z", "data": { "botId": "bot_abcdef123456", "meetingUrl": "https://meet.google.com/abc-def-ghi", "startTime": "2023-06-01T12:00:00Z" } }, { "type": "meeting.completed", "event_id": "evt_123456790", "created_at": "2023-06-01T13:00:00Z", "data": { "botId": "bot_abcdef123456", "meetingUrl": "https://meet.google.com/abc-def-ghi", "duration": 3600, "mp4Url": "https://storage.example.com/recordings/meeting-123.mp4", "transcripts": [ { "speaker": "John Doe", "startTime": 15.5, "endTime": 20.2, "text": "Hello everyone, thanks for joining." } ] } } ] }

API Usage

The Bots API provides endpoints to:

  • Send a bot to a meeting (POST /bots)
  • Remove a bot from a meeting (DELETE /bots/{bot_id})
  • List bots and meeting metadata
  • Retranscribe a meeting (POST /bots/retranscribe)
  • Get meeting data, screenshots, and more

Authentication is via your MeetingBaaS API key. See the code examples for how to send, remove, and interact with bots programmatically.

#!/bin/bash API_KEY=$1 MEETING_URL=$2 curl -X POST "https://api.meetingbaas.com/bots" \ -H "Content-Type: application/json" \ -H "x-spoke-api-key: $API_KEY" \ -d '{ "meeting_url": "'"$MEETING_URL"'", "bot_name": "Your Bot", "speech_to_text": "Gladia" }'
SPEAKING_BOT.PY
import json import requests # API endpoint url = "https://speaking.meetingbaas.com/bots" # Request headers headers = {"Content-Type": "application/json"} # Request payload payload = { "meeting_url": "https://meet.google.com/abc-defg-hij", "personas": ["interviewer", "note_taker"], "meeting_baas_api_key": "your-api-key", "websocket_url": "wss://your-server.com/ws", # Optional "tts_provider": "cartesia", # Optional "stt_provider": "deepgram", # Optional } # Send the request response = requests.post(url, headers=headers, data=json.dumps(payload)) # Process the response if response.status_code == 200: result = response.json() print(f"Success! Bot ID: {result.get('bot_id')}") print(f"Bot Name: {result.get('bot_name')}") else: print(f"Error: {response.status_code}") print(response.text)
preview features