CreateBotRequest
Mixin class providing meeting URL validation for serializers.
- Type: string
bot _name min length:1requiredThe name of the bot to create, e.g. 'My Bot'
- Type: string
meeting _url min length:1requiredThe URL of the meeting to join, e.g. https://zoom.us/j/123?pwd=456
- Type: object
automatic _leave _settings - Type: integer
authorized _user _not _in _meeting _timeout _seconds Number of seconds to wait before leaving if the authorized user is not in the meeting. Only relevant if this is a Zoom bot using the on behalf of token.
- Type: array string[] | null
bot _keywords List of keywords to identify bot participants. A participant is considered a bot if any word in their name matches a keyword. Words are found by splitting on spaces, hyphens, and underscores, and the comparison is case-insensitive. Bot participants are excluded when determining if the bot is the only participant in the meeting.
- Type: integer
enable _closed _captions _timeout _seconds Number of seconds to wait before leaving if bot could not enable closed captions (infinity by default). Only relevant if the bot is transcribing via closed captions. Currently only supports leaving immediately.
- Type: integer
max _uptime _seconds Maximum number of seconds that the bot should be running before automatically leaving (infinity)
- Type: integer
only _participant _in _meeting _timeout _seconds Number of seconds to wait before leaving if bot becomes the only participant in the meeting because everyone else left.
- Type: integer
silence _activate _after _seconds Number of seconds to wait before activating the silence timeout
- Type: integer
silence _timeout _seconds Number of seconds of continuous silence after which the bot should leave
- Type: integer
wait _for _host _to _start _meeting _timeout _seconds Number of seconds to wait for the host to start the meeting
- Type: integer
waiting _room _timeout _seconds Number of seconds to wait before leaving if the bot is in the waiting room
- Type: object · BotChatMessageRequestRequest
bot _chat _message The chat message the bot sends after it joins the meeting
- Type: string
message min length:1requiredThe message text to send. Does not support emojis currently. For Microsoft Teams, you can use basic HTML tags to format the message including
,
, , , and . - Type: string · ToEnumenum
to everyone- everyonespecific_user- specific_usereveryone_but_host- everyone_but_host
valueseveryone specific _user everyone _but _host
- Type: string | null
to _user _uuid max length:255The UUID of the user to send the message to. Required if 'to' is 'specific_user'.
- Type: object · BotImageRequest
bot _image The image for the bot
- Type: string
data min length:1requiredBase64 encoded image data. Simple example of a red pixel encoded in PNG format: iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mP8z8BQDwAEhQGAhKmMIQAAAABJRU5ErkJggg==
- enum
type const:image/pngrequiredimage/png- image/png
valuesimage/png
- Type: string
calendar _event _id min length:1The ID of the calendar event the bot should join.
- Type: object
callback _settings Callback urls for the bot to call when it needs to fetch certain data.
- Type: string
zoom _tokens _url URL of an endpoint on your server that returns Zoom authentication tokens the bot will use when it joins the meeting. Our server will make a POST request to this URL with information about the bot and expects a JSON response with the format: {"zak_token": "<zak_token>", "join_token": "<join_token>", "app_privilege_token": "<app_privilege_token>", "onbehalf_token": "<onbehalf_token>"}. Not every token needs to be provided, i.e. you can reply with {"zak_token": "<zak_token>"}.
- Type: object
debug _settings The debug settings for the bot, e.g. {'create_debug_recording': True}.
- Type: boolean
create _debug _recording Whether to generate a recording of the attempt to join the meeting. Used for debugging.
- Type: string
deduplication _key min length:1Optional key for deduplicating bots. If a bot with this key already exists in a non-terminal state, the new bot will not be created and an error will be returned.
- Type: object
external _media _storage _settings Settings that allow Attendee to upload the recording to an external storage bucket controlled by you. This relieves you from needing to download the recording from Attendee and then upload it to your own storage. To use this feature you must add credentials to your project that provide access to the external storage.
- Type: string
bucket _name requiredThe name of the external storage bucket to use for media files.
- Type: string
recording _file _name Optional custom name for the recording file
- Type: object
google _meet _settings The Google Meet-specific settings for the bot.
- Type: stringenum
login _mode The mode to use for the Google Meet bot login. 'always' means the bot will always login, 'only_if_required' means the bot will only login if the meeting requires authentication.
valuesalways only _if _required
- Type: boolean
use _login Whether to use Google Meet bot login credentials to sign in before joining the meeting. Requires Google Meet bot login credentials to be set for the project.
- Type: stringFormat: date-time
join _at The time the bot should join the meeting. ISO 8601 format, e.g. 2025-06-13T12:00:00Z
- Type: object
metadata JSON object containing metadata to associate with the bot
- Type: object
recording _settings The settings for the bot's recording.
- Type: string
format The format of the recording to save. The supported formats are 'mp4', 'mp3' and 'none'. Defaults to 'mp4'.
- Type: boolean
record _chat _messages _when _paused Whether to record chat messages even when the recording is paused. Defaults to false.
- Type: boolean
reserve _additional _storage Whether to reserve extra space to store the recording. Only needed when the bot will record video for longer than 6 hours. Defaults to false.
- Type: stringenum
resolution The resolution to use for the recording. The supported resolutions are '1080p' and '720p'. Defaults to '1080p'.
values1080p 720p
- Type: string
view The view to use for the recording. The supported views are 'speaker_view', 'gallery_view' and 'speaker_view_no_sidebar'.
- Type: object
rtmp _settings RTMP server to stream to, e.g. {'destination_url': 'rtmp://global-live.mux.com:5222/app', 'stream_key': 'xxxx'}.
- Type: string
destination _url requiredThe URL of the RTMP server to send the stream to
- Type: string
stream _key requiredThe stream key to use for the RTMP server
- Type: object
teams _settings The Microsoft Teams-specific settings for the bot.
- Type: stringenum
login _mode The mode to use for the Teams bot login. 'always' means the bot will always login, 'only_if_required' means the bot will only login if the meeting requires authentication.
valuesalways only _if _required
- Type: boolean
use _login Whether to use Teams bot login credentials to sign in before joining the meeting. Requires Teams bot login credentials to be set for the project.
- Type: object
transcription _settings The transcription settings for the bot, e.g. {'deepgram': {'language': 'en'}}
- Type: object
assembly _ai - Type: object
custom _async Custom self-hosted transcription service with async processing. Additional properties will be sent as form data in the request. Only supported if self-hosting Attendee.
- Type: object
deepgram - Type: object
elevenlabs - Type: object
gladia - Type: object
kyutai - Type: object
meeting _closed _captions - Type: object
openai - Type: object
sarvam
- Type: object
voice _agent _settings Settings for the voice agent that the bot should load.
- Type: boolean
reserve _resources If you want to start a voice agent or stream a webpage mid-meeting, but not at the start of the meeting, set this to true. This will reserve resources for the voice agent. You cannot start a voice agent mid-meeting if this is not set to true.
- Type: string
screenshare _url Behaves the same as url, but the video will be displayed through screenshare instead of the bot's webcam. Currently, you cannot provide both url and screenshare_url.
- Type: string
url URL of a website containing a voice agent that gets the user's responses from the microphone. The bot will load this website and stream its video and audio to the meeting. The audio from the meeting will be sent to website via the microphone. See https://docs.attendee.dev/guides/voiceagents for further details. The video will be displayed through the bot's webcam. To display the video through screenshare, use the screenshare_url parameter instead.
- Type: array object[]
webhooks List of webhook subscriptions to create for this bot. Each item should have 'url' and 'triggers' fields.
- Type: array string[] unique!enum
triggers requiredList of webhook trigger types
valuesbot .state _change transcript .update chat _messages .update participant _events .join _leave calendar .events _update calendar .state _change
- Type: string
url requiredThe webhook URL (must be HTTPS)
- Type: object
websocket _settings The websocket settings for the bot, e.g. {'audio': {'url': 'wss://example.com/audio', 'sample_rate': 16000}}
- Type: object
audio - Type: object
per _participant _audio
- Type: object
zoom _settings The Zoom-specific settings for the bot.
- Type: object
meeting _settings Settings for various aspects of the Zoom Meeting. To use these settings, the bot must have host privileges.
- Type: stringenum
sdk The Zoom SDK to use for the bot. Use 'web' when you need closed caption based transcription.
valuesweb native