Changelog/October 21, 2026
October 21, 2026

Introducing Our New Camera API: Events, Recordings, and Live Video

Changelog image for Introducing Our New Camera API: Events, Recordings, and Live Video

Today, we’re thrilled to announce the official public beta of our Seam Camera API. After years of prototyping and iteration, we think we’ve finally landed on the developer experience we were looking for. As part of this release, we’re introducing support for Tapo, Ring, Arlo, and Ubiquiti UniFi, with Hikvision coming soon.

We’ve spent so much time thinking about cameras because we see them as a universal sensor for the physical world. They can help us understand whether a space is occupied, a package has arrived, or a gate is open—and that context can drive workflows and automations. Our goal with this API is to make the events and footage behind those experiences easier to build on.

TapoRingArloUbiquiti UniFiHikvision (coming soon)

Your app can now receive motion events from Tapo, Arlo, Ring, and Ubiquiti UniFi. For Tapo, Arlo, and Ring, you can also retrieve available clips and thumbnails through one endpoint and stream live video into your app. Ring doorbells also report button presses.

From motion to a recording
Event clipSample footage
Shipping yard · Camera 0100:00
Motion detectedCamera activation
Webhook receivedcamera.activated
Clip available/media/get
Sample footage and illustrative events. Motion triggers a webhook; your app retrieves the recording.

Cameras work through the same connected accounts, devices and webhooks you already use for locks and thermostats, so a camera is just another device in your workspace.

Set SEAM_API_KEY on your server and replace the example ID with a media_id from a verified camera webhook. Repeat for each ID in the event. The tabs include every supported SDK, Java and Go HTTP examples, the Seam CLI, and cURL.

1import { Seam } from "seam"
2
3const seam = new Seam() // Reads SEAM_API_KEY.
4const media = await seam.media.get({
5  media_id: "01a0d985-621c-7b3e-9f2d-4a5b6c7d8e9f",
6})
7
8// The url expires within minutes. Call again for a fresh one.
9if (media.status === "available") console.log(media.url)

The recording and live-view integration details for Tapo, Arlo and Ring are below.

TapoArloRing
Connects throughLocal network, via Seam BridgeArlo cloud (email, password, then an SMS or email code)Ring App Store partner pairing
Motion events (camera.activated)YesYesYes, with person / vehicle / package classification
Doorbell presses (device.doorbell_rang)NoNoYes
Event clip and thumbnail (/media/get)From microSD, with the Tapo account password supplied at connectionRequires an Arlo cloud-recording subscriptionRequires Ring Protect
Live viewYes, with optional audioYesYes

2026.10.21 Changelog

New

API

  • /media/get (beta): Resolves a media_id to the media's status and a short-lived signed url for an event clip or thumbnail. The response includes media_type (video or image), content_type, status (pending, available, unavailable or failed), url (set only when status is available, and valid for a few minutes) and expires_at (when the media itself stops being available). Pass format=redirect to get a 302 to the file instead. It accepts API keys, personal access tokens and client sessions, and a client session can only get media for its own devices.
  • media_ids on camera events: camera.activated and device.doorbell_rang now include media_ids, assigned when the event is created, so they're in the first webhook delivery.
  • Camera live view (beta): /cameras/live_views/create, /cameras/live_views/offer and /cameras/live_views/stop stream a camera's live feed to the browser over WebRTC. All three are authorized by a client session, so your API key and the camera's credentials never reach the browser. Devices report can_stream_live_video so you know when to offer it.
  • SDK examples: The tabs above cover JavaScript/TypeScript, Python, Ruby, PHP, C#, Java, Go, the Seam CLI and cURL, including HTTP fallbacks where needed. Follow the event media guide for the complete workflow.

Providers

  • Ubiquiti UniFi cameras (beta): Receive motion events through Seam webhooks.

  • Tapo cameras (beta): Local-network integration through Seam Bridge. Motion events, live view with optional audio, and event clips from the camera's microSD card when the Tapo account password is provided at connect.

  • Arlo cameras (beta): Cloud integration that signs in with email and password plus an SMS or email verification code. Motion events, event clips and thumbnails from the Arlo cloud library (requires an Arlo subscription with cloud recording), and live view.

Console

  • Camera device page: Live view next to the camera's recent events and their clips.

Changed

  • Ring live view: Stream supported Ring cameras through the live view API. Check can_stream_live_video on the device before offering live view.

  • Ring event media through /media/get: Ring motion and doorbell events now carry media_ids, and their clips and thumbnails resolve through /media/get like every other brand (requires Ring Protect). image_url and video_url are still on the event for compatibility and now point to /media/get.

Good to know

  • Store the media_id, not the URL. Signed URLs expire within minutes and their lifetime varies by provider, so call /media/get again when you need a new one. Seam keeps stored Tapo and Arlo clips for 7 days (see expires_at).
  • Media can be pending at first. Poll /media/get with backoff while the provider finishes recording. Handle unavailable and failed states; events do not guarantee a clip. Subscription, recording settings and connectivity affect availability.
  • Arlo playback: Seam converts HEVC recordings to H.264 for browser playback.
  • Live view allows one viewer per camera at a time and needs outbound UDP from the viewer's network. Sessions last up to 10 minutes for Tapo and Arlo; Ring sessions last up to 30 seconds on battery-powered cameras or 60 seconds on wired cameras.
  • Launch brands: Tapo, Arlo, Ring and Ubiquiti UniFi. Hikvision is coming soon.
  • Availability: Tapo, Arlo and Ring camera support is in public beta and available in every workspace.

Coming soon

Hikvision camera support is coming soon.

Get started

Questions or feedback on the beta? Email us at support@seam.co.

By subscribing you agree to our Privacy Policy.
One API for All Devices
Global Infrastructure for Controlling the Physical World
Seam makes controlling IoT devices seamless and programmable. Our teams operate globally,
enabling businesses of all sizes.
Smart Locks
Access Systems
Lock Capabilities
Thermostats
Sensors
© 2026 Seam Labs, Inc.