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

Meeting BaaS 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

Meeting BaaS 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.

{
  "event": "complete",
  "bot_id": "bot_123456",
  "meeting_url": "https://meet.google.com/abc-defg-hij",
  "recording_url": "https://api.meetingbaas.com/recordings/bot_123456.mp4",
  "transcript_url": "https://api.meetingbaas.com/transcripts/bot_123456.json",
  "duration": 3600,
  "participants": 5,
  "created_at": "2024-01-01T12:00:00Z"
}

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 Meeting BaaS API key. See the code examples for how to send, remove, and interact with bots programmatically.

API Usage Examples

Below are examples for sending a bot to a meeting in different programming languages:

join_meeting.sh
curl -X POST "https://api.meetingbaas.com/bots" \
     -H "Content-Type: application/json" \
     -H "x-meeting-baas-api-key: YOUR-API-KEY" \
     -d '{
           "meeting_url": "YOUR-MEETING-URL",
           "bot_name": "AI Notetaker",
           "recording_mode": "speaker_view",
           "bot_image": "https://example.com/bot.jpg",
           "entry_message": "I am a good meeting bot :)",
           "reserved": false,
           "speech_to_text": {
             "provider": "Default"
           },
           "automatic_leave": {
             "waiting_room_timeout": 600
           }
         }'
join_meeting.py
import requests
url = "https://api.meetingbaas.com/bots"
headers = {
    "Content-Type": "application/json",
    "x-meeting-baas-api-key": "YOUR-API-KEY",
}
config = {
    "meeting_url": "YOUR-MEETING-URL",
    "bot_name": "AI Notetaker",
    "recording_mode": "speaker_view",
    "bot_image": "https://example.com/bot.jpg",
    "entry_message": "I am a good meeting bot :)",
    "reserved": False,
    "speech_to_text": {
        "provider": "Default"
    },
    "automatic_leave": {
        "waiting_room_timeout": 600  # 10 minutes in seconds
    }
}
response = requests.post(url, json=config, headers=headers)
print(response.json())
join_meeting.js
fetch("https://api.meetingbaas.com/bots", {
  method: "POST",
  headers: {
    "Content-Type": "application/json",
    "x-meeting-baas-api-key": "YOUR-API-KEY",
  },
  body: JSON.stringify({
    meeting_url: "YOUR-MEETING-URL",
    bot_name: "AI Notetaker",
    reserved: false,
    recording_mode: "speaker_view",
    bot_image: "https://example.com/bot.jpg",
    entry_message: "I am a good meeting bot :)",
    speech_to_text: {
      provider: "Default",
    },
    automatic_leave: {
      waiting_room_timeout: 600,
    },
  }),
})
  .then((response) => response.json())
  .then((data) => console.log(data.bot_id))
  .catch((error) => console.error("Error:", error));

Speaking Bot Example

Here's how to create a speaking bot that can actively participate in meetings:

speaking_bot.py
import requests

def create_speaking_bot():
    url = "https://api.meetingbaas.com/bots"
    headers = {
        "Content-Type": "application/json",
        "x-meeting-baas-api-key": "YOUR-API-KEY"
    }
    
    payload = {
        "meeting_url": "YOUR-MEETING-URL",
        "bot_name": "AI Assistant",
        "recording_mode": "speaker_view",
        "entry_message": "Hello! I'm your AI assistant for this meeting.",
        "speaking_bot": {
            "enabled": True,
            "persona": "helpful assistant",
            "knowledge_base": "meeting_guidelines",
            "voice_settings": {
                "voice": "en-US-Neural2-F",
                "speed": 1.0
            }
        },
        "speech_to_text": {
            "provider": "Default"
        }
    }
    
    response = requests.post(url, headers=headers, json=payload)
    return response.json()

# Create speaking bot
result = create_speaking_bot()
print(result)
Meeting BaaS API Preview Features

Get Started

Ready to deploy bots to your meetings? Check out our comprehensive documentation: