Recordings Upload
The Recordings feature allows you to transcribe audio files outside of live meeting recordings. Upload your own audio files or re-transcribe existing bot recordings with different models or settings.
Use Cases
- Transcribe pre-recorded audio (podcasts, interviews, voice memos)
- Re-transcribe a meeting bot recording with a different model
- Process audio files from other sources through Skribby's transcription pipeline
Creating a Recording
There are three ways to create a recording:
1. Upload a File Directly
Send the audio file as a multipart form upload:
curl -X POST https://platform.skribby.io/api/v1/recording \
-H "Authorization: Bearer YOUR_API_KEY" \
-F "recording_file=@/path/to/audio.mp3" \
-F "transcription_model=whisper" \
-F "lang=en"
2. Provide a URL
If your audio is hosted online:
curl -X POST https://platform.skribby.io/api/v1/recording \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"recording_url": "https://example.com/audio.mp3",
"transcription_model": "whisper",
"lang": "en"
}'
3. Re-transcribe from Meeting Bot
Re-process an existing bot recording with different settings:
curl -X POST https://platform.skribby.io/api/v1/recording \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"meeting_bot_id": "bot-uuid-here",
"transcription_model": "deepgram-v3",
"lang": "es"
}'
When using meeting_bot_id:
- The original recording file is reused
- Default settings are inherited from the bot
- You can override
transcription_model,lang,profanity_filter, andcustom_vocabulary
Accepted Formats
Skribby accepts common audio formats:
| Format | Extension | Notes |
|---|---|---|
| MP3 | .mp3 | Most common |
| WAV | .wav | Uncompressed |
| M4A | .m4a | Apple format |
| WebM | .webm | Web standard |
| OGG | .ogg | Open format |
| FLAC | .flac | Lossless |
All uploads are converted to WebM internally before processing.
Request Parameters
| Parameter | Required | Description |
|---|---|---|
transcription_model | Yes* | Model to use (see Billing for options) |
recording_file | Yes* | Audio file (multipart upload) |
recording_url | Yes* | URL to audio file |
meeting_bot_id | Yes* | Bot ID to re-transcribe |
lang | No | Language code (e.g., en, es, de) |
webhook_url | No | URL for status updates |
transcription_credentials | No | BYOK credential ID |
store_recording_for_1_year | No | Extend storage to 1 year (addon fee applies) |
profanity_filter | No | Censor profanity (model-dependent) |
custom_vocabulary | No | Array of words/phrases to improve recognition |
*One of recording_file, recording_url, or meeting_bot_id is required. When using meeting_bot_id, transcription_model is optional (inherits from bot).
Recording Lifecycle
| Status | Description |
|---|---|
processing | File received, being prepared for transcription |
transcribing | Transcription in progress |
finished | Transcription complete, results available |
failed | Processing or transcription failed |
invalid_api_key | BYOK credential was rejected by provider |
Webhook Events
If you provide a webhook_url, you'll receive events:
{
"recording_id": "uuid",
"type": "status_update",
"data": {
"old_status": "transcribing",
"new_status": "finished"
}
}
Viewing Results
Via API
curl https://platform.skribby.io/api/v1/recording/{id} \
-H "Authorization: Bearer YOUR_API_KEY"
Response includes:
status: Current processing statusrecording_url: Download link for the audiorecording_available_until: Expiration datetranscript: Transcription results (when finished)events: Processing history
Via Dashboard
Navigate to Recordings in the Skribby Dashboard to:
- View all recordings and their status
- Download audio files
- View transcripts
- See processing events and any errors
Billing
Recordings are billed based on audio duration:
| Component | Cost |
|---|---|
| Base processing | $0.10/hour |
| Transcription | Model-dependent (see Billing) |
| 1-year storage addon | $0.05/hour |
What Counts as Billable
- The full duration of the audio file (only charged on successful transcription)
- Re-transcribing via
meeting_bot_idincurs new transcription charges
Storage & Retention
| Setting | Retention Period |
|---|---|
| Default | 7 days |
store_recording_for_1_year: true | 1 year |
After expiration:
- Audio file is deleted
- Transcript remains accessible
recording_urlbecomes null