
- Events. Seam emits a
camera.activatedevent when a camera detects motion and adevice.doorbell_rangevent when someone presses a video doorbell. - Event media. Each event lists the IDs of the clip and thumbnail captured for it. You exchange an ID for a short-lived URL with
/media/get. - Live video. You play a camera’s live feed in your user’s browser over WebRTC with the
/cameras/live_viewsendpoints.
Camera APIs are in public beta. Live video is enabled by default in production and sandbox workspaces. You don’t need to request access. The request and response shapes for event media and live video may change before general availability.
Supported Providers
Each camera reports the
can_stream_live_video capability flag at the top level of its device object. Check that it is true before offering a live view, and check it again immediately before opening the session. It is true only when the provider supports live video and the camera is online. It is false when live video is unsupported or the camera is offline; local cameras also need their paired Seam Bridge online.
Event Media
When a camera detects motion or a doorbell is pressed, the event’smedia_ids array lists one ID for each piece of media Seam expects for it, usually a video clip and a thumbnail image.
- Subscribe a webhook to
camera.activatedanddevice.doorbell_rang. - Store each event’s
media_idswith itsevent_idanddevice_id. - When you need the media, call
/media/getwith amedia_id. The response includes the media’sstatusand, once it’savailable, a signedurlthat expires within minutes. - To download the file from a server-side client, pass
format=redirect. Seam responds with a302to the signed URL.
/media/get again whenever you need a fresh URL.
See Retrieve Event Media for the full workflow, statuses, and errors.
Live Video
Live video streams straight from the camera to your user’s browser. Your servers never handle the video, and your API key never reaches the browser.- On your backend, use your API key to create a client session that has access to the camera’s connected account, and send its token to the browser.
- In the browser, call
/cameras/live_views/createfor a camera whosecan_stream_live_videoistrue. - Send the browser’s WebRTC offer to
/cameras/live_views/offer, then apply the answer to play the video. - Call
/cameras/live_views/stopwhen your user closes the player.
401 Unauthorized.
See Stream Live Video for a complete browser example and provider session limits.
Next Steps
- Retrieve Event Media — Fetch the clip and thumbnail for a camera event.
- Stream Live Video — Play a camera’s live feed in the browser.
- Ring Cameras — Connect Ring cameras and video doorbells.
- Arlo Cameras — Connect an Arlo account.
- Tapo Cameras — Connect Tapo cameras through a Seam Bridge.
- Reolink Cameras — Connect a standalone Reolink camera through a Seam Bridge.
- UniFi Protect Cameras — Connect a UniFi Protect console through a Seam Bridge.