API Compatibility
Recall.ai API field compatibility with Meeting BaaS
This document lists all Recall.ai API fields and their compatibility status with Meeting BaaS.
Create Bot Request
Coverage: 12/20 fields supported (60%)
✅ Supported Fields (11)
| Field | Type | Description |
|---|---|---|
meeting_url | string | URL of the meeting to join (Zoom, Google Meet, or Microsoft Teams) |
webhook_url | string | 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. |
bot_name | string | Display name for the bot in the meeting |
automatic_leave | object | Timeout settings for automatic bot departure |
recording_config | object | Recording and transcription configuration |
recording_mode | "speaker_view" | "gallery_view" | "audio_only" | Recording layout mode |
realtime_endpoints | array | Real-time streaming endpoints. First endpoint URL is used. |
zoom | object | Zoom-specific configuration. Only zak_url is supported. |
microsoft_teams | object | Microsoft Teams configuration. deduplication_key triggers duplicate prevention. |
metadata | Record<string, any> | Custom metadata to attach to the bot |
chat | object | Chat settings. Note: send_to is not supported, messages always go to everyone. |
⚠️ Partially Supported (1)
| Field | Type | Notes |
|---|---|---|
microsoft_teams.deduplication_key | string | Maps to allow_multiple_bots=false to prevent duplicate bots. The key value itself is not stored. |
❌ Not Supported (11)
These fields are accepted for API compatibility but ignored:
| Field | Type | Notes |
|---|---|---|
join_at | string | ISO 8601 timestamp for when the bot should join. Use the Meeting BaaS scheduled bots API instead. Accepted for compatibility but ignored. |
automatic_video_output | object | Use bot_image URL in Meeting BaaS for static avatar. Dynamic in-call images are not supported. Accepted for compatibility but ignored. |
recording_mode_options | object | Accepted for compatibility but ignored. |
audio_separate_raw | object | Accepted for compatibility but ignored. |
video_separate_png | object | Accepted for compatibility but ignored. |
video_mixed_layout | "speaker_view" | "gallery_view" | "gallery_view_v2" | "single_participant" | Use recording_mode instead. Accepted for compatibility but ignored. |
output_media | object | Camera/screenshare output media is not available in Meeting BaaS. Accepted for compatibility but ignored. |
zoom.join_token_url | string | Accepted for compatibility but ignored. |
zoom.user_email | string | Accepted for compatibility but ignored. |
google_meet | object | Accepted for compatibility but ignored. |
chat.on_bot_join.send_to | "everyone" | "host" | Message recipient control is not available. Messages are sent to everyone. Accepted for compatibility but ignored. |
🆕 Meeting BaaS Extensions (1)
These fields are NOT in the Recall.ai API but are supported as extensions:
| Field | Type | Description |
|---|---|---|
bot_image | string | URL to bot avatar image (HTTPS, JPEG/PNG). Not in Recall.ai spec but supported. |
Bot Response
Coverage: 13/13 fields supported (100%)
✅ Supported Fields (13)
| Field | Type | Description |
|---|---|---|
id | string | Bot ID |
meeting_url | string | URL of the meeting |
bot_name | string | Display name of the bot |
join_at | string | When the bot joined the meeting |
status_changes | array | Status change history (single item in Meeting BaaS) |
meeting_metadata | object | - |
meeting_participants | array | List of meeting participants |
recordings | array | - |
transcripts | array | - |
metadata | Record<string, any> | Custom metadata |
video_url | string | URL to the video recording |
mp4_source_url | string | URL to the MP4 video |
platform | "zoom" | "google_meet" | "microsoft_teams" | Meeting platform |
API Reference
Recall.ai API Compatibility Layer for Meeting BaaS
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.