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
The URL of the meeting to join. Supports Zoom, Google Meet, Microsoft Teams, and other platforms.
Display name for the bot in the meeting. Default varies by platform.
When the bot should join the meeting. If not provided, the bot joins immediately.
Configuration for streaming transcription data in real-time.Webhook URL to receive transcription events
Whether to send partial transcription results before finalization
Enable enhanced speaker identification
Configuration for streaming media and events in real-time.RTMP URL for streaming video output
websocket_video_destination_url
WebSocket URL for streaming video frames
websocket_audio_destination_url
WebSocket URL for streaming audio data
websocket_speaker_timeline_destionation_url
WebSocket URL for streaming speaker timeline events
websocket_speaker_timeline_exclude_null_speaker
Exclude events when speaker is unknown
webhook_call_events_destination_url
Webhook URL for call lifecycle events
webhook_chat_messages_destination_url
Webhook URL for chat messages
Configuration for transcription processing.Transcription provider to use (e.g., “assembly_ai”, “deepgram”)
Recording mode: “speaker_view”, “gallery_view”, or “audio_only”
Additional recording configuration.participant_video_when_screenshare
How to handle participant video during screen sharing
When to start recording (e.g., “join”, “permission_granted”)
Customize the bot’s video appearance.Display configuration when recordingDisplay type (e.g., “image”)
Base64-encoded image data
Display configuration when not recordingDisplay type (e.g., “image”)
Base64-encoded image data
Response
Unique identifier for the created bot
Parsed meeting informationExtracted meeting ID from the URL
Meeting password if provided in the URL
Detected platform (e.g., “zoom”, “google_meet”, “teams”)
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}`);