Skip to main content
A bot joins one Zoom, Google Meet or Microsoft Teams call and records it. It is one way of recording a meeting: sending a bot creates the meeting at once (meeting_id), the bot appears on it under recordings, and what the call produced is read from the meeting’s results. See Send bots. The recording choices on the bot (language, recording_start, recording_mode, silence_alert, summary_language, summary_template) are the meeting’s: a value sent on POST /bots becomes the meeting’s own settings, a value left out follows the member’s and the workspace’s, and a later PATCH /settings/{id} of the meeting’s settings changes what the bot shows.

Attributes

string
Stable typed bot ID beginning with bot_. Treat it as an opaque string.
string
Always bot.
string
The meeting this bot records, beginning with mtg_. It exists from the moment the bot is queued; read its results with GET /meetings/{meeting_id}/results.
string
Normalized URL supplied at creation. Treat as sensitive — it may contain credentials.
string | null
Requested ISO 8601 join time, or null for an immediate dispatch.
string
  • queued: Accepted, waiting to join now or at join_at.
  • joining: Joining the call.
  • in_call: In the call and recording.
  • processing: The recording is being transcribed and summarized.
  • completed: The transcript and summary are ready on the meeting.
  • failed: Ended without a usable result. reason says why.
  • cancelled: Cancelled before it finished.
string
Display name of the notetaker in the call.
string | null
Chat message the notetaker posts when it joins, or null when it posts none.
string
Transcription language as a BCP-47 code, auto or multi. The meeting’s settings.transcription.language.
string
When the notetaker starts recording. The meeting’s settings.recording.methods.bot.start.
  • on_join: as soon as it joins the call.
  • on_command: when someone in the call asks it to.
string
What the notetaker records. The meeting’s settings.recording.methods.bot.mode.
  • audio_and_video: audio and video.
  • audio_only: audio only.
boolean
Whether the notetaker posts an audible and chat alert after a long silence, in case it is recording nothing. The meeting’s settings.recording.methods.bot.silence_detection.alert.
string | null
Language of the summary as a BCP-47 code, or null to follow the transcription. The meeting’s settings.summary.language.
string | null
The summary template that runs, a built-in slug or a custom template’s tpl_ id. The meeting’s settings.summary.template.
object[]
Everyone invited to the meeting. Meeting rooms and the notetaker itself are excluded.
object
Your key-value pairs on this bot: a flat map of strings from 2026-10-12, merged by PATCH /bots/ {id}. Before 2026-10-12, the JSON object stored at creation, returned as stored. See metadata.
string
When the bot was created.
string | null
When the recording first became available. null until then, and for a bot that never recorded. Reprocessing does not change it.
string
Machine-readable failure reason. Present only for failed bots.
  • no_recording: the call ended without anything recorded.
  • invalid_meeting_url: the meeting URL could not be joined.
  • bot_error: the notetaker failed in the call.
  • transcription_failed: the recording could not be transcribed.
string | null
Human-readable failure detail for debugging. Present only for failed bots. Do not match on its text; use reason.