Create a bot
Creates a new bot to join a meeting. The bot will automatically start recording when it joins. **Important:** The `webhook_url` field specifies where bot lifecycle events (status changes, recording ready, transcript available) will be sent. Each client must provide their own webhook endpoint.
Authorization
apiKey Meeting BaaS API key. Use format: Token YOUR_API_KEY
In: header
Request Body
application/json
URL of the meeting to join (Zoom, Google Meet, or Microsoft Teams)
Required for webhook events. URL where bot lifecycle events (status changes, recording ready, transcript available) will be sent via POST. Events are delivered in Recall.ai webhook format. Must be HTTPS in production.
uriDisplay name for the bot in the meeting
Not supported. ISO 8601 timestamp for when the bot should join. Use the Meeting BaaS scheduled bots API instead. Accepted for compatibility but ignored.
Timeout settings for automatic bot departure
Not supported. Use bot_image URL in Meeting BaaS for static avatar. Dynamic in-call images are not supported. Accepted for compatibility but ignored.
Recording and transcription configuration
Recording layout mode
"speaker_view" | "gallery_view" | "audio_only"Not supported. Accepted for compatibility but ignored.
Real-time streaming endpoints. First endpoint URL is used.
Not supported. Accepted for compatibility but ignored.
Not supported. Accepted for compatibility but ignored.
Not supported. Use recording_mode instead. Accepted for compatibility but ignored.
"speaker_view" | "gallery_view" | "gallery_view_v2" | "single_participant"Not supported. Camera/screenshare output media is not available in Meeting BaaS. Accepted for compatibility but ignored.
Zoom-specific configuration. Only zak_url is supported.
Not supported. Accepted for compatibility but ignored.
Microsoft Teams configuration. deduplication_key triggers duplicate prevention.
Custom metadata to attach to the bot
Chat settings. Note: send_to is not supported, messages always go to everyone.
Meeting BaaS extension. URL to bot avatar image (HTTPS, JPEG/PNG). Not in Recall.ai spec but supported.
uriResponse Body
application/json
application/json
application/json
curl -X POST "https://api.meetingrouter.com/api/v1/bot" \ -H "Content-Type: application/json" \ -d '{ "meeting_url": "https://zoom.us/j/123456789", "webhook_url": "https://your-app.com/webhooks/recall", "bot_name": "Meeting Bot", "recording_mode": "speaker_view", "chat": { "on_bot_join": { "send_to": "everyone", "message": "This meeting is being recorded." } } }'{
"id": "550e8400-e29b-41d4-a716-446655440000",
"meeting_url": "string",
"bot_name": "string",
"join_at": "string",
"status_changes": [
{
"code": "ready",
"message": "string",
"created_at": "string",
"sub_code": "string"
}
],
"meeting_metadata": {
"title": "string",
"start_time": "string",
"end_time": "string",
"duration_seconds": 0
},
"meeting_participants": [
{
"id": 0,
"name": "string",
"is_host": true,
"platform": "string",
"extra_data": null,
"email": "string"
}
],
"recordings": [
{
"id": "string",
"created_at": "string"
}
],
"transcripts": [
{
"id": "string",
"created_at": "string"
}
],
"metadata": {
"property1": "string",
"property2": "string"
},
"video_url": "string",
"mp4_source_url": "string",
"platform": "zoom"
}{
"error": "string",
"details": null
}{
"error": "string",
"details": null
}