WAVE SDK
Build with the WAVE API using our official TypeScript and Python SDKs. 35 API modules covering every WAVE product.
Installation
TypeScript / Node.js
pnpm add @wave/sdk
Python
pip install wave-sdk
Quick Start
import { Wave } from '@wave/sdk';
const wave = new Wave({
apiKey: process.env.WAVE_API_KEY!,
organizationId: 'org_123',
});
// Stream
const stream = await wave.pipeline.create({ title: 'Live', protocol: 'webrtc' });
await wave.pipeline.start(stream.id);
// Virtual Device Bridge
const device = await wave.prism.createDevice({
name: 'PTZ Cam', type: 'camera',
source_protocol: 'ndi', source_endpoint: 'NDI-1', node_id: 'node_abc',
});
// Analytics
const viewers = await wave.pulse.getViewerAnalytics({ time_range: '24h' });
API Modules
Streaming & Production
| Module | Description |
|---|
| Live stream lifecycle, protocols, recordings |
| Multi-camera production, scenes, transitions |
| AI auto-directing (Ghost Producer) |
Device Management
| Module | Description |
|---|
| Virtual Device Bridge (NDI/ONVIF/Dante to USB) |
| Desktop Node fleet management |
| Desktop Node app control |
| USB device relay |
Infrastructure
| Module | Description |
|---|
| Multi-region failover |
| CDN and edge workers |
Analytics & Engagement
| Module | Description |
|---|
| Analytics, BI, dashboards |
| Polls, Q&A, reactions |
| Sentiment analysis |
Content
| Module | Description |
|---|
| Video clips and highlights |
| Video editing |
| Text-to-speech, voice cloning |
| Auto-captions, translation |
| Video chapters |
| Transcription |
| Content search |
| Scene detection |
Communication
| Module | Description |
|---|
| Voice calls, conferences |
| Real-time collaboration |
| Zoom integration |
| Notification preferences |
Commerce & Distribution
| Module | Description |
|---|
| Recording storage, VOD |
| Templates and plugins |
| Third-party integrations |
| Social simulcast |
| Monetization |
| Digital signage |
| Dynamic QR codes |
| Podcast production |
| Slides-to-video |
| Content protection |
| AI production assistant |
Authentication
All API calls require an API key. Get yours from the .
const wave = new Wave({
apiKey: 'wv_live_...', // Required
organizationId: 'org_...', // Required for multi-tenant
});
Error Handling
import { WaveError, RateLimitError } from '@wave/sdk';
try {
await wave.pipeline.get('invalid');
} catch (error) {
if (error instanceof RateLimitError) {
// Retry after error.retryAfter ms
} else if (error instanceof WaveError) {
console.log(error.code, error.message, error.statusCode);
}
}
Rate Limits
| Tier | Limit |
|---|
| Free | 100 req/min |
| Pro | 1,000 req/min |
| Enterprise | 10,000 req/min |
SDKs & Languages
| Language | Package | Status |
|---|
| TypeScript | @wave/sdk | 35 modules |
| Python | wave-sdk | 35 modules |
Resources