Developer API
API Documentation
Integrate allstrm into your applications and workflows with our RESTful API.
Quick Start
- 1Get your API key from Dashboard → Settings → API
- 2Base URL:
https://allstrm.com/api - 3Include
Authorization: Bearer YOUR_API_KEYin all requests
curl -X POST https://allstrm.com/api/rooms \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "Weekly Product Update",
"mode": "studio",
"engine": "livekit"
}'API Keys
Secure authentication with API keys. Create multiple keys with different permissions.
Webhooks
Real-time notifications for broadcast events, recording completion, and clip generation.
Rate Limiting
Generous rate limits with clear headers. 1000 requests/minute on Pro plans.
Async Operations
Long-running operations return immediately with job IDs. Poll or use webhooks for status.
API Endpoints
Rooms
POST
/api/roomsGET
/api/roomsGET
/api/rooms/{roomId}PATCH
/api/rooms/{roomId}POST
/api/rooms/{roomId}/tokenPOST
/api/rooms/{roomId}/inviteGET
/api/rooms/{roomId}/chatRecordings
POST
/api/recording/startPOST
/api/recording/stopPOST
/api/egress/startPOST
/api/egress/stopAI Clips
GET
/api/clipsPOST
/api/clipsGET
/api/clips/{id}PATCH
/api/clips/{id}DELETE
/api/clips/{id}POST
/api/clips/ai-generateDestinations
GET
/api/destinationsPOST
/api/destinationsPOST
/api/destinations/{id}/stopGET
/api/oauth/providersBilling and Limits
GET
/api/tier-limitsGET
/api/users/me/tierPOST
/api/stripe/checkoutGET
/api/stripe/pricingJavaScript/TypeScript SDK
import { AllstrmClient } from '@allstrm/sdk';
const client = new AllstrmClient({
apiKey: process.env.ALLSTRM_API_KEY
});
// Create a new room
const room = await client.rooms.create({
name: 'Weekly Product Update',
mode: 'studio',
engine: 'livekit'
});
// Create a token when a participant joins
const token = await client.rooms.createToken(room.id);
// Listen for events via webhooks
client.webhooks.on('broadcast.ended', async (event) => {
console.log('Broadcast ended:', event.data.id);
// Auto-generate AI clips
await client.clips.generate({
recordingId: event.data.recordingId,
count: 5
});
});Example Response
{
"id": "room_2xaK9mNop",
"name": "Weekly Product Update",
"mode": "studio",
"engine": "livekit",
"status": "idle",
"created_at": "2025-01-15T10:30:00Z",
"studio_url": "https://allstrm.com/studio/room_2xaK9mNop"
}Webhook Events
Subscribe to these events to receive real-time notifications about your broadcasts.
Broadcast Events
broadcast.createdbroadcast.startedbroadcast.endedbroadcast.failed
Recording Events
recording.readyrecording.deleted
Clip Events
clip.generatedclip.failed
Guest Events
guest.joinedguest.left
Need Help?
Our developer support team is here to help you integrate allstrm into your application.