Synento docs

Synento documentation

Synento is an agent-native video API. A coding agent can set up a project, write the integration, and prove media arrived by reading the session manifest. Live video, replay, and MP4 export all read the same durable streams.

View as Markdown

Synento is an agent-native video API. A coding agent can set up a project, write the integration, and prove media arrived by reading the session manifest. Live video, replay, and MP4 export all read the same durable streams.

  • Getting started: set up your first project and stream in minutes
  • Core concepts: projects, sessions, and the stream-native recording model
  • API reference: every endpoint, with request and response examples

SDK packages

PackageUse
@synento/clientBrowser: publish and receive live audio, video, and screen share
@synento/reactReact provider, hooks, and components over @synento/client
@synento/nodeServer: create sessions, mint connection tokens, manage projects
@synento/playerEmbeddable replay engine with layout composition
@synento/cliCommand-line project and session management

Guides

Examples

Copy-paste examples ready to run:

Key features

FeatureDescription
Live streamingMulti-participant audio and video over WebSocket, encoded in the browser with WebCodecs; frame rate backs off on a congested connection
Stream-native recordingEvery session is recorded as it happens: separated tracks (cam/mic/screen) plus a typed event timeline, layout-agnostic
Composable replayConfigurable layouts (grid, active-speaker, presenter, screen-share) at playback time
Director trackDeterministic active-speaker switching, computed when a session ends and stored with the recording
ReplayReplay with speed control (0.25x-4x), seek, layout switching, and windowed reading
MP4 exportAsync export with layout (grid, presenter) and orientation (landscape, vertical) parameters
Public sessions and linksShare sessions publicly or via expiring token-based replay links
WebhooksEvent-driven callbacks for session lifecycle events
SDK and CLITypeScript SDK and command-line tool for programmatic access

API overview

Everything goes through REST APIs. Authenticate with an API key in the Authorization: Bearer sk_live_... header. Live media travels over a WebSocket, using a connection token minted by the REST API.

All JSON responses follow a standard envelope format:

{ "data": { ... }, "error": null }           // Success
{ "data": null, "error": { "code": "...", "message": "...", "status": 400 } }  // Error

Key endpoint categories:

  • POST /v1/projects: create projects
  • POST /v1/sessions: create live sessions
  • POST /v1/sessions/:id/connection: get connection tokens for WebSocket streaming
  • GET /v1/sessions/:id/manifest: tracks, time bounds, and capabilities
  • GET /v1/sessions/:id/playback: windowed replay of recorded sessions
  • GET /v1/sessions/:id/export: enqueue MP4 export (layout, orientation)
  • GET /v1/exports/:jobId: poll export status and download URL

See the full API reference for every endpoint, or the machine-readable spec at synento.com/openapi.json.

On this page