Bots API

Manage transcription bots that join meetings and transcribe audio in real-time.

POST/bots

Create Bot

Send a transcription bot to join a meeting. The bot will automatically join and start transcribing.

Authentication

Requires User API Key in X-API-Key header.

Request Body
Bot configuration
{
  "platform": "google_meet",
  "native_meeting_id": "abc-defg-hij",
  "passcode": "optional_passcode",
  "meeting_url": "https://meet.google.com/abc-defg-hij",
  "bot_name": "Vexa Transcription Bot",
  "language": "en"
}
Code Examples
curl -X POST "https://api.cloud.vexa.ai/bots" \
  -H "X-API-Key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "platform": "google_meet",
  "native_meeting_id": "abc-defg-hij",
  "passcode": "optional_passcode",
  "meeting_url": "https://meet.google.com/abc-defg-hij",
  "bot_name": "Vexa Transcription Bot",
  "language": "en"
}'
Response
{
  "id": 123,
  "platform": "google_meet",
  "native_meeting_id": "abc-defg-hij",
  "status": "requested",
  "start_time": null,
  "end_time": null,
  "bot_container_id": null,
  "data": {},
  "created_at": "2024-01-01T12:00:00Z"
}
Error Responses
400The meeting ID format is invalid for the specified platform
{
  "error": "Invalid meeting ID format"
}
401Invalid or missing API key
{
  "error": "Unauthorized"
}
429User has reached their maximum concurrent bot limit
{
  "error": "Too many concurrent bots"
}
Notes
  • The bot will transition through statuses: requested → joining → awaiting_admission → active
  • For Google Meet, meeting IDs follow the format: abc-defg-hij
  • For Microsoft Teams, meeting IDs are numeric and require a passcode. Always pass meeting_url for Teams to preserve the exact domain.
  • The language parameter is optional. If not specified, the bot will auto-detect the language
DELETE/bots/{platform}/{native_meeting_id}

Stop Bot

Stop an active transcription bot and disconnect it from the meeting.

Authentication

Requires User API Key in X-API-Key header.

Path Parameters
platform
platformstringRequired

Meeting platform: google_meet or teams

native_meeting_id
native_meeting_idstringRequired

The platform-specific meeting ID

Code Examples
curl -X DELETE "https://api.cloud.vexa.ai/bots/{platform}/{native_meeting_id}" \
  -H "X-API-Key: YOUR_API_KEY" \
  -H "Content-Type: application/json"
Error Responses
404No active bot found for the specified meeting
{
  "error": "Bot not found"
}
Notes
  • Stopping a bot will mark the meeting as completed
  • Transcripts remain available after stopping the bot
PUT/bots/{platform}/{native_meeting_id}/config

Update Bot Configuration

Update the configuration of an active bot, such as changing the transcription language.

Authentication

Requires User API Key in X-API-Key header.

Path Parameters
platform
platformstringRequired

Meeting platform: google_meet or teams

native_meeting_id
native_meeting_idstringRequired

The platform-specific meeting ID

Request Body
Configuration updates
{
  "language": "es",
  "task": "transcribe",
  "bot_name": "Updated Bot Name"
}
Code Examples
curl -X PUT "https://api.cloud.vexa.ai/bots/{platform}/{native_meeting_id}/config" \
  -H "X-API-Key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "language": "es",
  "task": "transcribe",
  "bot_name": "Updated Bot Name"
}'
Error Responses
404No active bot found for the specified meeting
{
  "error": "Bot not found"
}
Notes
  • Only active bots can have their configuration updated
  • Language changes take effect immediately for new transcript segments
GET/bots/status

Get Bot Status

Get the status of all currently running bots.

Authentication

Requires User API Key in X-API-Key header.

Code Examples
curl -X GET "https://api.cloud.vexa.ai/bots/status" \
  -H "X-API-Key: YOUR_API_KEY" \
  -H "Content-Type: application/json"
Response
{
  "running_bots": [
    {
      "container_id": "abc123",
      "meeting_id": 123,
      "platform": "google_meet",
      "native_meeting_id": "abc-defg-hij"
    }
  ]
}
Notes
  • Returns only bots that are currently running (not completed or failed)
  • Useful for monitoring active transcription sessions