Skip to content

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.

Quick Start

  1. Sign up for a free account
  2. Generate API key from your dashboard
  3. 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"
  }'
Download OpenAPI description
Overview
Languages
Servers
Production server

https://platform.skribby.io/api/v1/

Bot Operations

Create and manage meeting bots

Operations

Recording Operations

Upload and transcribe recordings

Operations

Request

Upload and transcribe a recording file or re-transcribe an existing meeting bot recording.

You have three options:

  1. Upload a file directly - Provide recording_file and transcription_model
  2. Provide a URL - Provide recording_url and transcription_model
  3. 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.

Security
bearerAuth
Bodyrequired
transcription_modelstring

The transcription model to use (realtime models not supported for uploads)

Enum"whisper""deepgram""assembly-ai""speechmatics""rev-ai""elevenlabs""gladia"
recording_filestring(binary)

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.

meeting_bot_idstring(uuid)

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.

langstring

Language of the recording content, which will be provided to the transcription model.
Refer to the Bot Language page for more information.

Example: "en"
webhook_urlstring(uri)

URL to receive status updates during transcription

store_recording_for_1_yearboolean

Recordings are stored for 1 day by default. This extends storage to 1 year.
Refer to your billing page for cost implications and availability.

Default false
profanity_filterboolean

Whether to censor profanity in transcription.

Default false
custom_vocabularyArray of strings

Provide certain words or phrases to improve transcription. Only supported on certain models, refer to your billing page to view availability per model.

transcription_credentialsstring(uuid)

Optional credential identifier issued by the Skribby platform when bringing your own API key for the selected transcription model.

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-e0416e869d67

Responses

Recording created successfully

Bodyapplication/json
idstring(uuid)

Unique recording identifier

statusstring

Current status of the recording

Enum"transcribing""finished""failed"
webhook_urlstring or null(uri)

Webhook URL for receiving status updates

recording_urlstring or null(uri)

URL to the original recording file

recording_available_untilstring or null(date-time)

When the recording will be deleted

langstring or null

Language specified when creating the recording

detected_langstring or null

Language detected from the audio

transcriptArray of objects(TranscriptSegment)

Transcript segments

transcription_modelstring

Model used for transcription

eventsArray of objects(Event)

List of processing events

profanity_filterboolean

Whether profanity filter was enabled

custom_vocabularyArray of strings

Words or phrases provided when creating meeting bot for transcription model

created_atstring(date-time)

When the recording was uploaded

Response
application/json
{ "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" }

Request

Retrieve information about a specific recording, including its transcription status and transcript (if available).

Security
bearerAuth
Path
idstring(uuid)required

Recording ID

curl -i -X GET \
  'https://platform.skribby.io/api/v1/recording/{id}' \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>'

Responses

Recording information retrieved successfully

Bodyapplication/json
idstring(uuid)

Unique recording identifier

statusstring

Current status of the recording

Enum"transcribing""finished""failed"
webhook_urlstring or null(uri)

Webhook URL for receiving status updates

recording_urlstring or null(uri)

URL to the original recording file

recording_available_untilstring or null(date-time)

When the recording will be deleted

langstring or null

Language specified when creating the recording

detected_langstring or null

Language detected from the audio

transcriptArray of objects(TranscriptSegment)

Transcript segments

transcription_modelstring

Model used for transcription

eventsArray of objects(Event)

List of processing events

profanity_filterboolean

Whether profanity filter was enabled

custom_vocabularyArray of strings

Words or phrases provided when creating meeting bot for transcription model

created_atstring(date-time)

When the recording was uploaded

Response
application/json
{ "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" }

Request

Delete all data related to the recording, including transcription and recording.
Be aware, this action is not reversible!

Security
bearerAuth
Path
idstring(uuid)required

Recording ID

curl -i -X DELETE \
  'https://platform.skribby.io/api/v1/recording/{id}' \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>'

Responses

Recording deleted successfully

Bodyapplication/json
messagestring
Example: "Recording deleted successfully."
Response
application/json
{ "message": "Recording deleted successfully." }