@meeting-baas/sdk v7.0.0 - Multi-Provider SDK v6.0.0
@meeting-baas/sdk v7.0.0 - Multi-Provider SDK v6.0.0
@meeting-baas/sdk v7.0.0 - Multi-Provider SDK v6.0.0
@meeting-baas/sdk v7.0.0
Multi-Provider Meeting Bot SDK
Supports:
- Meeting BaaS v2
- Vexa
- Attendee (coming soon)
Examples
import { UnifiedMeetingClient } from '@meeting-baas/sdk'
// 1. Initialize with one or more providers
const client = new UnifiedMeetingClient({
baas: { api_key: 'your-baas-key' },
vexa: { api_key: 'your-vexa-key' }
})
// 2. Send a bot to a meeting
const result = await client.createBot({
meeting_url: 'https://meet.google.com/abc-def',
bot_name: 'My Bot'
})
if (result.success) {
console.log('Bot created:', result.data.id)
}
// 3. Get transcript after meeting
const transcript = await client.getTranscript(result.data.id)// Access provider-specific features
const baas = client.getBaasAdapter()
if (baas) {
await baas.batchCreateBots({
bots: [
{ meeting_url: 'https://meet.google.com/abc', bot_name: 'Bot 1' },
{ meeting_url: 'https://meet.google.com/def', bot_name: 'Bot 2' }
]
})
}Classes
BaasAdapter
BaaS v2 Provider Adapter
Provides access to Meeting BaaS v2 API with unified interface
Implements
Constructors
Constructor
new BaasAdapter(
config):BaasAdapter
Parameters
| Parameter | Type |
|---|---|
config | ProviderConfig |
Returns
Methods
createBot()
createBot(
params):Promise<UnifiedResponse<BotInfo>>
Create a bot to join a meeting
Parameters
| Parameter | Type | Description |
|---|---|---|
params | CreateBotParams | Bot creation parameters |
Returns
Promise<UnifiedResponse<BotInfo>>
Unified response with bot information
Implementation of
getBot()
getBot(
identifier):Promise<UnifiedResponse<BotInfo>>
Get bot details
Parameters
| Parameter | Type | Description |
|---|---|---|
identifier | BotIdentifier | Bot identifier |
Returns
Promise<UnifiedResponse<BotInfo>>
Unified response with bot information
Implementation of
leaveBot()
leaveBot(
identifier):Promise<UnifiedResponse<BotInfo>>
Have the bot leave the meeting
Parameters
| Parameter | Type | Description |
|---|---|---|
identifier | BotIdentifier | Bot identifier |
Returns
Promise<UnifiedResponse<BotInfo>>
Unified response with updated bot information
Implementation of
deleteBot()
deleteBot(
identifier):Promise<UnifiedResponse<void>>
Delete bot data (recordings, transcripts, etc.)
Parameters
| Parameter | Type | Description |
|---|---|---|
identifier | BotIdentifier | Bot identifier |
Returns
Promise<UnifiedResponse<void>>
Unified response indicating success
Implementation of
listBots()
listBots(
params?):Promise<UnifiedResponse<BotInfo[]>>
List bots for the authenticated account
Parameters
| Parameter | Type | Description |
|---|---|---|
params? | ListBotsParams | Optional filtering parameters |
Returns
Promise<UnifiedResponse<BotInfo[]>>
Unified response with list of bots
Implementation of
getTranscript()
getTranscript(
identifier):Promise<UnifiedResponse<Transcript>>
Get transcript for a bot
Parameters
| Parameter | Type | Description |
|---|---|---|
identifier | BotIdentifier | Bot identifier |
Returns
Promise<UnifiedResponse<Transcript>>
Unified response with transcript data
Implementation of
getRecording()
getRecording(
identifier):Promise<UnifiedResponse<Recording>>
Get recording URL for a bot
Parameters
| Parameter | Type | Description |
|---|---|---|
identifier | BotIdentifier | Bot identifier |
Returns
Promise<UnifiedResponse<Recording>>
Unified response with recording information
Implementation of
createCalendar()
createCalendar(
params):Promise<UnifiedResponse<Calendar>>
Create a calendar connection
Note: Only supported by providers with supportsCalendarIntegration = true
Parameters
| Parameter | Type | Description |
|---|---|---|
params | CreateCalendarParams | Calendar connection parameters |
Returns
Promise<UnifiedResponse<Calendar>>
Unified response with calendar information
Throws
Error if provider doesn't support calendar integration
Implementation of
MeetingProvider.createCalendar
listCalendars()
listCalendars():
Promise<UnifiedResponse<Calendar[]>>
List calendar connections
Note: Only supported by providers with supportsCalendarIntegration = true
Returns
Promise<UnifiedResponse<Calendar[]>>
Unified response with list of calendars
Throws
Error if provider doesn't support calendar integration
Implementation of
getCalendar()
getCalendar(
calendar_id):Promise<UnifiedResponse<Calendar>>
Get a specific calendar
Note: Only supported by providers with supportsCalendarIntegration = true
Parameters
| Parameter | Type | Description |
|---|---|---|
calendar_id | string | Calendar identifier |
Returns
Promise<UnifiedResponse<Calendar>>
Unified response with calendar information
Throws
Error if provider doesn't support calendar integration
Implementation of
deleteCalendar()
deleteCalendar(
calendar_id):Promise<UnifiedResponse<void>>
Delete a calendar connection
Note: Only supported by providers with supportsCalendarIntegration = true
Parameters
| Parameter | Type | Description |
|---|---|---|
calendar_id | string | Calendar identifier |
Returns
Promise<UnifiedResponse<void>>
Unified response indicating success
Throws
Error if provider doesn't support calendar integration
Implementation of
MeetingProvider.deleteCalendar
Properties
providerId
readonlyproviderId:"baas"
Provider identifier
Implementation of
capabilities
readonlycapabilities:ProviderCapabilities
Provider capabilities for feature detection
This allows runtime checking of which features are available.
Implementation of
VexaAdapter
Vexa Provider Adapter
Provides access to Vexa API with unified interface
Implements
Constructors
Constructor
new VexaAdapter(
config):VexaAdapter
Parameters
| Parameter | Type |
|---|---|
config | ProviderConfig |
Returns
Methods
createBot()
createBot(
params):Promise<UnifiedResponse<BotInfo>>
Create a bot to join a meeting
Parameters
| Parameter | Type | Description |
|---|---|---|
params | CreateBotParams | Bot creation parameters |
Returns
Promise<UnifiedResponse<BotInfo>>
Unified response with bot information
Implementation of
getBot()
getBot(
identifier):Promise<UnifiedResponse<BotInfo>>
Get bot details
Parameters
| Parameter | Type | Description |
|---|---|---|
identifier | BotIdentifier | Bot identifier |
Returns
Promise<UnifiedResponse<BotInfo>>
Unified response with bot information
Implementation of
leaveBot()
leaveBot(
identifier):Promise<UnifiedResponse<BotInfo>>
Have the bot leave the meeting
Parameters
| Parameter | Type | Description |
|---|---|---|
identifier | BotIdentifier | Bot identifier |
Returns
Promise<UnifiedResponse<BotInfo>>
Unified response with updated bot information
Implementation of
deleteBot()
deleteBot(
identifier):Promise<UnifiedResponse<void>>
Delete bot data (recordings, transcripts, etc.)
Parameters
| Parameter | Type | Description |
|---|---|---|
identifier | BotIdentifier | Bot identifier |
Returns
Promise<UnifiedResponse<void>>
Unified response indicating success
Implementation of
listBots()
listBots(
params?):Promise<UnifiedResponse<BotInfo[]>>
List bots for the authenticated account
Parameters
| Parameter | Type | Description |
|---|---|---|
params? | ListBotsParams | Optional filtering parameters |
Returns
Promise<UnifiedResponse<BotInfo[]>>
Unified response with list of bots
Implementation of
getTranscript()
getTranscript(
identifier):Promise<UnifiedResponse<Transcript>>
Get transcript for a bot
Parameters
| Parameter | Type | Description |
|---|---|---|
identifier | BotIdentifier | Bot identifier |
Returns
Promise<UnifiedResponse<Transcript>>
Unified response with transcript data
Implementation of
getRecording()
getRecording(
identifier):Promise<UnifiedResponse<Recording>>
Get recording URL for a bot
Parameters
| Parameter | Type | Description |
|---|---|---|
identifier | BotIdentifier | Bot identifier |
Returns
Promise<UnifiedResponse<Recording>>
Unified response with recording information
Implementation of
createCalendar()
createCalendar():
Promise<UnifiedResponse<any>>
Create a calendar connection
Note: Only supported by providers with supportsCalendarIntegration = true
Returns
Promise<UnifiedResponse<any>>
Unified response with calendar information
Throws
Error if provider doesn't support calendar integration
Implementation of
MeetingProvider.createCalendar
listCalendars()
listCalendars():
Promise<UnifiedResponse<any[]>>
List calendar connections
Note: Only supported by providers with supportsCalendarIntegration = true
Returns
Promise<UnifiedResponse<any[]>>
Unified response with list of calendars
Throws
Error if provider doesn't support calendar integration
Implementation of
getCalendar()
getCalendar():
Promise<UnifiedResponse<any>>
Get a specific calendar
Note: Only supported by providers with supportsCalendarIntegration = true
Returns
Promise<UnifiedResponse<any>>
Unified response with calendar information
Throws
Error if provider doesn't support calendar integration
Implementation of
deleteCalendar()
deleteCalendar():
Promise<UnifiedResponse<void>>
Delete a calendar connection
Note: Only supported by providers with supportsCalendarIntegration = true
Returns
Promise<UnifiedResponse<void>>
Unified response indicating success
Throws
Error if provider doesn't support calendar integration
Implementation of
MeetingProvider.deleteCalendar
updateBotConfig()
updateBotConfig(
params):Promise<UnifiedResponse<void>>
Update bot configuration (language, task) Vexa-specific feature
Parameters
| Parameter | Type |
|---|---|
params | { platform: string; native_meeting_id: string; config: { language?: string; task?: string; }; } |
params.platform | string |
params.native_meeting_id | string |
params.config | { language?: string; task?: string; } |
params.config.language? | string |
params.config.task? | string |
Returns
Promise<UnifiedResponse<void>>
updateMeetingData()
updateMeetingData(
params):Promise<UnifiedResponse<BotInfo>>
Update meeting metadata Vexa-specific feature
Parameters
| Parameter | Type |
|---|---|
params | { platform: string; native_meeting_id: string; data: { name?: string; participants?: ...[]; languages?: ...[]; notes?: string; }; } |
params.platform | string |
params.native_meeting_id | string |
params.data | { name?: string; participants?: ...[]; languages?: ...[]; notes?: string; } |
params.data.name? | string |
params.data.participants? | ...[] |
params.data.languages? | ...[] |
params.data.notes? | string |
Returns
Promise<UnifiedResponse<BotInfo>>
Properties
providerId
readonlyproviderId:"vexa"
Provider identifier
Implementation of
capabilities
readonlycapabilities:ProviderCapabilities
Provider capabilities for feature detection
This allows runtime checking of which features are available.
Implementation of
UnifiedMeetingClient
Unified Meeting Client
Provides a provider-agnostic interface for working with meeting bots. Supports multiple providers (BaaS, Vexa, Attendee) and can automatically route requests to the appropriate provider based on meeting URL or explicit provider selection.
Example
const client = new UnifiedMeetingClient({
baas: { api_key: 'baas-key' },
vexa: { api_key: 'vexa-key' }
})
// Use unified interface
const result = await client.createBot({
meeting_url: 'https://meet.google.com/abc-def',
bot_name: 'My Bot'
})
// Or access provider-specific features
const baas = client.getBaasAdapter()
await baas.batchCreateBots({ bots: [...] })Constructors
Constructor
new UnifiedMeetingClient(
config):UnifiedMeetingClient
Parameters
| Parameter | Type |
|---|---|
config | UnifiedClientConfig |
Returns
Methods
createBot()
createBot(
params):Promise<UnifiedResponse<BotInfo>>
Create a bot to join a meeting
Parameters
| Parameter | Type | Description |
|---|---|---|
params | CreateBotParams | Bot creation parameters |
Returns
Promise<UnifiedResponse<BotInfo>>
Unified response with bot information
Example
const result = await client.createBot({
meeting_url: 'https://meet.google.com/abc-def',
bot_name: 'My Bot',
provider: 'baas' // Optional: explicit provider selection
})
if (result.success) {
console.log('Bot created:', result.data.id)
}getBot()
getBot(
identifier):Promise<UnifiedResponse<BotInfo>>
Get bot details
Parameters
| Parameter | Type | Description |
|---|---|---|
identifier | BotIdentifier | Bot identifier (format varies by provider) |
Returns
Promise<UnifiedResponse<BotInfo>>
Unified response with bot information
leaveBot()
leaveBot(
identifier):Promise<UnifiedResponse<BotInfo>>
Have the bot leave the meeting
Parameters
| Parameter | Type | Description |
|---|---|---|
identifier | BotIdentifier | Bot identifier |
Returns
Promise<UnifiedResponse<BotInfo>>
Unified response with updated bot information
deleteBot()
deleteBot(
identifier):Promise<UnifiedResponse<void>>
Delete bot data (recordings, transcripts, etc.)
Parameters
| Parameter | Type | Description |
|---|---|---|
identifier | BotIdentifier | Bot identifier |
Returns
Promise<UnifiedResponse<void>>
Unified response indicating success
listBots()
listBots(
params?,provider?):Promise<UnifiedResponse<BotInfo[]>>
List bots for the authenticated account
Parameters
| Parameter | Type | Description |
|---|---|---|
params? | ListBotsParams | Optional filtering parameters |
provider? | "baas" | "vexa" | "attendee" | Optional provider to query (defaults to default provider) |
Returns
Promise<UnifiedResponse<BotInfo[]>>
Unified response with list of bots
getTranscript()
getTranscript(
identifier):Promise<UnifiedResponse<Transcript>>
Get transcript for a bot
Parameters
| Parameter | Type | Description |
|---|---|---|
identifier | BotIdentifier | Bot identifier |
Returns
Promise<UnifiedResponse<Transcript>>
Unified response with transcript data
getRecording()
getRecording(
identifier):Promise<UnifiedResponse<Recording>>
Get recording URL for a bot
Parameters
| Parameter | Type | Description |
|---|---|---|
identifier | BotIdentifier | Bot identifier |
Returns
Promise<UnifiedResponse<Recording>>
Unified response with recording information
createCalendar()
createCalendar(
params,provider?):Promise<UnifiedResponse<Calendar>>
Create a calendar connection
Note: Only supported by BaaS and Attendee providers
Parameters
| Parameter | Type | Description |
|---|---|---|
params | CreateCalendarParams | Calendar connection parameters |
provider? | "baas" | "vexa" | "attendee" | Optional provider to use (defaults to default provider) |
Returns
Promise<UnifiedResponse<Calendar>>
Unified response with calendar information
Throws
Error if provider doesn't support calendar integration
listCalendars()
listCalendars(
provider?):Promise<UnifiedResponse<Calendar[]>>
List calendar connections
Note: Only supported by BaaS and Attendee providers
Parameters
| Parameter | Type | Description |
|---|---|---|
provider? | "baas" | "vexa" | "attendee" | Optional provider to query (defaults to default provider) |
Returns
Promise<UnifiedResponse<Calendar[]>>
Unified response with list of calendars
Throws
Error if provider doesn't support calendar integration
getCalendar()
getCalendar(
calendar_id,provider?):Promise<UnifiedResponse<Calendar>>
Get calendar connection details
Parameters
| Parameter | Type | Description |
|---|---|---|
calendar_id | string | Calendar identifier |
provider? | "baas" | "vexa" | "attendee" | Optional provider to query (defaults to default provider) |
Returns
Promise<UnifiedResponse<Calendar>>
Unified response with calendar information
deleteCalendar()
deleteCalendar(
calendar_id,provider?):Promise<UnifiedResponse<void>>
Delete a calendar connection
Parameters
| Parameter | Type | Description |
|---|---|---|
calendar_id | string | Calendar identifier |
provider? | "baas" | "vexa" | "attendee" | Optional provider to use (defaults to default provider) |
Returns
Promise<UnifiedResponse<void>>
Unified response indicating success
Throws
Error if provider doesn't support calendar integration
getProviderCapabilities()
getProviderCapabilities(
provider):ProviderCapabilities|undefined
Get capabilities for a specific provider
Parameters
| Parameter | Type | Description |
|---|---|---|
provider | "baas" | "vexa" | "attendee" | Provider name |
Returns
ProviderCapabilities | undefined
Provider capabilities or undefined if not configured
Example
const caps = client.getProviderCapabilities('attendee')
if (caps?.supportsRealTimeChat) {
// Use Attendee-specific chat features
}findProviderWithCapability()
findProviderWithCapability(
feature): ("baas"|"vexa"|"attendee")[]
Find providers that support a specific capability
Parameters
| Parameter | Type | Description |
|---|---|---|
feature | keyof ProviderCapabilities | Feature to search for |
Returns
("baas" | "vexa" | "attendee")[]
Array of provider names that support the feature
Example
const providers = client.findProviderWithCapability('supportsVoiceAgents')
console.log('Voice agents supported by:', providers) // ['attendee']isProviderAvailable()
isProviderAvailable(
provider):boolean
Check if a provider is configured
Parameters
| Parameter | Type | Description |
|---|---|---|
provider | "baas" | "vexa" | "attendee" | Provider name |
Returns
boolean
True if provider is configured
getBaasAdapter()
getBaasAdapter():
BaasAdapter|undefined
Get direct access to Meeting BaaS v2 adapter
Use this to access BaaS-specific features not available in the unified interface (e.g., batch operations, scheduled bots).
Returns
BaasAdapter | undefined
BaaS adapter or undefined if not configured
Example
const baas = client.getBaasAdapter()
if (baas) {
await baas.batchCreateBots({ bots: [...] })
}getVexaAdapter()
getVexaAdapter():
VexaAdapter|undefined
Get direct access to Vexa adapter
Use this to access Vexa-specific features not available in the unified interface.
Returns
VexaAdapter | undefined
Vexa adapter or undefined if not configured
getAttendeeAdapter()
getAttendeeAdapter():
any
Get direct access to Attendee adapter
Use this to access Attendee-specific features not available in the unified interface (e.g., real-time chat, voice agents, recording pause).
Returns
any
Attendee adapter or undefined if not configured
Example
const attendee = client.getAttendeeAdapter()
if (attendee) {
await attendee.sendChatMessage({
bot_id: 'bot_123',
message: 'Hello from the bot!'
})
}ErrorTransformer
Error transformer for normalizing provider-specific errors
Constructors
Constructor
new ErrorTransformer():
ErrorTransformer
Returns
Methods
fromBaas()
staticfromBaas(error):UnifiedErrorResponse
Transform BaaS v2 error to unified format
BaaS v2 already returns structured errors with:
- success: false
- error: string
- code: string
- statusCode: number
- details: unknown
Parameters
| Parameter | Type |
|---|---|
error | ApiResponseV2<any> |
Returns
fromAttendee()
staticfromAttendee(axiosError):UnifiedErrorResponse
Transform Attendee error to unified format
Attendee uses standard REST error responses:
- 200/201: Success
- 400: Invalid input
- 404: Not found
- 401/403: Unauthorized
- 409: Conflict
Parameters
| Parameter | Type |
|---|---|
axiosError | any |
Returns
fromVexa()
staticfromVexa(error):UnifiedErrorResponse
Transform Vexa error to unified format
Vexa uses FastAPI which returns validation errors in this format:
{
"detail": [
{ "loc": ["body", "field"], "msg": "error message", "type": "value_error" }
]
}Parameters
| Parameter | Type |
|---|---|
error | any |
Returns
generic()
staticgeneric(error,code,provider):UnifiedErrorResponse
Create a generic error response
Parameters
| Parameter | Type |
|---|---|
error | string |
code | string |
provider | "baas" | "vexa" | "attendee" |
Returns
featureNotSupported()
staticfeatureNotSupported(feature,provider):UnifiedErrorResponse
Create an error for unsupported features
Parameters
| Parameter | Type |
|---|---|
feature | string |
provider | "baas" | "vexa" | "attendee" |
Returns
providerNotConfigured()
staticproviderNotConfigured(provider):UnifiedErrorResponse
Create an error for unconfigured providers
Parameters
| Parameter | Type |
|---|---|
provider | string |
Returns
Enumerations
UnifiedErrorCode
Unified error codes across all providers
These codes provide a consistent way to handle errors regardless of the underlying provider implementation.
Enumeration Members
Interfaces
MeetingProvider
Base interface that all provider adapters must implement
This ensures that all providers support the core operations exposed through the UnifiedMeetingClient bridge interface.
Methods
createBot()
createBot(
params):Promise<UnifiedResponse<BotInfo>>
Create a bot to join a meeting
Parameters
| Parameter | Type | Description |
|---|---|---|
params | CreateBotParams | Bot creation parameters |
Returns
Promise<UnifiedResponse<BotInfo>>
Unified response with bot information
getBot()
getBot(
identifier):Promise<UnifiedResponse<BotInfo>>
Get bot details
Parameters
| Parameter | Type | Description |
|---|---|---|
identifier | BotIdentifier | Bot identifier |
Returns
Promise<UnifiedResponse<BotInfo>>
Unified response with bot information
leaveBot()
leaveBot(
identifier):Promise<UnifiedResponse<BotInfo>>
Have the bot leave the meeting
Parameters
| Parameter | Type | Description |
|---|---|---|
identifier | BotIdentifier | Bot identifier |
Returns
Promise<UnifiedResponse<BotInfo>>
Unified response with updated bot information
deleteBot()
deleteBot(
identifier):Promise<UnifiedResponse<void>>
Delete bot data (recordings, transcripts, etc.)
Parameters
| Parameter | Type | Description |
|---|---|---|
identifier | BotIdentifier | Bot identifier |
Returns
Promise<UnifiedResponse<void>>
Unified response indicating success
listBots()
listBots(
params?):Promise<UnifiedResponse<BotInfo[]>>
List bots for the authenticated account
Parameters
| Parameter | Type | Description |
|---|---|---|
params? | ListBotsParams | Optional filtering parameters |
Returns
Promise<UnifiedResponse<BotInfo[]>>
Unified response with list of bots
getTranscript()
getTranscript(
identifier):Promise<UnifiedResponse<Transcript>>
Get transcript for a bot
Parameters
| Parameter | Type | Description |
|---|---|---|
identifier | BotIdentifier | Bot identifier |
Returns
Promise<UnifiedResponse<Transcript>>
Unified response with transcript data
getRecording()
getRecording(
identifier):Promise<UnifiedResponse<Recording>>
Get recording URL for a bot
Parameters
| Parameter | Type | Description |
|---|---|---|
identifier | BotIdentifier | Bot identifier |
Returns
Promise<UnifiedResponse<Recording>>
Unified response with recording information
createCalendar()?
optionalcreateCalendar(params):Promise<UnifiedResponse<Calendar>>
Create a calendar connection
Note: Only supported by providers with supportsCalendarIntegration = true
Parameters
| Parameter | Type | Description |
|---|---|---|
params | CreateCalendarParams | Calendar connection parameters |
Returns
Promise<UnifiedResponse<Calendar>>
Unified response with calendar information
Throws
Error if provider doesn't support calendar integration
listCalendars()?
optionallistCalendars():Promise<UnifiedResponse<Calendar[]>>
List calendar connections
Note: Only supported by providers with supportsCalendarIntegration = true
Returns
Promise<UnifiedResponse<Calendar[]>>
Unified response with list of calendars
Throws
Error if provider doesn't support calendar integration
getCalendar()?
optionalgetCalendar(calendar_id):Promise<UnifiedResponse<Calendar>>
Get a specific calendar
Note: Only supported by providers with supportsCalendarIntegration = true
Parameters
| Parameter | Type | Description |
|---|---|---|
calendar_id | string | Calendar identifier |
Returns
Promise<UnifiedResponse<Calendar>>
Unified response with calendar information
Throws
Error if provider doesn't support calendar integration
deleteCalendar()?
optionaldeleteCalendar(calendar_id):Promise<UnifiedResponse<void>>
Delete a calendar connection
Note: Only supported by providers with supportsCalendarIntegration = true
Parameters
| Parameter | Type | Description |
|---|---|---|
calendar_id | string | Calendar identifier |
Returns
Promise<UnifiedResponse<void>>
Unified response indicating success
Throws
Error if provider doesn't support calendar integration
Properties
providerId
readonlyproviderId:"baas"|"vexa"|"attendee"
Provider identifier
capabilities
readonlycapabilities:ProviderCapabilities
Provider capabilities for feature detection
This allows runtime checking of which features are available.
UnifiedSuccessResponse
Successful response from a provider
Type Parameters
| Type Parameter |
|---|
T |
Properties
success
success:
true
data
data:
T
provider
provider:
"baas"|"vexa"|"attendee"
metadata?
optionalmetadata:object
Index Signature
[key: string]: any
Provider-specific metadata
duration_ms?
optionalduration_ms:number
Time taken for the request in milliseconds
UnifiedErrorResponse
Error response from a provider
Properties
success
success:
false
error
error:
string
code
code:
string
statusCode
statusCode:
number
details?
optionaldetails:unknown
provider
provider:
"baas"|"vexa"|"attendee"
BatchUnifiedResponse
Batch response for operations that can partially succeed (e.g., batch create bots where some succeed and some fail)
Type Parameters
| Type Parameter | Default type |
|---|---|
TSuccess | - |
TError | unknown |
Properties
success
success:
true
data
data:
TSuccess[]
errors
errors:
TError[]
provider
provider:
"baas"|"vexa"|"attendee"
CreateBotParams
Parameters for creating a bot
Properties
meeting_url
meeting_url:
string
Meeting URL to join
bot_name
bot_name:
string
Name of the bot
provider?
optionalprovider:"baas"|"vexa"|"attendee"
Optional: Explicitly specify which provider to use
bot_image?
optionalbot_image:string
Optional: Bot image URL or base64 encoded image
metadata?
optionalmetadata:Record<string,any>
Optional: Metadata to attach to the bot
webhook_url?
optionalwebhook_url:string
Optional: Webhook URL for notifications
join_at?
optionaljoin_at:string
Optional: When the bot should join (ISO 8601 format)
recording_mode?
optionalrecording_mode:"speaker_view"|"gallery_view"|"audio_only"
Optional: Recording settings
transcription?
optionaltranscription:object
Optional: Transcription settings
Index Signature
[key: string]: any
provider?
optionalprovider:string
language?
optionallanguage:string
deduplication_key?
optionaldeduplication_key:string
Optional: Deduplication key
provider_settings?
optionalprovider_settings:Record<string,any>
Optional: Provider-specific settings
ListBotsParams
Parameters for listing bots
Properties
meeting_url?
optionalmeeting_url:string
Filter by meeting URL
states?
optionalstates:BotState[]
Filter by bot state
deduplication_key?
optionaldeduplication_key:string
Filter by deduplication key
cursor?
optionalcursor:string
Pagination cursor
limit?
optionallimit:number
Number of results to return
provider_filters?
optionalprovider_filters:Record<string,any>
Provider-specific filters
BotInfo
Unified bot information across providers
Properties
id
id:
string| {platform:string;native_meeting_id:string; }
Bot identifier (format depends on provider)
meeting_url
meeting_url:
string
Meeting URL
bot_name?
optionalbot_name:string
Bot name
state
state:
BotState
Current bot state
created_at
created_at:
string
When the bot was created
updated_at?
optionalupdated_at:string
When the bot last updated
joined_at?
optionaljoined_at:string
When the bot joined the meeting
left_at?
optionalleft_at:string
When the bot left the meeting
metadata?
optionalmetadata:Record<string,any>
Metadata attached to the bot
provider_data?
optionalprovider_data:Record<string,any>
Provider-specific data
Transcript
Transcript structure (unified across providers)
Properties
utterances
utterances:
TranscriptUtterance[]
Array of transcript utterances
duration_ms?
optionalduration_ms:number
Total duration of the transcript in milliseconds
language?
optionallanguage:string
Language of the transcript
provider_data?
optionalprovider_data:Record<string,any>
Provider-specific transcript data
TranscriptUtterance
A single utterance in a transcript
Properties
speaker
speaker:
string
Speaker name
text
text:
string
Transcript text
start_time_ms
start_time_ms:
number
Start time in milliseconds
end_time_ms
end_time_ms:
number
End time in milliseconds
speaker_id?
optionalspeaker_id:string
Speaker identifier
confidence?
optionalconfidence:number
Confidence score (0-1)
Recording
Recording information
Properties
url
url:
string
Recording URL (short-lived or permanent depending on provider)
format?
optionalformat:string
Recording format (mp4, mp3, etc.)
duration_ms?
optionalduration_ms:number
Recording duration in milliseconds
start_timestamp_ms?
optionalstart_timestamp_ms:number
Recording start timestamp
size_bytes?
optionalsize_bytes:number
File size in bytes
Calendar
Calendar connection structure (BaaS and Attendee)
Properties
id
id:
string
Calendar identifier
platform
platform:
"google"|"microsoft"
Calendar platform (google, microsoft)
state
state:
"connected"|"disconnected"
Connection state
metadata?
optionalmetadata:Record<string,any>
Calendar metadata
deduplication_key?
optionaldeduplication_key:string
Deduplication key
created_at
created_at:
string
Created timestamp
updated_at
updated_at:
string
Updated timestamp
last_successful_sync_at?
optionallast_successful_sync_at:string
Last successful sync timestamp
last_attempted_sync_at?
optionallast_attempted_sync_at:string
Last attempted sync timestamp
CreateCalendarParams
Parameters for creating a calendar connection
Properties
client_id
client_id:
string
OAuth client ID
client_secret
client_secret:
string
OAuth client secret
refresh_token
refresh_token:
string
OAuth refresh token
platform
platform:
"google"|"microsoft"
Calendar platform
platform_uuid?
optionalplatform_uuid:string
Optional: Platform-specific calendar UUID (for non-primary calendars)
metadata?
optionalmetadata:Record<string,any>
Optional metadata
deduplication_key?
optionaldeduplication_key:string
Optional deduplication key
ProviderConfig
Configuration for a single provider
Properties
api_key
api_key:
string
API key for authentication
base_url?
optionalbase_url:string
Optional: Base URL for the API
timeout?
optionaltimeout:number
Optional: Request timeout in milliseconds
UnifiedClientConfig
Unified configuration for multi-provider SDK
Properties
baas?
optionalbaas:ProviderConfig
Meeting BaaS v2 configuration
vexa?
optionalvexa:ProviderConfig
Vexa configuration
attendee?
optionalattendee:ProviderConfig
Attendee configuration
defaultProvider?
optionaldefaultProvider:"baas"|"vexa"|"attendee"
Default provider to use when not explicitly specified
Default
"baas"ProviderCapabilities
Provider capabilities for feature detection
This allows runtime checking of which features are available for each provider.
Properties
supportsScheduling
supportsScheduling:
boolean
Can schedule bots to join at a future time
supportsCalendarIntegration
supportsCalendarIntegration:
boolean
Can integrate with calendar platforms (Google, Microsoft)
supportsBatchOperations
supportsBatchOperations:
boolean
Can create multiple bots in a single batch operation
supportsRealTimeChat
supportsRealTimeChat:
boolean
Can send chat messages from the bot
supportsVoiceOutput
supportsVoiceOutput:
boolean
Can output voice/speech from the bot
supportsVideoOutput
supportsVideoOutput:
boolean
Can output video from the bot
supportsRecordingPause
supportsRecordingPause:
boolean
Can pause and resume recording
supportsRTMPStreaming
supportsRTMPStreaming:
boolean
Can stream to RTMP destinations
supportsWebsocketAudio
supportsWebsocketAudio:
boolean
Can stream audio via WebSocket
supportsVoiceAgents
supportsVoiceAgents:
boolean
Can load voice agent websites
supportsParticipantTracking
supportsParticipantTracking:
boolean
Can track participant join/leave events
supportedTranscriptionProviders
supportedTranscriptionProviders:
string[]
List of supported transcription providers
supportsCustomTranscriptionSettings
supportsCustomTranscriptionSettings:
boolean
Can customize transcription settings (language, model, etc.)
supportsWebhooks
supportsWebhooks:
boolean
Can receive webhook notifications
supportedWebhookTriggers
supportedWebhookTriggers:
string[]
List of supported webhook trigger types
Namespaces
Type Aliases
UnifiedResponse
UnifiedResponse<
T> =UnifiedSuccessResponse<T> |UnifiedErrorResponse
Unified response format across all providers
This discriminated union provides consistent response handling regardless of the underlying provider.
Type Parameters
| Type Parameter |
|---|
T |
BotIdentifier
BotIdentifier = {
provider:"baas"|"attendee";bot_id:string; } | {provider:"vexa";platform:string;native_meeting_id:string; }
Bot identifier that handles different provider formats
- BaaS and Attendee use a simple bot_id string
- Vexa uses a composite identifier (platform + native_meeting_id)
BotState
BotState =
"scheduled"|"ready"|"joining"|"waiting_room"|"in_meeting"|"recording"|"recording_paused"|"leaving"|"ended"|"failed"|"data_deleted"
Unified bot states across providers
These states are normalized across different provider state models:
- BaaS: ready, joining, joined_recording, leaving, ended, etc.
- Vexa: pending, running, completed, failed
- Attendee: ready, joining, joined_recording, leaving, ended, etc.