Sending a bot
Learn how to send AI bots to meetings through the Meeting BaaS API, with options for immediate or scheduled joining and customizable settings
Sending a Bot to a Meeting
You can summon a bot in two ways with a simple curl request, using one our code examples, our more simply if you use Typescript, our SDK.
API Request
Send a POST request to https://api.meetingbaas.com/bots:
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 :)",
"speech_to_text": {
"provider": "Default"
},
"automatic_leave": {
"waiting_room_timeout": 600
}
}'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 :)",
"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())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",
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));Request Parameters
Required Parameters
meeting_url: The meeting URL to join. Accepts Google Meet, Microsoft Teams or Zoom URLs.bot_name: The display name of the bot.
Recording Options
recording_mode: Optional. One of:"speaker_view": (default) The recording will only show the person speaking at any time"gallery_view": The recording will show all the speakers"audio_only": The recording will be a mp3
Bot Appearance and Behavior
bot_image: The URL of the image the bot will display. Must be a valid URI format. Optional.entry_message: Optional. The message the bot will write within 15 seconds after being accepted in the meeting.
Transcription Settings
speech_to_text: Optional. If not provided, no transcription will be generated and processing time will be faster.- Must be an object with:
provider: One of:"Default": Standard transcription, no API key needed"Gladia"or"Runpod": Requires their respective API key to be provided
api_key: Required when using Gladia or Runpod providers. Must be a valid API key from the respective service.
- Must be an object with:
Automatic Leaving
automatic_leave: Optional object containing:waiting_room_timeout: Time in seconds the bot will wait in a meeting room before dropping. Default is 600 (10 minutes)noone_joined_timeout: Time in seconds the bot will wait if no one joins the meeting
Advanced Options
webhook_url: URL for webhook notificationsdeduplication_key: String for deduplication. By default, Meeting BaaS will reject you sending multiple bots to a same meeting within 5 minutes, to avoid spamming.streaming: Object containing optional WebSocket streaming configuration:audio_frequency: Audio frequency for the WebSocket streams. Can be "16khz" or "24khz" (defaults to "24khz")input: WebSocket endpoint to receive raw audio bytes and speaker diarization as JSON strings from the meetingoutput: WebSocket endpoint to stream raw audio bytes back into the meeting, enabling bot speech
extra: Additional custom datastart_time: Unix timestamp (in seconds) for when the bot should join the meeting. For example, if you want the bot to join at exactly 2:00 PM, set this to the millisecond timestamp of 2:00 PM.
Response
The API will respond with the unique identifier for your bot:
HTTP/2 200
Content-Type: application/json
{
"bot_id": 42
}Next Steps
Use this bot_id to:
