# Skribby REST API
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](https://platform.skribby.io)** for a free account
2. **[Generate API key](https://platform.skribby.io/?to=api-keys)** from your dashboard
3. **Create your first bot:**
```bash
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"
}'
```
## Webhooks
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:
```json
{
"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 bot
- `new_status` (string): The new status of the bot
**Example:**
```json
{
"type": "status_update",
"data": {
"old_status": "joining",
"new_status": "recording"
}
}
```
Version: v1
## Servers
Production server
```
https://platform.skribby.io/api/v1
```
## Security
### bearerAuth
API key authentication. Get your API key from the [Skribby dashboard](https://platform.skribby.io?to=api-keys).
Include it in the Authorization header: `Authorization: Bearer YOUR_API_KEY`
Type: http
Scheme: bearer
## Download OpenAPI description
[Skribby REST API](https://docs.skribby.io/_bundle/rest-api/openapi.yaml)
## Bot Operations
Create and manage meeting bots
### Create Bot
- [POST /bot](https://docs.skribby.io/rest-api/openapi/bot-operations/createbot.md): Create a new meeting bot to join and record a meeting.
### Validate Bot Configuration
- [POST /bot/validate](https://docs.skribby.io/rest-api/openapi/bot-operations/validatebot.md): Validate a meeting bot configuration without actually creating or starting the bot.
This endpoint accepts the same parameters as the Create Bot endpoint and performs
all validation checks including meeting URL format, authenticated account validity,
and configuration parameters.
Use this endpoint to verify your bot configuration before deploying, or to validate
user input in your application before scheduling a bot.
### Get Bot
- [GET /bot/{id}](https://docs.skribby.io/rest-api/openapi/bot-operations/getbot.md): Retrieve information about a specific bot, including its current status,
transcript (if available), participants, and lifecycle events.
### Update Bot
- [PATCH /bot/{id}](https://docs.skribby.io/rest-api/openapi/bot-operations/updatebot.md): Update a scheduled meeting bot. All parameters are optional, provide only the fields you want to change; unspecified fields will remain unchanged.
### Delete Bot Data
- [DELETE /bot/{id}](https://docs.skribby.io/rest-api/openapi/bot-operations/deletebot.md): Delete all data related to the bot, including transcription and recording.
Bots can only be deleted if they are scheduled or not in an active state (booting, joining, recording, processing or transcribing).
Be aware, this action is not reversible!
### Send Chat Message
- [POST /bot/{id}/chat-message](https://docs.skribby.io/rest-api/openapi/bot-operations/sendchatmessage.md): Send a chat message as the meeting bot
### Stop Bot
- [POST /bot/{id}/stop](https://docs.skribby.io/rest-api/openapi/bot-operations/stopbot.md): Stop a running meeting bot. This will cause the bot to leave the meeting
and begin processing the recording.
### Get Scheduled Bots
- [GET /bot/scheduled](https://docs.skribby.io/rest-api/openapi/bot-operations/getscheduledbots.md): Retrieve all scheduled bots that haven't started yet. Returns an array
of bot objects with status "scheduled".
## Recording Operations
Upload and transcribe recordings
### Create Recording
- [POST /recording](https://docs.skribby.io/rest-api/openapi/recording-operations/createrecording.md): 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.
### Get Recording
- [GET /recording/{id}](https://docs.skribby.io/rest-api/openapi/recording-operations/getrecording.md): Retrieve information about a specific recording, including its transcription
status and transcript (if available).
### Delete Recording Data
- [DELETE /recording/{id}](https://docs.skribby.io/rest-api/openapi/recording-operations/deleterecording.md): Delete all data related to the recording, including transcription and recording.
Be aware, this action is not reversible!