Create a new bot

After being created, the bot will attempt to join the specified meeting.

Headers
  • Authorization
    Type: string
    required

    API key for authentication

  • Content-Type
    Type: string
    required

    Should always be application/json

Body
required
application/json

Mixin class providing meeting URL validation for serializers.

  • bot_name
    Type: string
    min length:  
    1
    required

    The name of the bot to create, e.g. 'My Bot'

  • meeting_url
    Type: string
    min length:  
    1
    required

    The URL of the meeting to join, e.g. https://zoom.us/j/123?pwd=456

  • automatic_leave_settings
    Type: object
  • bot_chat_message
    Type: object · BotChatMessageRequestRequest

    The chat message the bot sends after it joins the meeting

  • bot_image
    Type: object · BotImageRequest

    The image for the bot

  • calendar_event_id
    Type: string
    min length:  
    1

    The ID of the calendar event the bot should join.

  • callback_settings
    Type: object

    Callback urls for the bot to call when it needs to fetch certain data.

  • debug_settings
    Type: object

    The debug settings for the bot, e.g. {'create_debug_recording': True}.

  • deduplication_key
    Type: string
    min length:  
    1

    Optional 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.

  • external_media_storage_settings
    Type: object

    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.

  • google_meet_settings
    Type: object

    The Google Meet-specific settings for the bot.

  • join_at
    Type: stringFormat: date-time

    The time the bot should join the meeting. ISO 8601 format, e.g. 2025-06-13T12:00:00Z

Mixin class providing meeting URL validation for serializers.

Responses
  • application/json
  • 400

    Invalid input

Request Example for post/api/v1/bots
curl https://app.attendee.dev/api/v1/bots \
  --request POST \
  --header 'Authorization: Token YOUR_API_KEY_HERE' \
  --header 'Content-Type: application/json' \
  --data '{
  "meeting_url": "https://zoom.us/j/123?pwd=456",
  "bot_name": "My Bot"
}'
{
  "id": "bot_weIAju4OXNZkDTpZ",
  "meeting_url": "https://zoom.us/j/123?pwd=456",
  "state": "joining",
  "events": [
    {
      "type": "join_requested",
      "created_at": "2024-01-18T12:34:56Z"
    }
  ],
  "transcription_state": "not_started",
  "recording_state": "not_started"
}