Skip to main content
Creates a new bot that will join a virtual meeting to record, transcribe, and analyze the conversation.

Method Signature

bot.create(params: CreateParams): Promise<CreateResponse>

Parameters

meeting_url
string
required
The URL of the meeting to join. Supports Zoom, Google Meet, Microsoft Teams, and other platforms.
bot_name
string
Display name for the bot in the meeting. Default varies by platform.
join_at
Date
When the bot should join the meeting. If not provided, the bot joins immediately.
real_time_transcription
RealTimeTranscription
Configuration for streaming transcription data in real-time.
destination_url
string
Webhook URL to receive transcription events
partial_results
boolean
Whether to send partial transcription results before finalization
enhanced_diarization
boolean
Enable enhanced speaker identification
real_time_media
RealTimeMedia
Configuration for streaming media and events in real-time.
rtmp_destination_url
string
RTMP URL for streaming video output
websocket_video_destination_url
string
WebSocket URL for streaming video frames
websocket_audio_destination_url
string
WebSocket URL for streaming audio data
websocket_speaker_timeline_destionation_url
string
WebSocket URL for streaming speaker timeline events
websocket_speaker_timeline_exclude_null_speaker
boolean
Exclude events when speaker is unknown
webhook_call_events_destination_url
string
Webhook URL for call lifecycle events
webhook_chat_messages_destination_url
string
Webhook URL for chat messages
transcription_options
TranscriptionOptions
Configuration for transcription processing.
provider
string
required
Transcription provider to use (e.g., “assembly_ai”, “deepgram”)
recording_mode
string
Recording mode: “speaker_view”, “gallery_view”, or “audio_only”
recording_mode_options
RecordingModeOptions
Additional recording configuration.
participant_video_when_screenshare
string
How to handle participant video during screen sharing
start_recording_on
string
When to start recording (e.g., “join”, “permission_granted”)
automatic_video_output
AutomaticVideoOutput
Customize the bot’s video appearance.
in_call_recording
InCallDisplay
Display configuration when recording
kind
string
required
Display type (e.g., “image”)
b64_data
string
required
Base64-encoded image data
in_call_not_recording
InCallDisplay
Display configuration when not recording
kind
string
required
Display type (e.g., “image”)
b64_data
string
required
Base64-encoded image data

Response

id
string
Unique identifier for the created bot
meeting_url
object
Parsed meeting information
meeting_id
string
Extracted meeting ID from the URL
meeting_password
string | undefined
Meeting password if provided in the URL
platform
string
Detected platform (e.g., “zoom”, “google_meet”, “teams”)
join_at
string
ISO 8601 timestamp when the bot will join or joined the meeting

Example

import { Recall } from '@recall.ai/sdk';

const client = new Recall({
  apiKey: 'your-api-key',
  region: 'us-west-2'
});

// Create a bot to join immediately
const bot = await client.bot.create({
  meeting_url: 'https://zoom.us/j/123456789?pwd=abc123',
  bot_name: 'Recall Bot'
});

console.log(`Bot created with ID: ${bot.id}`);
console.log(`Platform: ${bot.meeting_url.platform}`);
console.log(`Meeting ID: ${bot.meeting_url.meeting_id}`);

Example with Real-time Transcription

const bot = await client.bot.create({
  meeting_url: 'https://meet.google.com/abc-defg-hij',
  bot_name: 'Transcription Bot',
  real_time_transcription: {
    destination_url: 'https://your-server.com/webhooks/transcription',
    partial_results: true,
    enhanced_diarization: true
  },
  transcription_options: {
    provider: 'assembly_ai'
  }
});

Example with Scheduled Join

const joinTime = new Date();
joinTime.setHours(joinTime.getHours() + 2); // Join in 2 hours

const bot = await client.bot.create({
  meeting_url: 'https://teams.microsoft.com/l/meetup-join/...',
  bot_name: 'Scheduled Bot',
  join_at: joinTime,
  recording_mode: 'speaker_view'
});

console.log(`Bot scheduled to join at ${bot.join_at}`);

Build docs developers (and LLMs) love