Update Bot
/bot/{id}https://platform.skribby.io/api/v1/bot/{id}Update a scheduled meeting bot. All parameters are optional, provide only the fields you want to change; unspecified fields will remain unchanged.
Path Parameters
| Name | Type | Description |
|---|---|---|
idrequired | string<uuid> | Bot ID |
Request Body
optionaltranscription_modelstringThe transcription model to use for transcribing the audio. Refer to your billing page for cost and availability per model.
nonewhisperassembly-ai-realtimedeepgramdeepgram-v3assembly-aispeechmaticsrev-aielevenlabselevenlabs-v2deepgram-realtimedeepgram-realtime-v3speechmatics-realtimesonioxsoniox-realtimegladiagladia-realtimesaladtranscription_credentialsstring<uuid>Optional credential identifier issued by the Skribby platform when bringing your own API key for the selected transcription model.
servicestringThe service the bot needs to join:
- gmeet - Google Meet
- teams - Microsoft Teams
- zoom - Zoom
gmeetteamszoommeeting_urlstring<uri>The URL to the meeting itself which the bot will use to join
"https://meet.google.com/osk-sbwe-nff"bot_namestringThe name of the bot that'll join the meeting
"My Meeting Bot"bot_avatar_filestringBinary image file for bot avatar. Ideally should be in 16:9 aspect ratio.
bot_avatar_urlstring<uri>URL to an image that will be used as the bot's avatar. This will be ignored if botavatarfile is provided.
langstringLanguage of the meeting. Optional but can improve transcription accuracy. When using deepgram-realtime, this parameter is highly recommended. Refer to the Bot Language page for more information.
"en"videobooleanWhether video should also be recorded during the meeting. Refer to your billing page for cost implications and availability.
webhook_urlstring<uri>URL to receive live updates on bot status changes, participant changes, etc. Refer to the Webhooks section for details on webhook format and available events.
custom_metadataobject | nullMetadata attached to the bot for tracking requests in your system.
Keys and values must be strings. Up to 50 keys, each value up to 500 characters.
When provided in updates, this replaces the entire metadata object. Set to null to clear it.
store_recording_for_1_yearbooleanAudio recordings are stored for 1 week by default. This addon extends storage to 1 year. Refer to your billing page for cost implications and availability.
time_limitintegerUse timelimit on `stopoptions`.
scheduled_start_timeintegerUnix timestamp for when the bot should join the meeting. If not provided, the bot will attempt to join immediately.
profanity_filterbooleanWhether the transcription should censor profanity. Only available on select models. Refer to your billing page for availability per model.
initial_chat_messagestringWhenever the bot joins the meeting, it'll send this message to the chat.
stop_optionsobjectDefine if and when the bot should stop on certain conditions.
authenticationobjectAuthentication credentials for joining private meetings. Refer to the Bot Authentication page for more information.
custom_vocabularystring[]Provide certain words or phrases to improve transcription. Only supported on certain models, refer to your billing page to view availability per model.
realtime_audiobooleanEnable realtime audio streaming addon via a separate WebSocket connection. Refer to your billing page for cost implications and availability.
Responses
idstring<uuid>Unique bot identifier
"3c09b2aa-6708-42c1-8145-aa55ee223613"statusstringThe current lifecycle status of the bot.
Refer to the Bot Lifecycle guide for a detailed explanation of each state.
*Note on bot_detected:* This is often non-terminal. Skribby automatically retries up to 3 times. You may see the status toggle between bot_detected and booting during retries.
scheduledbootingjoiningrecordingprocessingtranscribingleavingfinishednot_admittedbot_detectedauth_requiredinvalid_credentialsfailedstop_reasonstring | nullThe reason why the bot stopped. This field is only populated when the status is finished or not_admitted.
Refer to the Bot Lifecycle guide for the machine-to-human mapping of these codes.
invalid_meeting_urlcall_already_finishedwaiting_room_timeoutrequest_deniedhost_in_another_meetingmanually_stoppedkickedmeeting_endedlast_person_detectedsilence_detection_triggeredservicestringService the bot joined
gmeetteamszoomscheduled_forstring<date-time> | nullWhen the bot is scheduled to join (for scheduled bots)
time_limitinteger | nullUse time_limit property in stop_options.
stop_optionsobjectDefined options when the bot should stop on certain conditions.
bot_namestringName of the bot in the meeting
bot_avatarstring<uri> | nullURL to bot avatar image
meeting_urlstring<uri>URL of the meeting
webhook_urlstring<uri> | nullWebhook URL for receiving updates. Refer to the Webhooks section for details on webhook format and available events.
custom_metadataobjectMetadata attached to the bot for tracking requests in your system. Keys and values must be strings. Up to 50 keys, each value up to 500 characters. Clearing metadata returns an empty object in responses.
recording_urlstring<uri> | nullURL to download the recording
recording_available_untilstring<date-time> | nullWhen the recording will be automatically deleted
websocket_urlstring<uri> | nullWebSocket URL for real-time transcription (realtime models only)
websocket_read_only_urlstring<uri> | nullWebSocket 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.
websocket_audio_urlstring<uri> | nullWebSocket URL for receiving realtime audio data from the bot.
Only available when using a realtime model or when realtime_audio: true was set when creating the bot.
Audio is streamed as 16-bit PCM at 16kHz sample rate.
videobooleanWhether video is recorded for this meeting
langstring | nullLanguage specified when creating the bot
detected_langstring | nullLanguage detected from the conversation (if supported by the model)
transcriptTranscriptSegment[]Array of transcript segments
transcription_modelstringModel used for transcription
participantsParticipant[]List of meeting participants
eventsEvent[]List of bot lifecycle events
profanity_filterbooleanWhether profanity filter was enabled
custom_vocabularystring[]Words or phrases provided when creating meeting bot for transcription model
created_atstring<date-time>When the bot was created
finished_atstring<date-time> | nullWhen the bot finished
Request
curl -X PATCH \
"https://platform.skribby.io/api/v1/bot/{id}" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"transcription_model": "none",
"transcription_credentials": "123e4567-e89b-12d3-a456-426614174000",
"service": "gmeet",
"meeting_url": "https://meet.google.com/osk-sbwe-nff",
"bot_name": "My Meeting Bot",
"bot_avatar_file": "string",
"bot_avatar_url": "https://example.com",
"lang": "en"
}'Response
{
"id": "3c09b2aa-6708-42c1-8145-aa55ee223613",
"status": "scheduled",
"stop_reason": "invalid_meeting_url",
"service": "gmeet",
"scheduled_for": null,
"time_limit": null,
"stop_options": {
"time_limit": 5,
"waiting_room_timeout": 1,
"last_person_detection": 0,
"silence_detection": 0
},
"bot_name": "string"
}