# Get Bot Retrieve information about a specific bot, including its current status, transcript (if available), participants, and lifecycle events. Endpoint: GET /bot/{id} Version: v1 Security: bearerAuth ## Path parameters: - `id` (string, required) Bot ID Example: "3c09b2aa-6708-42c1-8145-aa55ee223613" ## Query parameters: - `with-speaker-events` (boolean) Include speaker events in participant data ## Response 200 fields (application/json): - `id` (string) Unique bot identifier Example: "3c09b2aa-6708-42c1-8145-aa55ee223613" - `status` (string) Current status of the bot Enum: "scheduled", "booting", "joining", "recording", "processing", "transcribing", "leaving", "finished", "not_admitted", "auth_required", "invalid_credentials", "failed" - `service` (string) Service the bot joined Enum: "gmeet", "teams", "zoom" - `scheduled_for` (string,null) When the bot is scheduled to join (for scheduled bots) - `stop_options` (object) Defined options when the bot should stop on certain conditions. - `stop_options.time_limit` (integer) Maximum time in minutes that the bot may be active. Hard limit is 4 hours (240 minutes). - `stop_options.waiting_room_timeout` (integer) Minutes the bot will wait in the meeting waiting room before stopping if it is not admitted. > ⚠️ Charge Warning: Going beyond 10 minutes incurs charges for not admitted bots. Additional fees equal your base price * (waiting_room_timeout - 10). Refer to [your billing page](https://platform.skribby.io?to=billing) for current base pricing. - `stop_options.last_person_detection` (integer) Minimum time in minutes the bot will spent alone in the meeting (once everyone left) before the bot will stop. 0 disables this functionality. - `stop_options.silence_detection` (integer) Minimum time in minutes the bot will wait for any sounds before the bot will stop. This is useful for when there are other bots in the call and therefor the last_person_detection fails. 0 disables this functionality. - `bot_name` (string) Name of the bot in the meeting - `bot_avatar` (string,null) URL to bot avatar image - `meeting_url` (string) URL of the meeting - `webhook_url` (string,null) Webhook URL for receiving updates - `recording_url` (string,null) URL to download the recording - `recording_available_until` (string,null) When the recording will be automatically deleted - `websocket_url` (string,null) WebSocket URL for real-time transcription (realtime models only) - `websocket_read_only_url` (string,null) WebSocket URL for real-time transcription (realtime models only) - Only provides access to events, no actions. Useful if you want to use the websocket directly in your front-end without providing access to the user. - `video` (boolean) Whether video is recorded for this meeting - `lang` (string,null) Language specified when creating the bot - `detected_lang` (string,null) Language detected from the conversation (if supported by the model) - `transcript` (array) Array of transcript segments - `transcript.start` (number) Start time in seconds Example: 4 - `transcript.end` (number) End time in seconds Example: 5.62 - `transcript.speaker` (integer) Speaker ID - `transcript.speaker_name` (string,null) Name of the speaker (only available for transcription models which support speaker diarization). This field is only present when we are confident we can link a specific participant to this speaker. If no participant could be confidently linked to the speaker, this will be null and potential_speaker_names will be provided instead. Example: "John Doe" - `transcript.potential_speaker_names` (array,null) Array of potential speaker matches with confidence scores. This field is only present when we cannot confidently link a single participant to the speaker. If speaker_name is provided, this field will be null. - `transcript.potential_speaker_names.name` (string) Name of the potential speaker Example: "John Doe" - `transcript.potential_speaker_names.confidence` (number) Confidence score for this speaker match Example: 0.64 - `transcript.confidence` (number) Confidence score for transcript accuracy Example: 0.9980372 - `transcript.transcript` (string) The transcribed text Example: "This is a quick test." - `transcript.utterances` (array) Detailed utterance information (model-specific) - `transcription_model` (string) Model used for transcription - `participants` (array) List of meeting participants - `participants.name` (string) Participant's display name Example: "John Doe" - `participants.avatar` (string,null) URL to participant's avatar Example: "https://picsum.photos/50" - `participants.first_seen_at` (string) When participant was first detected Example: "2025-06-25T03:03:15.913000Z" - `participants.events` (array) Speaker events (if with-speaker-events=true) - `participants.events.type` (string) Type of speaker event Enum: "started-speaking", "stopped-speaking" - `participants.events.timestamp` (integer) Unix timestamp in milliseconds Example: 1750820602963 - `events` (array) List of bot lifecycle events - `events.event` (string) Type of event Example: "status_update" - `events.data` (object) Event data - `events.data.old_status` (string) Example: "joining" - `events.data.new_status` (string) Example: "recording" - `events.created_at` (string) When the event occurred - `profanity_filter` (boolean) Whether profanity filter was enabled - `custom_vocabulary` (array) Words or phrases provided when creating meeting bot for transcription model - `created_at` (string) When the bot was created - `finished_at` (string,null) When the bot finished - `time_limit` (integer,null) Use time_limit property in stop_options. ## Response 401 fields (application/json): - `message` (string) Error message Example: "Unauthenticated." ## Response 404 fields (application/json): - `message` (string) Error message Example: "No results found."