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

Create Recording

Request

Upload and transcribe a recording file. You can either upload a file directly or provide a URL to a publicly accessible file.

Note: Either recording_file or recording_url is required, but not both.

Security
bearerAuth
Bodyrequired
transcription_modelstringrequired

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

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

Audio or video file to be transcribed. Supported formats: MP3, WAV, MP4, WEBM, M4A, FLAC. Maximum file size: 1GB.

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
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 lang=en \
  -F webhook_url=http://example.com \
  -F store_recording_for_1_year=false \
  -F profanity_filter=false

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

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, "created_at": "2019-08-24T14:15:22Z" }

Get Recording

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

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, "created_at": "2019-08-24T14:15:22Z" }