Skip to main content
Developer API

API Documentation

Integrate Barikhan Studio into your applications and workflows with our RESTful API.

Quick Start

  1. 1Get your API key from Dashboard → Settings → API
  2. 2Base URL: https://api.barikhan.studio/v1
  3. 3Include Authorization: Bearer YOUR_API_KEY in all requests
curl -X POST https://api.barikhan.studio/v1/broadcasts \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "title": "Weekly Product Update",
    "description": "Live product demo and Q&A",
    "scheduled_at": "2025-02-01T15:00:00Z",
    "destinations": ["youtube", "linkedin"]
  }'

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

Broadcasts

POST/api/v1/broadcasts
GET/api/v1/broadcasts
GET/api/v1/broadcasts/{id}
PATCH/api/v1/broadcasts/{id}
DELETE/api/v1/broadcasts/{id}
POST/api/v1/broadcasts/{id}/start
POST/api/v1/broadcasts/{id}/stop

Recordings

GET/api/v1/recordings
GET/api/v1/recordings/{id}
GET/api/v1/recordings/{id}/download
DELETE/api/v1/recordings/{id}

AI Clips

POST/api/v1/clips/generate
GET/api/v1/clips
GET/api/v1/clips/{id}
PATCH/api/v1/clips/{id}
DELETE/api/v1/clips/{id}

Destinations

GET/api/v1/destinations
POST/api/v1/destinations
DELETE/api/v1/destinations/{id}

Webhooks

GET/api/v1/webhooks
POST/api/v1/webhooks
DELETE/api/v1/webhooks/{id}

JavaScript/TypeScript SDK

import { BksClient } from '@barikhan-studio/sdk';

const client = new BksClient({
  apiKey: process.env.BKS_API_KEY
});

// Create a new broadcast
const broadcast = await client.broadcasts.create({
  title: 'Weekly Product Update',
  description: 'Live product demo and Q&A',
  scheduledAt: new Date('2025-02-01T15:00:00Z'),
  destinations: ['youtube', 'linkedin']
});

// Start the broadcast when ready
await client.broadcasts.start(broadcast.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": "bc_2xaK9mNop",
  "title": "Weekly Product Update",
  "description": "Live product demo and Q&A",
  "status": "scheduled",
  "scheduled_at": "2025-02-01T15:00:00Z",
  "destinations": [
    { "platform": "youtube", "status": "ready" },
    { "platform": "linkedin", "status": "ready" }
  ],
  "created_at": "2025-01-15T10:30:00Z",
  "studio_url": "https://barikhan.studio/studio/bc_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 Barikhan Studio into your application.