
Video & Audio Processing API
ScreenApp's API enables you to automatically transcribe, summarize, and analyze video and audio content. Perfect for businesses looking to process customer calls, training videos, and meeting recordings at scale.
Key Use Cases
- Automatic Transcription & Summarization: Convert any video or audio into searchable text and concise summaries. Ideal for customer service teams, educational institutions, and content creators.
- Knowledge Management: Build a searchable repository of video content with automatic transcripts, summaries, and AI-powered insights. Perfect for training materials and company knowledge bases.
- Real-time Processing: Receive transcripts and summaries via webhooks as soon as recordings are processed. Great for integrating with CRM systems and customer service platforms.
- Embedded Recording: Add professional-grade recording capabilities to your application with our embeddable recorder that handles both screen and audio capture.
Plan Requirements & API Access
To use the ScreenApp API, you'll need:
- An active Business plan subscription
- API credentials from your ScreenApp dashboard
Getting Your API Credentials
1. Log into your ScreenApp account
2. Navigate to Settings → Integration
3. Here you'll find your:
- API Token
- Team ID
Keep these credentials secure and never share them publicly.
Quick Start
Want to get started right away? Follow these steps to integrate ScreenApp into your website:
1. Install the Plugin
Add this code to your website's HTML:
<script charset="UTF-8" type="text/javascript" src="https://screenapp.io/app/plugin.js"> </script> <script> function callback({ id, url }) { // When the recording ends, you'll get: // - id: unique identifier for the recording // - url: direct access URL for the recording } function loadScreenApp() { const screenApp = new window.ScreenApp('YOUR_PLUGIN_TOKEN', callback); screenApp.mount("#screenapp-plugin"); } </script> <div id="screenapp-plugin"></div>
2. Add the Trigger Button
Add a button or trigger element to your page:
<button onclick="loadScreenApp()">Start Recording</button>
3. Configure the Callback
Customize the callback function to handle recording completion:
function callback({ id, url }) { // Example: Send to your backend fetch('/api/recordings', { method: 'POST', body: JSON.stringify({ recordingId: id, recordingUrl: url }) }); // Example: Update UI document.getElementById('status').innerHTML = `Recording saved! View it at ${url}`; }
Authentication
All API requests require authentication. ScreenApp uses token-based authentication along with team-specific identifiers.
Credentials You'll Need
- API Token: Your secret API key
- Team ID: Your unique team identifier
Authentication Example
curl -X POST "https://api.screenapp.io/v2/files/upload" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "X-Team-ID: YOUR_TEAM_ID"
Key Use Cases
The ScreenApp API is particularly powerful for:
- Video & Audio Summarization: Automatically generate transcripts and summaries from recordings, with results delivered via webhooks
- Knowledge Management: Create a centralized repository of searchable recordings and their transcripts
- Embedded Recording: Add recording capabilities to your application and receive processed outputs like transcripts
- Integration Workflows: Connect with CRM systems, help desks, and other tools to automate your recording workflow
Core Concepts
Before diving into specific endpoints, let's understand the key concepts in ScreenApp:
- Recordings: Video and audio captures that can be uploaded and processed
- Teams: Groups that can share and manage recordings
- Webhooks: Real-time notifications for recording events and processing results
- Tags: Metadata that can be attached to recordings, teams, or user profiles
Recording Management
File Organization
ScreenApp organizes files using a team and folder structure:
- Team: Your organization's workspace
- Folders: Categories within your team (e.g., "Support Calls", "Training Videos")
- Files: Individual recordings with metadata
Tagging and Metadata
Add organizational context to your recordings:
// Add tags to a recording await fetch(`/v2/files/${fileId}/tag`, { method: 'POST', headers: { 'Authorization': 'Bearer YOUR_API_TOKEN', 'Content-Type': 'application/json' }, body: JSON.stringify({ key: "category", value: "customer-support" }) }); // Add multiple tags const tags = [ { key: "priority", value: "high" }, { key: "customer", value: "enterprise" }, { key: "agent", value: "john.doe" } ]; for (const tag of tags) { await fetch(`/v2/files/${fileId}/tag`, { method: 'POST', headers: { 'Authorization': 'Bearer YOUR_API_TOKEN', 'Content-Type': 'application/json' }, body: JSON.stringify(tag) }); }
Uploading Large Files
For files larger than 5MB, ScreenApp uses multipart uploads to ensure reliable file transfer.
1. Initialize Upload
Start by initializing a multipart upload session:
PUT /v2/files/upload/multipart/init/{teamId}/{folderId}
const response = await fetch('/v2/files/upload/multipart/init/team123/folder456', { method: 'PUT', headers: { 'Authorization': 'Bearer YOUR_API_TOKEN' } }); const { uploadId, fileId } = await response.json();
Response:
{ "uploadId": "abc123", "fileId": "file789" }
2. Upload Parts
Upload each file part using the pre-signed URLs:
PUT /v2/files/upload/multipart/url/{teamId}/{folderId}/{fileId}/{uploadId}/{partNumber}
// For each file part const response = await fetch('/v2/files/upload/multipart/url/team123/folder456/file789/abc123/1'); const { url } = await response.json(); await fetch(url, { method: 'PUT', body: filePart });
3. Finalize Upload
After all parts are uploaded, finalize the upload:
PUT /v2/files/upload/multipart/finalize/{teamId}/{folderId}/{fileId}/{uploadId}
Webhook Integration
Setting Up Webhooks
To receive real-time updates about recordings, set up webhooks:
POST /v2/team/{teamId}/integrations/webhook
await fetch('/v2/team/team123/integrations/webhook', { method: 'POST', headers: { 'Authorization': 'Bearer YOUR_API_TOKEN', 'Content-Type': 'application/json' }, body: JSON.stringify({ url: 'https://your-domain.com/webhook', name: 'Recording Updates' }) });
Webhook Events
Your webhook endpoint will receive events in this format:
{ "event": "recording.completed", "fileId": "file789", "teamId": "team123", "data": { "url": "https://screenapp.io/recording/file789", "duration": 300, "status": "processed" } }
Common events include:
recording.started
recording.completed
recording.processed
recording.failed
Advanced Features
AI Analysis
Use AI to analyze your recordings for insights:
// Request AI analysis of a recording const analysis = await fetch(`/v2/files/${fileId}/ask/multimodal`, { method: 'POST', headers: { 'Authorization': 'Bearer YOUR_API_TOKEN', 'Content-Type': 'application/json' }, body: JSON.stringify({ question: "What are the key discussion points?", options: { format: "bullet-points", maxLength: 500 } }) });
Batch Operations
Efficiently manage multiple recordings:
// Tag multiple recordings async function batchTag(fileIds, tag) { const promises = fileIds.map(fileId => fetch(`/v2/files/${fileId}/tag`, { method: 'POST', headers: { 'Authorization': 'Bearer YOUR_API_TOKEN', 'Content-Type': 'application/json' }, body: JSON.stringify(tag) }) ); await Promise.all(promises); }
Error Handling
Common Error Codes
400
: Invalid request parameters403
: AI usage limit exceeded404
: Resource not found500
: Server error
Getting Help
Need assistance? Here are your options:
- Visit our Help Center
- Check our API Reference
- Contact support at support@screenapp.io
Updates and Changelog
Version 2.0.0 (Current)
- Added multipart upload support
- Introduced AI-powered recording analysis
- Enhanced webhook system with retry logic
Version 1.0.0 (Deprecated)
- Initial API release
- Basic recording functionality
- Simple webhook support