MeetingRouter

@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
ParameterType
configProviderConfig
Returns

BaasAdapter

Methods

createBot()

createBot(params): Promise<UnifiedResponse<BotInfo>>

Create a bot to join a meeting

Parameters
ParameterTypeDescription
paramsCreateBotParamsBot creation parameters
Returns

Promise<UnifiedResponse<BotInfo>>

Unified response with bot information

Implementation of

MeetingProvider.createBot

getBot()

getBot(identifier): Promise<UnifiedResponse<BotInfo>>

Get bot details

Parameters
ParameterTypeDescription
identifierBotIdentifierBot identifier
Returns

Promise<UnifiedResponse<BotInfo>>

Unified response with bot information

Implementation of

MeetingProvider.getBot

leaveBot()

leaveBot(identifier): Promise<UnifiedResponse<BotInfo>>

Have the bot leave the meeting

Parameters
ParameterTypeDescription
identifierBotIdentifierBot identifier
Returns

Promise<UnifiedResponse<BotInfo>>

Unified response with updated bot information

Implementation of

MeetingProvider.leaveBot

deleteBot()

deleteBot(identifier): Promise<UnifiedResponse<void>>

Delete bot data (recordings, transcripts, etc.)

Parameters
ParameterTypeDescription
identifierBotIdentifierBot identifier
Returns

Promise<UnifiedResponse<void>>

Unified response indicating success

Implementation of

MeetingProvider.deleteBot

listBots()

listBots(params?): Promise<UnifiedResponse<BotInfo[]>>

List bots for the authenticated account

Parameters
ParameterTypeDescription
params?ListBotsParamsOptional filtering parameters
Returns

Promise<UnifiedResponse<BotInfo[]>>

Unified response with list of bots

Implementation of

MeetingProvider.listBots

getTranscript()

getTranscript(identifier): Promise<UnifiedResponse<Transcript>>

Get transcript for a bot

Parameters
ParameterTypeDescription
identifierBotIdentifierBot identifier
Returns

Promise<UnifiedResponse<Transcript>>

Unified response with transcript data

Implementation of

MeetingProvider.getTranscript

getRecording()

getRecording(identifier): Promise<UnifiedResponse<Recording>>

Get recording URL for a bot

Parameters
ParameterTypeDescription
identifierBotIdentifierBot identifier
Returns

Promise<UnifiedResponse<Recording>>

Unified response with recording information

Implementation of

MeetingProvider.getRecording

createCalendar()

createCalendar(params): Promise<UnifiedResponse<Calendar>>

Create a calendar connection

Note: Only supported by providers with supportsCalendarIntegration = true

Parameters
ParameterTypeDescription
paramsCreateCalendarParamsCalendar 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

MeetingProvider.listCalendars

getCalendar()

getCalendar(calendar_id): Promise<UnifiedResponse<Calendar>>

Get a specific calendar

Note: Only supported by providers with supportsCalendarIntegration = true

Parameters
ParameterTypeDescription
calendar_idstringCalendar identifier
Returns

Promise<UnifiedResponse<Calendar>>

Unified response with calendar information

Throws

Error if provider doesn't support calendar integration

Implementation of

MeetingProvider.getCalendar

deleteCalendar()

deleteCalendar(calendar_id): Promise<UnifiedResponse<void>>

Delete a calendar connection

Note: Only supported by providers with supportsCalendarIntegration = true

Parameters
ParameterTypeDescription
calendar_idstringCalendar identifier
Returns

Promise<UnifiedResponse<void>>

Unified response indicating success

Throws

Error if provider doesn't support calendar integration

Implementation of

MeetingProvider.deleteCalendar

Properties

providerId

readonly providerId: "baas"

Provider identifier

Implementation of

MeetingProvider.providerId

capabilities

readonly capabilities: ProviderCapabilities

Provider capabilities for feature detection

This allows runtime checking of which features are available.

Implementation of

MeetingProvider.capabilities

VexaAdapter

Vexa Provider Adapter

Provides access to Vexa API with unified interface

Implements

Constructors

Constructor

new VexaAdapter(config): VexaAdapter

Parameters
ParameterType
configProviderConfig
Returns

VexaAdapter

Methods

createBot()

createBot(params): Promise<UnifiedResponse<BotInfo>>

Create a bot to join a meeting

Parameters
ParameterTypeDescription
paramsCreateBotParamsBot creation parameters
Returns

Promise<UnifiedResponse<BotInfo>>

Unified response with bot information

Implementation of

MeetingProvider.createBot

getBot()

getBot(identifier): Promise<UnifiedResponse<BotInfo>>

Get bot details

Parameters
ParameterTypeDescription
identifierBotIdentifierBot identifier
Returns

Promise<UnifiedResponse<BotInfo>>

Unified response with bot information

Implementation of

MeetingProvider.getBot

leaveBot()

leaveBot(identifier): Promise<UnifiedResponse<BotInfo>>

Have the bot leave the meeting

Parameters
ParameterTypeDescription
identifierBotIdentifierBot identifier
Returns

Promise<UnifiedResponse<BotInfo>>

Unified response with updated bot information

Implementation of

MeetingProvider.leaveBot

deleteBot()

deleteBot(identifier): Promise<UnifiedResponse<void>>

Delete bot data (recordings, transcripts, etc.)

Parameters
ParameterTypeDescription
identifierBotIdentifierBot identifier
Returns

Promise<UnifiedResponse<void>>

Unified response indicating success

Implementation of

MeetingProvider.deleteBot

listBots()

listBots(params?): Promise<UnifiedResponse<BotInfo[]>>

List bots for the authenticated account

Parameters
ParameterTypeDescription
params?ListBotsParamsOptional filtering parameters
Returns

Promise<UnifiedResponse<BotInfo[]>>

Unified response with list of bots

Implementation of

MeetingProvider.listBots

getTranscript()

getTranscript(identifier): Promise<UnifiedResponse<Transcript>>

Get transcript for a bot

Parameters
ParameterTypeDescription
identifierBotIdentifierBot identifier
Returns

Promise<UnifiedResponse<Transcript>>

Unified response with transcript data

Implementation of

MeetingProvider.getTranscript

getRecording()

getRecording(identifier): Promise<UnifiedResponse<Recording>>

Get recording URL for a bot

Parameters
ParameterTypeDescription
identifierBotIdentifierBot identifier
Returns

Promise<UnifiedResponse<Recording>>

Unified response with recording information

Implementation of

MeetingProvider.getRecording

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

MeetingProvider.listCalendars

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

MeetingProvider.getCalendar

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
ParameterType
params{ platform: string; native_meeting_id: string; config: { language?: string; task?: string; }; }
params.platformstring
params.native_meeting_idstring
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
ParameterType
params{ platform: string; native_meeting_id: string; data: { name?: string; participants?: ...[]; languages?: ...[]; notes?: string; }; }
params.platformstring
params.native_meeting_idstring
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

readonly providerId: "vexa"

Provider identifier

Implementation of

MeetingProvider.providerId

capabilities

readonly capabilities: ProviderCapabilities

Provider capabilities for feature detection

This allows runtime checking of which features are available.

Implementation of

MeetingProvider.capabilities

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
ParameterType
configUnifiedClientConfig
Returns

UnifiedMeetingClient

Methods

createBot()

createBot(params): Promise<UnifiedResponse<BotInfo>>

Create a bot to join a meeting

Parameters
ParameterTypeDescription
paramsCreateBotParamsBot 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
ParameterTypeDescription
identifierBotIdentifierBot 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
ParameterTypeDescription
identifierBotIdentifierBot identifier
Returns

Promise<UnifiedResponse<BotInfo>>

Unified response with updated bot information

deleteBot()

deleteBot(identifier): Promise<UnifiedResponse<void>>

Delete bot data (recordings, transcripts, etc.)

Parameters
ParameterTypeDescription
identifierBotIdentifierBot identifier
Returns

Promise<UnifiedResponse<void>>

Unified response indicating success

listBots()

listBots(params?, provider?): Promise<UnifiedResponse<BotInfo[]>>

List bots for the authenticated account

Parameters
ParameterTypeDescription
params?ListBotsParamsOptional 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
ParameterTypeDescription
identifierBotIdentifierBot identifier
Returns

Promise<UnifiedResponse<Transcript>>

Unified response with transcript data

getRecording()

getRecording(identifier): Promise<UnifiedResponse<Recording>>

Get recording URL for a bot

Parameters
ParameterTypeDescription
identifierBotIdentifierBot 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
ParameterTypeDescription
paramsCreateCalendarParamsCalendar 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
ParameterTypeDescription
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
ParameterTypeDescription
calendar_idstringCalendar 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
ParameterTypeDescription
calendar_idstringCalendar 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
ParameterTypeDescription
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
ParameterTypeDescription
featurekeyof ProviderCapabilitiesFeature 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
ParameterTypeDescription
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

ErrorTransformer

Methods

fromBaas()

static fromBaas(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
ParameterType
errorApiResponseV2<any>
Returns

UnifiedErrorResponse

fromAttendee()

static fromAttendee(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
ParameterType
axiosErrorany
Returns

UnifiedErrorResponse

fromVexa()

static fromVexa(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
ParameterType
errorany
Returns

UnifiedErrorResponse

generic()

static generic(error, code, provider): UnifiedErrorResponse

Create a generic error response

Parameters
ParameterType
errorstring
codestring
provider"baas" | "vexa" | "attendee"
Returns

UnifiedErrorResponse

featureNotSupported()

static featureNotSupported(feature, provider): UnifiedErrorResponse

Create an error for unsupported features

Parameters
ParameterType
featurestring
provider"baas" | "vexa" | "attendee"
Returns

UnifiedErrorResponse

providerNotConfigured()

static providerNotConfigured(provider): UnifiedErrorResponse

Create an error for unconfigured providers

Parameters
ParameterType
providerstring
Returns

UnifiedErrorResponse

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

Enumeration MemberValueDescription
INVALID_INPUT"INVALID_INPUT"Invalid input parameters
NOT_FOUND"NOT_FOUND"Resource not found
UNAUTHORIZED"UNAUTHORIZED"Authentication failed or invalid API key
RATE_LIMITED"RATE_LIMITED"Rate limit exceeded
CONFLICT"CONFLICT"Resource conflict (e.g., deduplication key already exists)
INVALID_STATE"INVALID_STATE"Operation not allowed in current state
PROVIDER_ERROR"PROVIDER_ERROR"Provider API error
NETWORK_ERROR"NETWORK_ERROR"Network error (timeout, connection refused, etc.)
TIMEOUT"TIMEOUT"Request timeout
BOT_ALREADY_LEFT"BOT_ALREADY_LEFT"Bot has already left the meeting
BOT_NOT_IN_MEETING"BOT_NOT_IN_MEETING"Bot is not in the meeting
MEETING_NOT_FOUND"MEETING_NOT_FOUND"Meeting not found or invalid
INVALID_MEETING_URL"INVALID_MEETING_URL"Invalid meeting URL format
FEATURE_NOT_SUPPORTED"FEATURE_NOT_SUPPORTED"Provider doesn't support this feature
PROVIDER_NOT_CONFIGURED"PROVIDER_NOT_CONFIGURED"Provider not configured in client
UNKNOWN_ERROR"UNKNOWN_ERROR"Unknown error

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
ParameterTypeDescription
paramsCreateBotParamsBot creation parameters
Returns

Promise<UnifiedResponse<BotInfo>>

Unified response with bot information

getBot()

getBot(identifier): Promise<UnifiedResponse<BotInfo>>

Get bot details

Parameters
ParameterTypeDescription
identifierBotIdentifierBot identifier
Returns

Promise<UnifiedResponse<BotInfo>>

Unified response with bot information

leaveBot()

leaveBot(identifier): Promise<UnifiedResponse<BotInfo>>

Have the bot leave the meeting

Parameters
ParameterTypeDescription
identifierBotIdentifierBot identifier
Returns

Promise<UnifiedResponse<BotInfo>>

Unified response with updated bot information

deleteBot()

deleteBot(identifier): Promise<UnifiedResponse<void>>

Delete bot data (recordings, transcripts, etc.)

Parameters
ParameterTypeDescription
identifierBotIdentifierBot identifier
Returns

Promise<UnifiedResponse<void>>

Unified response indicating success

listBots()

listBots(params?): Promise<UnifiedResponse<BotInfo[]>>

List bots for the authenticated account

Parameters
ParameterTypeDescription
params?ListBotsParamsOptional filtering parameters
Returns

Promise<UnifiedResponse<BotInfo[]>>

Unified response with list of bots

getTranscript()

getTranscript(identifier): Promise<UnifiedResponse<Transcript>>

Get transcript for a bot

Parameters
ParameterTypeDescription
identifierBotIdentifierBot identifier
Returns

Promise<UnifiedResponse<Transcript>>

Unified response with transcript data

getRecording()

getRecording(identifier): Promise<UnifiedResponse<Recording>>

Get recording URL for a bot

Parameters
ParameterTypeDescription
identifierBotIdentifierBot identifier
Returns

Promise<UnifiedResponse<Recording>>

Unified response with recording information

createCalendar()?

optional createCalendar(params): Promise<UnifiedResponse<Calendar>>

Create a calendar connection

Note: Only supported by providers with supportsCalendarIntegration = true

Parameters
ParameterTypeDescription
paramsCreateCalendarParamsCalendar connection parameters
Returns

Promise<UnifiedResponse<Calendar>>

Unified response with calendar information

Throws

Error if provider doesn't support calendar integration

listCalendars()?

optional 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

getCalendar()?

optional getCalendar(calendar_id): Promise<UnifiedResponse<Calendar>>

Get a specific calendar

Note: Only supported by providers with supportsCalendarIntegration = true

Parameters
ParameterTypeDescription
calendar_idstringCalendar identifier
Returns

Promise<UnifiedResponse<Calendar>>

Unified response with calendar information

Throws

Error if provider doesn't support calendar integration

deleteCalendar()?

optional deleteCalendar(calendar_id): Promise<UnifiedResponse<void>>

Delete a calendar connection

Note: Only supported by providers with supportsCalendarIntegration = true

Parameters
ParameterTypeDescription
calendar_idstringCalendar identifier
Returns

Promise<UnifiedResponse<void>>

Unified response indicating success

Throws

Error if provider doesn't support calendar integration

Properties

providerId

readonly providerId: "baas" | "vexa" | "attendee"

Provider identifier

capabilities

readonly capabilities: 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?

optional metadata: object

Index Signature

[key: string]: any

Provider-specific metadata

duration_ms?

optional duration_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?

optional details: 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 ParameterDefault type
TSuccess-
TErrorunknown

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?

optional provider: "baas" | "vexa" | "attendee"

Optional: Explicitly specify which provider to use

bot_image?

optional bot_image: string

Optional: Bot image URL or base64 encoded image

metadata?

optional metadata: Record<string, any>

Optional: Metadata to attach to the bot

webhook_url?

optional webhook_url: string

Optional: Webhook URL for notifications

join_at?

optional join_at: string

Optional: When the bot should join (ISO 8601 format)

recording_mode?

optional recording_mode: "speaker_view" | "gallery_view" | "audio_only"

Optional: Recording settings

transcription?

optional transcription: object

Optional: Transcription settings

Index Signature

[key: string]: any

provider?

optional provider: string

language?

optional language: string

deduplication_key?

optional deduplication_key: string

Optional: Deduplication key

provider_settings?

optional provider_settings: Record<string, any>

Optional: Provider-specific settings

ListBotsParams

Parameters for listing bots

Properties

meeting_url?

optional meeting_url: string

Filter by meeting URL

states?

optional states: BotState[]

Filter by bot state

deduplication_key?

optional deduplication_key: string

Filter by deduplication key

cursor?

optional cursor: string

Pagination cursor

limit?

optional limit: number

Number of results to return

provider_filters?

optional provider_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?

optional bot_name: string

Bot name

state

state: BotState

Current bot state

created_at

created_at: string

When the bot was created

updated_at?

optional updated_at: string

When the bot last updated

joined_at?

optional joined_at: string

When the bot joined the meeting

left_at?

optional left_at: string

When the bot left the meeting

metadata?

optional metadata: Record<string, any>

Metadata attached to the bot

provider_data?

optional provider_data: Record<string, any>

Provider-specific data

Transcript

Transcript structure (unified across providers)

Properties

utterances

utterances: TranscriptUtterance[]

Array of transcript utterances

duration_ms?

optional duration_ms: number

Total duration of the transcript in milliseconds

language?

optional language: string

Language of the transcript

provider_data?

optional provider_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?

optional speaker_id: string

Speaker identifier

confidence?

optional confidence: number

Confidence score (0-1)

Recording

Recording information

Properties

url

url: string

Recording URL (short-lived or permanent depending on provider)

format?

optional format: string

Recording format (mp4, mp3, etc.)

duration_ms?

optional duration_ms: number

Recording duration in milliseconds

start_timestamp_ms?

optional start_timestamp_ms: number

Recording start timestamp

size_bytes?

optional size_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?

optional metadata: Record<string, any>

Calendar metadata

deduplication_key?

optional deduplication_key: string

Deduplication key

created_at

created_at: string

Created timestamp

updated_at

updated_at: string

Updated timestamp

last_successful_sync_at?

optional last_successful_sync_at: string

Last successful sync timestamp

last_attempted_sync_at?

optional last_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?

optional platform_uuid: string

Optional: Platform-specific calendar UUID (for non-primary calendars)

metadata?

optional metadata: Record<string, any>

Optional metadata

deduplication_key?

optional deduplication_key: string

Optional deduplication key

ProviderConfig

Configuration for a single provider

Properties

api_key

api_key: string

API key for authentication

base_url?

optional base_url: string

Optional: Base URL for the API

timeout?

optional timeout: number

Optional: Request timeout in milliseconds

UnifiedClientConfig

Unified configuration for multi-provider SDK

Properties

baas?

optional baas: ProviderConfig

Meeting BaaS v2 configuration

vexa?

optional vexa: ProviderConfig

Vexa configuration

attendee?

optional attendee: ProviderConfig

Attendee configuration

defaultProvider?

optional defaultProvider: "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.

On this page

@meeting-baas/sdk v7.0.0 - Multi-Provider SDK v6.0.0ExamplesClassesBaasAdapterImplementsConstructorsConstructorParametersReturnsMethodscreateBot()ParametersReturnsImplementation ofgetBot()ParametersReturnsImplementation ofleaveBot()ParametersReturnsImplementation ofdeleteBot()ParametersReturnsImplementation oflistBots()ParametersReturnsImplementation ofgetTranscript()ParametersReturnsImplementation ofgetRecording()ParametersReturnsImplementation ofcreateCalendar()ParametersReturnsThrowsImplementation oflistCalendars()ReturnsThrowsImplementation ofgetCalendar()ParametersReturnsThrowsImplementation ofdeleteCalendar()ParametersReturnsThrowsImplementation ofPropertiesproviderIdImplementation ofcapabilitiesImplementation ofVexaAdapterImplementsConstructorsConstructorParametersReturnsMethodscreateBot()ParametersReturnsImplementation ofgetBot()ParametersReturnsImplementation ofleaveBot()ParametersReturnsImplementation ofdeleteBot()ParametersReturnsImplementation oflistBots()ParametersReturnsImplementation ofgetTranscript()ParametersReturnsImplementation ofgetRecording()ParametersReturnsImplementation ofcreateCalendar()ReturnsThrowsImplementation oflistCalendars()ReturnsThrowsImplementation ofgetCalendar()ReturnsThrowsImplementation ofdeleteCalendar()ReturnsThrowsImplementation ofupdateBotConfig()ParametersReturnsupdateMeetingData()ParametersReturnsPropertiesproviderIdImplementation ofcapabilitiesImplementation ofUnifiedMeetingClientExampleConstructorsConstructorParametersReturnsMethodscreateBot()ParametersReturnsExamplegetBot()ParametersReturnsleaveBot()ParametersReturnsdeleteBot()ParametersReturnslistBots()ParametersReturnsgetTranscript()ParametersReturnsgetRecording()ParametersReturnscreateCalendar()ParametersReturnsThrowslistCalendars()ParametersReturnsThrowsgetCalendar()ParametersReturnsdeleteCalendar()ParametersReturnsThrowsgetProviderCapabilities()ParametersReturnsExamplefindProviderWithCapability()ParametersReturnsExampleisProviderAvailable()ParametersReturnsgetBaasAdapter()ReturnsExamplegetVexaAdapter()ReturnsgetAttendeeAdapter()ReturnsExampleErrorTransformerConstructorsConstructorReturnsMethodsfromBaas()ParametersReturnsfromAttendee()ParametersReturnsfromVexa()ParametersReturnsgeneric()ParametersReturnsfeatureNotSupported()ParametersReturnsproviderNotConfigured()ParametersReturnsEnumerationsUnifiedErrorCodeEnumeration MembersInterfacesMeetingProviderMethodscreateBot()ParametersReturnsgetBot()ParametersReturnsleaveBot()ParametersReturnsdeleteBot()ParametersReturnslistBots()ParametersReturnsgetTranscript()ParametersReturnsgetRecording()ParametersReturnscreateCalendar()?ParametersReturnsThrowslistCalendars()?ReturnsThrowsgetCalendar()?ParametersReturnsThrowsdeleteCalendar()?ParametersReturnsThrowsPropertiesproviderIdcapabilitiesUnifiedSuccessResponseType ParametersPropertiessuccessdataprovidermetadata?Index Signatureduration_ms?UnifiedErrorResponsePropertiessuccesserrorcodestatusCodedetails?providerBatchUnifiedResponseType ParametersPropertiessuccessdataerrorsproviderCreateBotParamsPropertiesmeeting_urlbot_nameprovider?bot_image?metadata?webhook_url?join_at?recording_mode?transcription?Index Signatureprovider?language?deduplication_key?provider_settings?ListBotsParamsPropertiesmeeting_url?states?deduplication_key?cursor?limit?provider_filters?BotInfoPropertiesidmeeting_urlbot_name?statecreated_atupdated_at?joined_at?left_at?metadata?provider_data?TranscriptPropertiesutterancesduration_ms?language?provider_data?TranscriptUtterancePropertiesspeakertextstart_time_msend_time_msspeaker_id?confidence?RecordingPropertiesurlformat?duration_ms?start_timestamp_ms?size_bytes?CalendarPropertiesidplatformstatemetadata?deduplication_key?created_atupdated_atlast_successful_sync_at?last_attempted_sync_at?CreateCalendarParamsPropertiesclient_idclient_secretrefresh_tokenplatformplatform_uuid?metadata?deduplication_key?ProviderConfigPropertiesapi_keybase_url?timeout?UnifiedClientConfigPropertiesbaas?vexa?attendee?defaultProvider?DefaultProviderCapabilitiesPropertiessupportsSchedulingsupportsCalendarIntegrationsupportsBatchOperationssupportsRealTimeChatsupportsVoiceOutputsupportsVideoOutputsupportsRecordingPausesupportsRTMPStreamingsupportsWebsocketAudiosupportsVoiceAgentssupportsParticipantTrackingsupportedTranscriptionProviderssupportsCustomTranscriptionSettingssupportsWebhookssupportedWebhookTriggersNamespacesType AliasesUnifiedResponseType ParametersBotIdentifierBotState