API Reference/Webhooks

Bot Webhook Events Documentation

Meeting BaaS sends the following webhook events related to bot recordings.

Bot Webhook Event Types

1. complete

Sent when a bot successfully completes recording a meeting.

Payload Structure:

{
  \"event\": \"complete\",
  \"data\": {
    \"bot_id\": \"123e4567-e89b-12d3-a456-426614174000\",
    \"transcript\": [
      {
        \"speaker\": \"John Doe\",
        \"offset\": 1.5,
        \"words\": [
          {
            \"start\": 1.5,
            \"end\": 1.9,
            \"word\": \"Hello\"
          },
          {
            \"start\": 2.0,
            \"end\": 2.4,
            \"word\": \"everyone\"
          }
        ]
      }
    ],
    \"speakers\": [
      \"Jane Smith\",
      \"John Doe\"
    ],
    \"mp4\": \"https://storage.example.com/recordings/video123.mp4?token=abc\",
    \"event\": \"complete\"
  }
}

When it's triggered:

  • After a bot successfully records and processes a meeting
  • After the recording is uploaded and made available
  • When all processing of the meeting recording is complete

What to do with it:

  • Download the MP4 recording for storage in your system
  • Store the transcript data in your database
  • Update meeting status in your application
  • Notify users that the recording is available

2. failed

Sent when a bot fails to join or record a meeting.

Payload Structure:

{
  \"event\": \"failed\",
  \"data\": {
    \"bot_id\": \"123e4567-e89b-12d3-a456-426614174000\",
    \"error\": \"meeting_not_found\",
    \"message\": \"Could not join meeting: The meeting ID was not found or has expired\"
  }
}

Common error types:

  • meeting_not_found: The meeting ID or link was invalid or expired
  • access_denied: The bot was denied access to the meeting
  • authentication_error: Failed to authenticate with the meeting platform
  • network_error: Network connectivity issues during recording
  • internal_error: Internal server error

What to do with it:

  • Log the failure for troubleshooting
  • Notify administrators or users about the failed recording
  • Attempt to reschedule if appropriate
  • Update meeting status in your system

3. transcription_complete

Sent when transcription is completed separately from recording.

Payload Structure:

{
  \"event\": \"transcription_complete\",
  \"data\": {
    \"bot_id\": \"123e4567-e89b-12d3-a456-426614174000\"
  }
}

When it's triggered:

  • After requesting retranscription via the API
  • When an asynchronous transcription job completes
  • When a higher quality or different language transcription becomes available

What to do with it:

  • Update the transcript data in your system
  • Notify users that improved transcription is available
  • Run any post-processing on the new transcript data

Webhook Usage Tips

  • Each event includes the bot_id so you can correlate with your internal data
  • The complete event includes speaker identification and full transcript data
  • For downloading recordings, the mp4 URL is valid for 24 hours
  • Handle the webhook asynchronously and return 200 OK quickly to prevent timeouts

For security, always validate the API key in the x-meeting-baas-api-key header matches your API key.

GET
/bots/webhooks/bot

Authorization

x-meeting-baas-api-key<token>

API key for authentication

In: header

curl -X GET "https://api.meetingbaas.com/bots/webhooks/bot" \
  -H "x-meeting-baas-api-key: <token>"

null