POST
/
bots
/
create_bot
Create bot
curl --request POST \
  --url https://api.meestream.ai/v1/bots/create_bot \
  --header 'Authorization: <api-key>' \
  --header 'Content-Type: application/json' \
  --data '{
  "meeting_link": "<string>",
  "audio_required": true,
  "video_required": true,
  "bot_message": "<string>",
  "live_audio_required": {
    "websocket_url": "<string>"
  },
  "live_transcription_required": {
    "webhook_url": "<string>",
    "websocket_url": "<string>"
  },
  "transcription": {
    "deepgram": {
      "model": "<string>",
      "language": "<string>"
    }
  },
  "bot_image_url": "<string>",
  "socket_connection_url": "<string>",
  "custom_attributes": {
    "tag": "<string>",
    "sample": "<string>"
  },
  "join_at": "<string>",
  "callback_url": "<string>"
}'
{
  "bot_id": "<string>"
}

Live Transcription and Audio Streaming

The bot creation API supports real-time transcription and audio streaming through webhooks and WebSocket connections.

Live Transcription Configuration

To enable live transcription, include the live_transcription_required field:
{
  "live_transcription_required": {
    "webhook_url": "https://your-domain.com/transcripts"
  }
}
Or use WebSocket for real-time streaming:
{
  "live_transcription_required": {
    "websocket_url": "wss://your-domain.com/transcripts"
  }
}

Live Audio Streaming Configuration

To enable live audio streaming, include the live_audio_required field:
{
  "live_audio_required": {
    "websocket_url": "wss://your-domain.com/audio"
  }
}
For detailed information about live transcripts, see the Live Transcripts documentation.

Callback Events

When a callback_url is provided in the request, the API will send POST requests to notify you about various bot status changes. Here are the events you can expect:

Bot Joining Event

{
  "bot_id": "5b0ff6e7-3cea-4c9f-a6b4-851c5f11cf4f",
  "bot_status": "joining",
  "message": "Bot is joining the meeting",
  "status_code": 102
}

Bot Successfully Joined Event

{
  "bot_id": "5b0ff6e7-3cea-4c9f-a6b4-851c5f11cf4f",
  "message": "Successfully joined the meeting",
  "bot_status": "InMeeting",
  "status_code": 200
}

Bot Stopped Event

{
  "bot_id": "5b0ff6e7-3cea-4c9f-a6b4-851c5f11cf4f",
  "message": "Bot exited and step function was triggered",
  "bot_status": "Stopped",
  "status_code": 500
}

Audio Processing Completed Event

{
  "bot_id": "5b0ff6e7-3cea-4c9f-a6b4-851c5f11cf4f",
  "audio_status": "Success",
  "message": "Audio processing completed successfully",
  "status_code": 200
}

Transcript Processing Completed Event

{
  "bot_id": "5b0ff6e7-3cea-4c9f-a6b4-851c5f11cf4f",
  "transcript_status": "Success",
  "message": "Transcript processing completed successfully",
  "status_code": 200
}

Callback Event Fields

FieldTypeDescription
bot_idstringThe unique identifier of the bot
bot_statusstringCurrent status of the bot (joining, InMeeting, Stopped)
messagestringHuman-readable status message
status_codeintegerHTTP-style status code indicating the event type
audio_statusstringStatus of audio processing (Success)
transcript_statusstringStatus of transcript processing (Success)

Status Codes

  • 102: Bot is in the process of joining the meeting
  • 200: Successful operation (joined meeting, audio/transcript processing completed)
  • 500: Bot has stopped/exited the meeting

Authorizations

Authorization
string
header
required

All API endpoints are authenticated using API Keys. The key should be included in the 'Authorization' header, prefixed with 'Token '. Example: 'Authorization: Token YOUR_API_KEY'.

Body

application/json

Meeting URL to join.

audio_required
boolean
required

Whether audio is required.

video_required
boolean
required

Whether video is required.

bot_message
string

Message for the bot to say on join.

live_audio_required
object

Live audio streaming config.

live_transcription_required
object

Live transcription config.

transcription
object
bot_image_url
string

URL to the bot's profile image. Should be in the format jpeg,png,jpg,gif.

socket_connection_url
string

URL to the bot's socket connection. Should be in the format wss://.

custom_attributes
object
join_at
string

The date and time the bot will join the meeting. YYYY-MM-DD HH:MM:SS Ex:2024-01-15T14:30:00Z

callback_url
string

Callback URL for bot events.

Response

Bot creation initiated successfully.

bot_id
string
required

Unique identifier for the created bot.