Quick Start
Get a recording bot running in under 5 minutes.
Step 1: Get Your API Key
Using the Web Dashboard
- Navigate to http://localhost:3000
- Create an account or sign in
- Go to API Keys in the sidebar
- Click Create API Key
- Copy the generated key (it won't be shown again!)
Using the API
# Register a new user
curl -X POST http://localhost:8000/api/v1/auth/register \
-H "Content-Type: application/json" \
-d '{
"email": "you@example.com",
"password": "your-password"
}'
# Create an API key (use the access_token from registration)
curl -X POST http://localhost:8000/api/v1/api-keys \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{"name": "My API Key"}'
Step 2: Create a Bot
export API_KEY="your-api-key"
curl -X POST http://localhost:8000/api/v1/bots \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"meetingInfo": {
"platform": "google",
"meetingUrl": "https://meet.google.com/abc-defg-hij"
},
"meetingTitle": "My First Recording",
"botDisplayName": "RecordBot"
}'
Response:
{
"id": 1,
"botDisplayName": "RecordBot",
"meetingTitle": "My First Recording",
"status": "READY_TO_DEPLOY",
"meetingInfo": {
"platform": "google",
"meetingUrl": "https://meet.google.com/abc-defg-hij"
},
"createdAt": "2024-01-15T10:30:00Z"
}
Step 3: Deploy the Bot
curl -X POST http://localhost:8000/api/v1/bots/1/deploy \
-H "Authorization: Bearer $API_KEY"
The bot will:
- Start a container
- Join the meeting
- Begin recording automatically
Step 4: Monitor the Bot
Check Status
curl http://localhost:8000/api/v1/bots/1 \
-H "Authorization: Bearer $API_KEY"
Watch Events
curl http://localhost:8000/api/v1/bots/1/events \
-H "Authorization: Bearer $API_KEY"
View Logs
curl http://localhost:8000/api/v1/bots/1/logs \
-H "Authorization: Bearer $API_KEY"
Step 5: Get the Recording
Once the meeting ends and the bot status is DONE:
# Get download URL
curl http://localhost:8000/api/v1/recordings/1/download \
-H "Authorization: Bearer $API_KEY"
Response:
{
"downloadUrl": "http://localhost:9000/meetbot-recordings/...",
"expiresInSeconds": 3600
}
Bot Lifecycle
READY_TO_DEPLOY → DEPLOYING → JOINING_CALL → IN_WAITING_ROOM → IN_CALL → CALL_ENDED → DONE
↓
FATAL (on error)
| Status | Description |
|---|---|
READY_TO_DEPLOY | Bot created, waiting to be deployed |
DEPLOYING | Container is starting |
JOINING_CALL | Bot is joining the meeting |
IN_WAITING_ROOM | Waiting to be admitted (if applicable) |
IN_CALL | Bot is in the meeting, recording |
CALL_ENDED | Meeting ended, processing recording |
DONE | Recording available |
FATAL | An error occurred |
Automatic Leave Settings
Configure when the bot should automatically leave:
curl -X POST http://localhost:8000/api/v1/bots \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"meetingInfo": {
"platform": "google",
"meetingUrl": "https://meet.google.com/abc-defg-hij"
},
"automaticLeave": {
"waitingRoomTimeout": 300,
"noOneJoinedTimeout": 300,
"everyoneLeftTimeout": 60
}
}'
| Setting | Description | Default |
|---|---|---|
waitingRoomTimeout | Leave if stuck in waiting room (seconds) | 300 |
noOneJoinedTimeout | Leave if no one joins (seconds) | 300 |
everyoneLeftTimeout | Leave after everyone leaves (seconds) | 60 |
Force Stop a Bot
curl -X POST http://localhost:8000/api/v1/bots/1/kill \
-H "Authorization: Bearer $API_KEY"
Next Steps
- Platform Guides - Platform-specific details
- API Reference - Full API documentation
- Webhooks - Real-time notifications