Create and manage meeting bots
Skribby REST API (v1)
API-first platform for capturing, transcribing, and processing online meetings. Deploy meeting bots into Zoom, Microsoft Teams, and Google Meet to receive real-time or post-call transcription, audio, and structured data.
- Sign up for a free account
- Generate API key from your dashboard
- Create your first bot:
curl -X POST 'https://platform.skribby.io/api/v1/bot' \
-H 'Authorization: Bearer YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{
"transcription_model": "whisper",
"meeting_url": "https://meet.google.com/abc-def-ghi",
"service": "gmeet",
"bot_name": "My First Bot"
}'Skribby can send real-time updates to your server via webhooks. When you provide a webhook_url parameter, Skribby will POST events to that URL as they occur.
Webhook Format
All webhook payloads follow a consistent format:
{
"type": "{event}",
"data": {...}
}Available Events
`status_update`
Sent when a bot's status changes. The data object contains:
old_status(string): The previous status of the botnew_status(string): The new status of the bot
Example:
{
"type": "status_update",
"data": {
"old_status": "joining",
"new_status": "recording"
}
}Request
Upload and transcribe a recording file or re-transcribe an existing meeting bot recording.
You have three options:
- Upload a file directly - Provide
recording_fileandtranscription_model - Provide a URL - Provide
recording_urlandtranscription_model - Re-transcribe from meeting bot - Provide
meeting_bot_id(optionally override transcription parameters)
When using meeting_bot_id, the recording and default transcription settings will be copied from the specified meeting bot. You can override transcription_model, lang, profanity_filter, and custom_vocabulary parameters if needed.
- multipart/form-data
- application/json
The transcription model to use (realtime models not supported for uploads)
Audio or video file to be transcribed. Supported formats: MP3, WAV, MP4, WEBM, M4A, FLAC. Maximum file size: 1GB. Required if meeting_bot_id is not provided.
ID of an existing meeting bot to re-transcribe its recording. When provided, uses the bot's recording and transcription settings as defaults. Required if recording_file is not provided.
Language of the recording content, which will be provided to the transcription model.
Refer to the Bot Language page for more information.
URL to receive status updates during transcription. Refer to the Webhooks section for details on webhook format and available events.
Recordings are stored for 1 day by default. This extends storage to 1 year.
Refer to your billing page for cost implications and availability.
Provide certain words or phrases to improve transcription. Only supported on certain models, refer to your billing page to view availability per model.
- Production serverhttps://platform.skribby.io/api/v1/recording
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X POST \
https://platform.skribby.io/api/v1/recording \
-H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
-H 'Content-Type: multipart/form-data' \
-F transcription_model=whisper \
-F recording_file=string \
-F meeting_bot_id=f06d30cc-f650-44cd-bc33-7fe1bdf5ae97 \
-F lang=en \
-F webhook_url=http://example.com \
-F store_recording_for_1_year=false \
-F profanity_filter=false \
-F custom_vocabulary=string \
-F transcription_credentials=faa40ca1-de69-41c5-a298-e0416e869d67Recording created successfully
Webhook URL for receiving status updates. Refer to the Webhooks section for details on webhook format and available events.
Words or phrases provided when creating meeting bot for transcription model
{ "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "status": "transcribing", "webhook_url": "http://example.com", "recording_url": "http://example.com", "recording_available_until": "2019-08-24T14:15:22Z", "lang": "string", "detected_lang": "string", "transcript": [ { … } ], "transcription_model": "string", "events": [ { … } ], "profanity_filter": true, "custom_vocabulary": [ "string" ], "created_at": "2019-08-24T14:15:22Z" }
- Production serverhttps://platform.skribby.io/api/v1/recording/{id}
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X GET \
'https://platform.skribby.io/api/v1/recording/{id}' \
-H 'Authorization: Bearer <YOUR_TOKEN_HERE>'Recording information retrieved successfully
Webhook URL for receiving status updates. Refer to the Webhooks section for details on webhook format and available events.
Words or phrases provided when creating meeting bot for transcription model
{ "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "status": "transcribing", "webhook_url": "http://example.com", "recording_url": "http://example.com", "recording_available_until": "2019-08-24T14:15:22Z", "lang": "string", "detected_lang": "string", "transcript": [ { … } ], "transcription_model": "string", "events": [ { … } ], "profanity_filter": true, "custom_vocabulary": [ "string" ], "created_at": "2019-08-24T14:15:22Z" }
- Production serverhttps://platform.skribby.io/api/v1/recording/{id}
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X DELETE \
'https://platform.skribby.io/api/v1/recording/{id}' \
-H 'Authorization: Bearer <YOUR_TOKEN_HERE>'{ "message": "Recording deleted successfully." }