MeetingBaasMeeting Baas
Getting Started

Getting the data

Learn how to receive and process meeting data through webhooks, including live events and post-meeting recordings

To get your meeting data, listen for POST requests to the webhook URL you set up in your account.

You'll receive two types of data: live meeting events and post-meeting data.

1. Live Meeting Events

The events we send you during the meeting are in the following format:

POST /your-endpoint HTTP/1.1
Host: your-company.com
Content-Type: application/json
x-meeting-baas-api-key: YOUR-API-KEY
 
{
  "event": "bot.status_change",
  "data": {
    "bot_id": "asfdgfdewsrtiuydsfgklafsd",
    "status": {
      "code": "joining_call",
      "created_at": "2024-01-01T12:00:00.000Z"
    }
  }
}

Here's what each field means:

  • event: The key-value pair for bot status events. Always bot.status_change.
  • data.bot_id: The identifier of the bot.
  • data.status.code: The code of the event. One of:
    • joining_call: The bot has acknowledged the request to join the call.
    • in_waiting_room: The bot is in the "waiting room" of the meeting.
    • in_call_not_recording: The bot has joined the meeting, however it is not recording yet.
    • in_call_recording: The bot is in the meeting and recording the audio and video.
    • call_ended: The bot has left the call.
  • data.status.created_at: An ISO string of the datetime of the event.

2. Success webhook

To get the final meeting data, listen for POST requests to the webhook URL you set up in your account, or the webhook URL you used in your request.

You'll receive one of two events:

  • "event": "complete"
  • "event": "failed"

Here's an example for a complete event:

POST /your-endpoint HTTP/1.1
Host: your-company.com
Content-Type: application/json
x-meeting-baas-api-key: YOUR-API-KEY
 
{
  "event": "complete",
  "data": {
    "bot_id": "asfdgfdewsrtiuydsfgklafsd",
    "mp4": "https://bots-videos.s3.eu-west-3.amazonaws.com/path/to/video.mp4?X-Amz-Signature=...",
    "speakers": ["Alice", "Bob"],
    "transcript": [{
      "speaker": "Alice",
      "words": [{
        "start": 1.3348110430839002,
        "end": 1.4549110430839003,
        "word": "Hi"
      }, {
        "start": 1.4549110430839003,
        "end": 1.5750110430839004,
        "word": "Bob!"
      }]
    }, {
      "speaker": "Bob",
      "words": [{
        "start": 2.6583010430839,
        "end": 2.778401043083901,
        "word": "Hello"
      }, {
        "start": 2.778401043083901,
        "end": 2.9185110430839005,
        "word": "Alice!"
      }]
    }]
  }
}

Let's break this down:

  • bot_id: The identifier of the bot.
  • mp4: A private AWS S3 URL of the mp4 recording of the meeting. Valid for one hour only.
  • speakers: The list of speakers in this meeting. Currently requires transcription to be enabled.
  • transcript (optional): The meeting transcript. Only given when speech_to_text is set when asking for a bot. An array containing:
    • transcript.speaker: The speaker name.
    • transcript.words: The list of words, each containing: - transcript.words.start: The start time of the word - transcript.words.end: The end time of the word - transcript.words.word: The word itself

3. Failed webhook

Here's an example of what you'll receive when a recording fails.

POST /your-endpoint HTTP/1.1
Host: your-company.com
Content-Type: application/json
x-meeting-baas-api-key: YOUR-API-KEY
 
{
  "event": "failed",
  "data": {
    "bot_id": "asfdgfdewsrtiuydsfgklafsd",
    "error": "CannotJoinMeeting"
  }
}

The failure types can be:

ErrorDescription
CannotJoinMeetingThe bot could not join the meeting URL provided. In most cases, this is because the meeting URL was only accessible for logged-in users invited to the meeting.
TimeoutWaitingToStartThe bot has quit after waiting to be accepted. By default this is 10 minutes, configurable via automatic_leave.waiting_room_timeout or automatic_leave.noone_joined_timeout (both default to 600 seconds).
BotNotAcceptedThe bot has been refused in the meeting.
InternalErrorAn unexpected error occurred. Please contact us if the issue persists.
InvalidMeetingUrlThe meeting URL provided is not a valid (Zoom, Meet, Teams) URL. Please note Microsoft Live Meeting URLs (such as https://teams.live.com/meet/...) are not supported.

On this page