Skip to main content

Quick Start

Get a recording bot running in under 5 minutes.

Step 1: Get Your API Key

Using the Web Dashboard

  1. Navigate to http://localhost:3000
  2. Create an account or sign in
  3. Go to API Keys in the sidebar
  4. Click Create API Key
  5. 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:

  1. Start a container
  2. Join the meeting
  3. 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)
StatusDescription
READY_TO_DEPLOYBot created, waiting to be deployed
DEPLOYINGContainer is starting
JOINING_CALLBot is joining the meeting
IN_WAITING_ROOMWaiting to be admitted (if applicable)
IN_CALLBot is in the meeting, recording
CALL_ENDEDMeeting ended, processing recording
DONERecording available
FATALAn 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
}
}'
SettingDescriptionDefault
waitingRoomTimeoutLeave if stuck in waiting room (seconds)300
noOneJoinedTimeoutLeave if no one joins (seconds)300
everyoneLeftTimeoutLeave 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