Real-time video processing and AI inference at the network edge
Base URL
https://api.wave.com/v1/edgeAuthentication
Bearer {api_key}Rate Limit
50,000 frames/minute
Processing SLA
<15ms per frame
/processorsDeploy a new frame processor to edge locations
{
"name": "content-moderation-v2",
"description": "Real-time NSFW detection and blur",
"code": "export default async function process(frame, ctx) {\n const result = await ctx.model.infer(frame);\n if (result.nsfw > 0.85) {\n return { action: 'blur', regions: result.regions };\n }\n return { action: 'pass' };\n}",
"runtime": "javascript",
"model": "moderation-v2",
"gpu": true,
"regions": ["us-east-1", "us-west-2", "eu-west-1", "ap-southeast-1"],
"timeout": 12,
"resources": {
"tier": "gpu-standard",
"cpu": "4-core",
"memory": "8GB",
"gpu": "nvidia-t4"
},
"config": {
"confidenceThreshold": 0.85,
"blurIntensity": 25,
"sampleRate": 5
}
}{
"success": true,
"data": {
"id": "proc_a1b2c3d4e5f6",
"name": "content-moderation-v2",
"status": "deploying",
"version": 1,
"runtime": "javascript",
"model": "moderation-v2",
"gpu": true,
"regions": ["us-east-1", "us-west-2", "eu-west-1", "ap-southeast-1"],
"deploymentProgress": {
"us-east-1": "deploying",
"us-west-2": "pending",
"eu-west-1": "pending",
"ap-southeast-1": "pending"
},
"consoleUrl": "https://console.wave.com/edge/proc_a1b2c3d4e5f6",
"createdAt": "2024-11-20T15:45:00Z"
}
}import { WaveClient } from '@wave/api-client';
const wave = new WaveClient({ apiKey: process.env.WAVE_API_KEY });
const processor = await wave.edge.processors.create({
name: 'content-moderation-v2',
description: 'Real-time NSFW detection and blur',
runtime: 'javascript',
model: 'moderation-v2',
gpu: true,
regions: ['us-east-1', 'us-west-2'],
timeout: 12,
resources: {
tier: 'gpu-standard',
},
code: `
export default async function process(frame, ctx) {
const result = await ctx.model.infer(frame);
if (result.nsfw > 0.85) {
return { action: 'blur', regions: result.regions };
}
return { action: 'pass' };
}
`,
});
console.log(`Processor deployed: ${processor.id}`);/processorsList all deployed processors with filtering
/processors/:idGet detailed processor information
/processors/:idUpdate processor configuration or code
/processors/:id/processProcess a single video frame through the processor
/processors/:id/batchProcess multiple frames in a single request
/processors/:id/metricsGet detailed processor performance metrics
/processors/:id/pausePause processor (frames bypass processing)
/processors/:id/resumeResume a paused processor
/processors/:id/rollbackRollback to a previous processor version
/processors/:idDelete a processor and stop all processing
/modelsList available AI models for edge processing
/regionsList available edge regions with status
400 Bad RequestInvalid frame format or missing required fields
401 UnauthorizedInvalid or missing API key
408 Processing TimeoutFrame processing exceeded <15ms SLA
429 Too Many RequestsRate limit exceeded (50,000 frames/minute)
503 Service UnavailableRegion temporarily unavailable
507 Insufficient ResourcesGPU/CPU capacity unavailable in region
Process 1-5 fps for analysis, full rate only for inference that modifies frames.
Alert if P99 exceeds 14ms to stay within <15ms SLA guarantee.
Cache model results for similar frames to reduce redundant processing.
Start with 2-3 regions, validate performance, then expand globally.
For VOD processing, batch API is 40% more efficient than single-frame calls.
Keep previous versions ready. Auto-rollback on error rate spikes.