Documentation Index
Fetch the complete documentation index at: https://mintlify.com/sam-ayo/recall_sdk/llms.txt
Use this file to discover all available pages before exploring further.
Overview
This page documents all TypeScript types, interfaces, and enums used when working with bots in the Recall AI SDK.
Core Types
BotStatus
type BotStatus =
| "ready"
| "joining_call"
| "in_waiting_room"
| "in_call_not_recording"
| "recording_permission_allowed"
| "recording_permission_denied"
| "in_call_recording"
| "recording_done"
| "call_ended"
| "done"
| "fatal"
| "media_expired"
| "analysis_done"
| "analysis_failed";
Represents the current status of a bot throughout its lifecycle.
Status Progression:
- ready - Bot is initialized and ready to join a meeting
- joining_call - Bot is attempting to join the meeting
- in_waiting_room - Bot is in the meeting’s waiting room (if enabled)
- in_call_not_recording - Bot has joined but is not yet recording
- recording_permission_allowed - Host has granted recording permission
- recording_permission_denied - Host has denied recording permission
- in_call_recording - Bot is actively recording the meeting
- recording_done - Recording has completed
- call_ended - The meeting has ended
- done - Bot has finished all processing
- fatal - An unrecoverable error occurred
- media_expired - Recorded media has expired
- analysis_done - Post-meeting analysis is complete
- analysis_failed - Post-meeting analysis failed
Request Parameters
CreateParams
interface CreateParams extends MeetingConfigurationParams {
meeting_url: string;
[key: string]: any;
}
Parameters for creating a new bot to join a meeting.
Properties:
MeetingConfigurationParams
interface MeetingConfigurationParams {
bot_name?: string;
join_at?: Date;
real_time_transcription?: RealTimeTranscription;
real_time_media?: RealTimeMedia;
transcription_options?: TranscriptionOptions;
recording_mode?: string;
recording_mode_options?: RecordingModeOptions;
automatic_video_output?: AutomaticVideoOutput;
[key: string]: any;
}
Configuration options for bot behavior during meetings.
Properties:
- bot_name: Display name for the bot in the meeting
- join_at: Scheduled time for the bot to join (if not immediate)
- real_time_transcription: Configuration for live transcription streaming
- real_time_media: Configuration for real-time media streaming
- transcription_options: Provider-specific transcription settings
- recording_mode: Recording behavior mode
- recording_mode_options: Additional recording mode configuration
- automatic_video_output: Visual display settings for the bot
UpdateScheduledParams
interface UpdateScheduledParams extends MeetingConfigurationParams {
id: string;
meeting_url?: string;
}
Parameters for updating a scheduled bot.
Properties:
- id (required): The bot’s unique identifier
- meeting_url: Updated meeting URL (optional)
- Inherits all properties from MeetingConfigurationParams
BaseBotParams
interface BaseBotParams {
id: string;
}
Base parameters for bot-specific operations that require only the bot ID.
ListQueryParams
interface ListQueryParams {
join_at_after?: Date;
join_at_before?: Date;
meeting_url?: string;
page?: number;
status?: BotStatus;
}
Query parameters for filtering and paginating bot lists.
Properties:
- join_at_after: Filter bots that joined after this date
- join_at_before: Filter bots that joined before this date
- meeting_url: Filter bots by meeting URL
- page: Page number for pagination
- status: Filter bots by their current status
GetTranscriptParams
interface GetTranscriptParams extends BaseBotParams {
enhanced_diarization?: boolean;
}
Parameters for retrieving a bot’s transcript.
Properties:
- id: Bot identifier (inherited from BaseBotParams)
- enhanced_diarization: Enable enhanced speaker identification (optional)
ListChatMessagesParams
interface ListChatMessagesParams extends BaseBotParams {
cursor?: string;
ordering?: string;
}
Parameters for retrieving chat messages from a bot’s meeting.
Properties:
- id: Bot identifier (inherited from BaseBotParams)
- cursor: Pagination cursor for fetching next page
- ordering: Sort order for messages
OutputAudioParams
interface OutputAudioParams extends BaseBotParams {
kind: string;
b64_data: string;
}
Parameters for sending audio output through the bot.
Properties:
- id: Bot identifier (inherited from BaseBotParams)
- kind: Type of audio output
- b64_data: Base64-encoded audio data
Response Types
CreateResponse
interface CreateResponse {
id: string;
meeting_url: {
meeting_id: string;
meeting_password: string | undefined;
platform: string;
};
join_at: string;
}
Response returned after creating a bot.
Properties:
- id: Unique identifier for the created bot
- meeting_url: Parsed meeting information
- meeting_id: The platform-specific meeting identifier
- meeting_password: Meeting password if required
- platform: Meeting platform (e.g., “zoom”, “google_meet”, “teams”)
- join_at: ISO timestamp when the bot will/did join
Real-Time Configuration
RealTimeTranscription
interface RealTimeTranscription {
destination_url?: string;
partial_results?: boolean;
enhanced_diarization?: boolean;
}
Configuration for streaming transcriptions in real-time.
Properties:
- destination_url: Webhook URL to receive transcription events
- partial_results: Include partial/interim transcription results
- enhanced_diarization: Enable advanced speaker identification
interface RealTimeMedia {
rtmp_destination_url?: string;
websocket_video_destination_url?: string;
websocket_audio_destination_url?: string;
websocket_speaker_timeline_destionation_url?: string;
websocket_speaker_timeline_exclude_null_speaker?: boolean;
webhook_call_events_destination_url?: string;
webhook_chat_messages_destination_url?: string;
}
Configuration for streaming media and events in real-time.
Properties:
- rtmp_destination_url: RTMP endpoint for video streaming
- websocket_video_destination_url: WebSocket endpoint for video frames
- websocket_audio_destination_url: WebSocket endpoint for audio streams
- websocket_speaker_timeline_destionation_url: WebSocket endpoint for speaker timeline events
- websocket_speaker_timeline_exclude_null_speaker: Filter out unknown speakers from timeline
- webhook_call_events_destination_url: Webhook URL for call events (join, leave, etc.)
- webhook_chat_messages_destination_url: Webhook URL for chat messages
Recording Configuration
TranscriptionOptions
interface TranscriptionOptions {
provider: string;
[key: string]: any;
}
Provider-specific transcription settings.
Properties:
- provider: Transcription provider identifier
- Additional provider-specific options can be included
RecordingModeOptions
interface RecordingModeOptions {
participant_video_when_screenshare?: string;
start_recording_on?: string;
}
Advanced recording behavior options.
Properties:
- participant_video_when_screenshare: How to handle participant video during screen sharing
- start_recording_on: Event or condition to trigger recording start
Visual Configuration
AutomaticVideoOutput
interface AutomaticVideoOutput {
in_call_recording?: InCallDisplay;
in_call_not_recording?: InCallDisplay;
}
Defines what the bot displays visually during different states.
Properties:
- in_call_recording: Display configuration when actively recording
- in_call_not_recording: Display configuration when not recording
InCallDisplay
interface InCallDisplay {
kind: string;
b64_data: string;
}
Defines a visual display element for the bot.
Properties:
- kind: Type of display (e.g., “image”)
- b64_data: Base64-encoded image or display data
Example Usage
Creating a Bot with Full Configuration
import { RecallAI } from '@recall-ai/sdk';
import type { CreateParams } from '@recall-ai/sdk';
const recall = new RecallAI({ apiKey: 'your-api-key' });
const params: CreateParams = {
meeting_url: 'https://zoom.us/j/123456789',
bot_name: 'Meeting Recorder',
recording_mode: 'speaker_view',
real_time_transcription: {
destination_url: 'https://your-app.com/transcription-webhook',
partial_results: true,
enhanced_diarization: true
},
transcription_options: {
provider: 'assembly_ai'
}
};
const bot = await recall.bot.create(params);
console.log('Bot created:', bot.id);
Listing Bots with Filters
import type { ListQueryParams, BotStatus } from '@recall-ai/sdk';
const filters: ListQueryParams = {
status: 'in_call_recording',
join_at_after: new Date('2024-01-01'),
page: 1
};
const bots = await recall.bot.list(filters);
Getting Transcript with Enhanced Diarization
import type { GetTranscriptParams } from '@recall-ai/sdk';
const params: GetTranscriptParams = {
id: 'bot-123',
enhanced_diarization: true
};
const transcript = await recall.bot.getTranscript(params);