Join Meeting
Create and deploy a speaking bot in a meeting.
Launches an AI-powered bot that joins a video meeting through MeetingBaas and processes audio using Pipecat's voice AI framework.
Authorization
ApiKeyAuth MeetingBaas API key for authentication
In: header
Request Body
application/json
URL of the Google Meet, Zoom or Microsoft Teams meeting to join
Name to display for the bot in the meeting
""List of persona names to use. The first available will be selected.
trueOptional public WebSocket base URL override, e.g. wss://bot.example.com
Per-bot turn-taking tuning (VAD confidence/start_secs/stop_secs/min_volume)
External text or URL data sources to append to the bot prompt
Approximate total token cap for loaded prompt_data_sources. 0 disables loading.
40000 <= value <= 50000MCP server/tool metadata and optional live connection details
Optional trusted local mcpproxy group preset. 'professional' connects to MCP_PROXY_PROFESSIONAL_URL or http://127.0.0.1:8111/mcp; 'personal' connects to MCP_PROXY_PERSONAL_URL or http://127.0.0.1:8110/mcp; 'all' connects to MCP_PROXY_ALL_URL or http://127.0.0.1:8109/mcp. The preset is merged with explicit mcp servers when both are supplied.
Tool exposure for mcp_profile presets. 'read_only' exposes retrieve_tools, call_tool_read, read_cache, and set_profile. 'read_write' also exposes call_tool_write. Presets never expose upstream_servers, call_tool_destructive, code_execution, registry, or quarantine tools.
"read_only""read_only" | "read_write"LLM provider for this bot. Defaults to LLM_PROVIDER, then openai.
Provider model for this bot. Defaults to provider-specific env vars.
TTS speaking speed multiplier between 0.6 and 1.5; values outside are rejected. Defaults to CARTESIA_TTS_SPEED, TTS_SPEED, SPEECH_SPEED, or the runner default.
Bring your own provider keys for this bot (LLM, speech-to-text, text-to-speech). Any key left out falls back to the server's own configuration. Keys are used only by this bot's pipeline and are never stored or returned.
Have MeetingBaas transcribe the recording once the meeting ends, with the bot's own turns attributed to it by name. Set false for a recording without a transcript.
trueMeetingBaas speech-to-text provider for that transcript.
"gladia""gladia" | "deepgram" | "assemblyai" | "speechmatics" | "soniox"Response Body
application/json
application/json
curl -X POST "https://speaking.meetingbaas.com/bots" \ -H "Content-Type: application/json" \ -d '{ "bot_image": "https://example.com/bot-avatar.png", "bot_name": "Meeting Assistant", "enable_tools": true, "entry_message": "Hello! I\'m here to assist with the meeting.", "extra": { "company": "ACME Corp", "meeting_purpose": "Weekly sync" }, "llm_model": "claude-opus-4-8", "llm_provider": "anthropic", "mcp": { "servers": [ { "name": "crm", "tool_allowlist": [ "get_account", "list_recent_calls" ], "tools": [ "get_account", "list_recent_calls" ], "transport": "streamable_http", "url": "https://mcp.example.com" } ] }, "mcp_profile": "professional", "mcp_profile_tool_access": "read_only", "meeting_url": "https://meet.google.com/abc-defg-hij", "personas": [ "helpful_assistant", "meeting_facilitator" ], "prompt": "You are Meeting Assistant, a concise and professional AI bot that helps summarize key points and keep the meeting on track. Speak clearly and stay on topic.", "prompt_data_sources": [ { "name": "CRM account notes", "type": "url", "url": "https://example.com/account-notes.md" } ], "prompt_data_token_limit": 3000, "speech_speed": 1.15, "websocket_url": "wss://bots.example.com" }'{
"bot_id": "string"
}{
"detail": [
{
"loc": [
"string"
],
"msg": "string",
"type": "string"
}
]
}