CreateBotRequest
Mixin class providing meeting URL validation for serializers.
- botType: string
_name min length:1requiredThe name of the bot to create, e.g. 'My Bot'
- meetingType: string
_url min length:1requiredThe URL of the meeting to join, e.g. https://zoom.us/j/123?pwd=456
- automaticType: object
_leave _settings - authorizedType: integer
_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.
- botType: array string[] | null
_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.
- enableType: integer
_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.
- maxType: integer
_uptime _seconds Maximum number of seconds that the bot should be running before automatically leaving (infinity)
- onlyType: integer
_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.
- silenceType: integer
_activate _after _seconds Number of seconds to wait before activating the silence timeout
- silenceType: integer
_timeout _seconds Number of seconds of continuous silence after which the bot should leave
- waitType: integer
_for _host _to _start _meeting _timeout _seconds Number of seconds to wait for the host to start the meeting
- waitingType: integer
_room _timeout _seconds Number of seconds to wait before leaving if the bot is in the waiting room
- botType: object · BotChatMessageRequestRequest
_chat _message The chat message the bot sends after it joins the meeting
- messageType: stringmin length:1required
The message text to send. Does not support emojis currently. For Microsoft Teams, you can use basic HTML tags to format the message including
,
, , , and . - toType: string · ToEnumenum
Who to send the message to.
everyone- everyonespecific_user- specific_usereveryone_but_host- everyone_but_host
values- everyone
- specific
_user - everyone
_but _host
- toType: string | null
_user _uuid max length:255The UUID of the user to send the message to. Required if 'to' is 'specific_user'.
- botType: object · BotImageRequest
_image The image for the bot
- dataType: stringmin length:1required
Base64 encoded image data.
- typeType: string · TypeEnumenumrequired
Image content type. Supported formats: PNG and JPEG.
image/png- PNG Imageimage/jpeg- JPEG Image
values- image/png
- image/jpeg
- calendarType: string
_event _id min length:1The ID of the calendar event the bot should join.
- callbackType: object
_settings Callback urls for the bot to call when it needs to fetch certain data.
- zoomType: string
_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>"}.
- debugType: object
_settings The debug settings for the bot, e.g. {'create_debug_recording': True}.
- createType: boolean
_debug _recording Whether to generate a recording of the attempt to join the meeting. Used for debugging.
- deduplicationType: string
_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.
- externalType: object
_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.
- bucketType: string
_name requiredThe name of the external storage bucket to use for media files.
- recordingType: string
_file _name Optional custom name for the recording file
- googleType: object
_meet _settings The Google Meet-specific settings for the bot.
- loginType: string | null
_group _name Optional bot login group name to use for Google Meet signed-in bot selection. If no group is specified, the oldest Google Meet group will be selected.
- loginType: stringenum
_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.
values- always
- only
_if _required
- useType: boolean
_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.
- joinType: stringFormat: date-time
_at The time the bot should join the meeting. ISO 8601 format, e.g. 2025-06-13T12:00:00Z
- metadataType: object
JSON object containing metadata to associate with the bot
- recordingType: object
_settings The settings for the bot's recording.
- formatType: string
The format of the recording to save. The supported formats are 'mp4', 'mp3' and 'none'. Defaults to 'mp4'.
- recordType: boolean
_chat _messages _when _paused Whether to record chat messages even when the recording is paused. Defaults to false.
- reserveType: boolean
_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.
- resolutionType: stringenum
The resolution to use for the recording. The supported resolutions are '1080p' and '720p'. Defaults to '1080p'.
values- 1080p
- 720p
- viewType: string
The view to use for the recording. The supported views are 'speaker_view', 'gallery_view' and 'speaker_view_no_sidebar'.
- rtmpType: object
_settings RTMP server to stream to, e.g. {'destination_url': 'rtmp://global-live.mux.com:5222/app', 'stream_key': 'xxxx'}.
- destinationType: string
_url requiredThe URL of the RTMP server to send the stream to
- streamType: string
_key requiredThe stream key to use for the RTMP server
- teamsType: object
_settings The Microsoft Teams-specific settings for the bot.
- loginType: string | null
_group _name Optional bot login group name to use for Teams signed-in bot selection. If no group is specified, the oldest Teams group will be selected.
- loginType: stringenum
_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.
values- always
- only
_if _required
- useType: boolean
_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.
- transcriptionType: object
_settings The transcription settings for the bot, e.g. {'deepgram': {'language': 'en'}}
- assemblyType: object
_ai - customType: object
_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.
- customType: object
_async _v2 Custom self-hosted transcription service with async processing. Use
headersfor HTTP request headers (e.g. auth tokens) andform_datafor multipart form fields sent alongside the audio file. Only supported if self-hosting Attendee. - deepgramType: object
- elevenlabsType: object
- gladiaType: object
- kyutaiType: object
- meetingType: object
_closed _captions - openaiType: object
- sarvamType: object
- voiceType: object
_agent _settings Settings for the voice agent that the bot should load.
- reserveType: boolean
_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.
- screenshareType: string
_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.
- urlType: string
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.
- webhooksType: array object[]
List of webhook subscriptions to create for this bot. Each item should have 'url' and 'triggers' fields.
- triggersType: array string[] unique!enumrequired
List of webhook trigger types
values- bot
.state _change - transcript
.update - chat
_messages .update - participant
_events .join _leave - calendar
.events _update - calendar
.state _change
- urlType: stringrequired
The webhook URL (must be HTTPS)
- websocketType: object
_settings The websocket settings for the bot, e.g. {'audio': {'url': 'wss://example.com/audio', 'sample_rate': 16000}}
- audioType: object
- perType: object
_participant _audio - perType: object
_participant _video
- zoomType: object
_settings The Zoom-specific settings for the bot.
- meetingType: object
_settings Settings for various aspects of the Zoom Meeting. To use these settings, the bot must have host privileges.
- sdkType: stringenum
The Zoom SDK to use for the bot. Use 'web' when you need closed caption based transcription.
values- web
- native