Skip to content

Server-Sent Events

Subscribe to real-time job status updates using Server-Sent Events (SSE).

Server-Sent Events provide a persistent connection for streaming job updates from the server to your client in real-time.

Real-Time Updates

Get instant notifications as job status changes

Progress Tracking

Monitor processing progress for long-running jobs

Simple Protocol

Built on standard HTTP, easy to implement

Terminal window
GET /api/v1/jobs/{id}/stream
EventDescription
statusJob status changed
progressProcessing progress update
completeJob completed (success or failure)
errorError occurred
event: status
data: {"status":"pending","message":"Job queued"}
event: status
data: {"status":"processing","message":"Processing started"}
event: progress
data: {"percent":50,"message":"Processing frame 50/100"}
event: complete
data: {"status":"completed","result":{...}}
const eventSource = new EventSource(
`http://localhost:8080/api/v1/jobs/${jobId}/stream`
);
eventSource.addEventListener('status', (e) => {
const data = JSON.parse(e.data);
console.log('Status:', data.status);
updateUI(data);
});
eventSource.addEventListener('progress', (e) => {
const data = JSON.parse(e.data);
console.log('Progress:', data.percent + '%');
updateProgressBar(data.percent);
});
eventSource.addEventListener('complete', (e) => {
const data = JSON.parse(e.data);
console.log('Completed:', data);
eventSource.close();
showResult(data);
});
eventSource.addEventListener('error', (e) => {
console.error('Error:', e);
eventSource.close();
});

Progress Bars

Show real-time progress in your UI

Live Dashboards

Monitor multiple jobs simultaneously

Notifications

Trigger UI notifications on status changes