Skip to main content
DELETE
Cancel a bot

Authorizations

Authorization
string
header
required

Your API key, sent bare. See Authentication.

Headers

Happyscribe-Version
string<date>

Serve this request as the API was on this date. Any ISO date works — it resolves to the newest version on or before it — and it never changes your key's pin. See Versioning.

Example:

"2026-09-01"

Path Parameters

id
string
required

Bot ID, beginning with bot_. Treat it as an opaque string.

Example:

"bot_01k0h4r9s8x7c2dvq3m5n6p4ab"

Response

The bot, with its status after the request.

A bot is one way of recording a meeting. It carries its identity in the call and the meeting's recording choices; what the meeting produced (transcript, speakers, summary, media) is read from GET /meetings/{id}/results.

id
string

Stable typed bot ID beginning with bot_. Treat it as an opaque string.

object
string

Always bot.

meeting_id
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.

meeting_url
string

Normalized URL supplied at creation. Treat as sensitive — it may contain credentials.

join_at
string<date-time> | null

Requested ISO 8601 join time, or null for an immediate dispatch.

status
enum<string>

Current lifecycle state:

  • queued: the provider accepted the bot and the notetaker is pending
  • joining: the notetaker is joining the call
  • in_call: the notetaker is in the call and recording
  • processing: the recording is being transcribed or summarized
  • completed: the transcript and summary are ready on the meeting
  • failed: the bot ended without a usable result
  • cancelled: the bot was cancelled
Available options:
queued,
joining,
in_call,
processing,
completed,
failed,
cancelled
bot_name
string

Display name of the notetaker in the call.

welcome_message
string | null

Chat message the notetaker posts when it joins, or null when it posts none.

language
string

Transcription language as a BCP-47 code, auto or multi. The meeting's settings.transcription.language.

recording_start
enum<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
Available options:
on_join,
on_command
recording_mode
enum<string>

What the notetaker records. The meeting's settings.recording.methods.bot.mode.

  • audio_and_video: audio and video
  • audio_only: audio only
Available options:
audio_and_video,
audio_only
silence_alert
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.

summary_language
string | null

Language of the summary as a BCP-47 code, or null to follow the transcription. The meeting's settings.summary.language.

summary_template
string | null

The summary template that runs, a built-in slug or a custom template's tpl_ id. The meeting's settings.summary.template.

participants
object[]

Everyone invited to the meeting. Meeting rooms and the notetaker itself are excluded.

metadata
object

A flat map of strings from 2026-10-12. Before it, the object stored at creation, returned as stored; a value stored as a nested object reads as its JSON text from 2026-10-12.

Example:
created_at
string<date-time>

When the bot was created.

ended_at
string<date-time> | null

When the recording first became available. null until then, and for a bot that never recorded. Reprocessing does not change it.

reason
enum<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
Available options:
no_recording,
invalid_meeting_url,
bot_error,
transcription_failed
failure_message
string | null

Human-readable failure detail for debugging. Present only for failed bots. Do not match on its text; use reason.