Skip to main content
Developer API

API Documentation

Integrate allstrm into your applications and workflows with our RESTful API.

Quick Start

  1. 1Get your API key from Dashboard → Settings → API
  2. 2Base URL: https://allstrm.com/api
  3. 3Include Authorization: Bearer YOUR_API_KEY in 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/rooms
GET/api/rooms
GET/api/rooms/{roomId}
PATCH/api/rooms/{roomId}
POST/api/rooms/{roomId}/token
POST/api/rooms/{roomId}/invite
GET/api/rooms/{roomId}/chat

Recordings

POST/api/recording/start
POST/api/recording/stop
POST/api/egress/start
POST/api/egress/stop

AI Clips

GET/api/clips
POST/api/clips
GET/api/clips/{id}
PATCH/api/clips/{id}
DELETE/api/clips/{id}
POST/api/clips/ai-generate

Destinations

GET/api/destinations
POST/api/destinations
POST/api/destinations/{id}/stop
GET/api/oauth/providers

Billing and Limits

GET/api/tier-limits
GET/api/users/me/tier
POST/api/stripe/checkout
GET/api/stripe/pricing

JavaScript/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.created
  • broadcast.started
  • broadcast.ended
  • broadcast.failed

Recording Events

  • recording.ready
  • recording.deleted

Clip Events

  • clip.generated
  • clip.failed

Guest Events

  • guest.joined
  • guest.left

Need Help?

Our developer support team is here to help you integrate allstrm into your application.