> ## Documentation Index
> Fetch the complete documentation index at: https://www.seam.co/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# UniFi Protect Cameras

> Connect UniFi Protect cameras to Seam through a Seam Bridge to stream live video, receive motion events, and retrieve event clips and thumbnails. Beta.

![UniFi Protect logo](https://seam-ecosystem-media.fly.storage.tigris.dev/providers/unifi-protect/square_logo-sq_unifi_986a96a7c8-167178ee0158ace638d46eafee33816f2b02663947491f72cba72f9fa8592c62.svg)

UniFi Protect

## Overview

UniFi Protect is Ubiquiti's video security software. It runs on a UniFi OS console, such as a Dream Machine Pro or a Cloud Key, and manages the UniFi cameras that you adopt into it. Cameras record to the console's own storage.

Seam connects to your UniFi console over your local network through a [Seam Bridge](https://www.seam.co/docs/capability-guides/seam-bridge.md). Once the console is connected, each camera adopted by that console appears in Seam as a device. You can stream live video, receive motion events, and retrieve a short clip and thumbnail for each motion event.

> [!WARNING]
>
> UniFi Protect cameras are in **beta**. Behavior and API shapes may change before general availability.

> [!NOTE]
>
> UniFi Protect requires a [Seam Bridge](https://www.seam.co/docs/capability-guides/seam-bridge.md) running on the same local network as the console. Seam never reaches the console over the public internet.

***

## Supported Devices

Each Seam connected account represents one UniFi console running UniFi Protect. Every camera adopted by that console becomes a Seam device with the `unifi_protect_camera` device type.

Seam has verified this integration on one configuration: a UniFi Dream Machine Pro running UniFi Protect 7.3.70, with a G5 Turret Ultra camera. Other consoles and cameras may work, but Seam hasn't verified them.

***

## Supported Features

| Feature | `unifi_protect_camera` |
| - | - |
| [Live video streaming](https://www.seam.co/docs/capability-guides/cameras/stream-live-video.md) (`can_stream_live_video`) | ✅ Beta. H.264 video, with optional audio. |
| Motion detection events (`camera.activated`) | ✅ Beta |
| [Event clips and thumbnails](https://www.seam.co/docs/capability-guides/cameras/retrieve-event-media.md) (`media_ids` and [`/media/get`](https://www.seam.co/docs/api/media/get)) | ✅ Beta. Requires a local-only UniFi user with View Only Protect access. See [Event Clips and Thumbnails](#event-clips-and-thumbnails). |
| Doorbell press events | Not available |
| On-demand snapshots | Not available |
| Pan-tilt-zoom (PTZ) control | Not supported |
| Two-way audio | Not supported |

Before offering or opening a live view, check [`device.can_stream_live_video`](https://www.seam.co/docs/capability-guides/device-and-system-capabilities#cameras). The console and its paired Seam Bridge must both be online.

***

## Brand-Specific Restrictions

* **Seam Bridge required.** Live video, motion events, and clips all travel through the paired Seam Bridge. Seam doesn't connect to UniFi Protect without one. If the Bridge or the console can't be reached, cameras that Seam previously synced are reported offline.
* **One console per connected account.** Connect each UniFi console separately. All of the console's adopted cameras appear under that one connected account.
* **Stable local address.** Seam stores the console's local IP address or hostname. Reserve the console's IP address in your router so that it doesn't change.
* **Live view changes a camera setting.** The first live view of a camera turns on that camera's low-quality RTSPS stream in UniFi Protect. This is a one-time setting change on the console. See [What Happens on the First Live View](https://www.seam.co/docs/device-and-system-integration-guides/unifi-protect-cameras/unifi-protect-setup-guide.md#what-happens-on-the-first-live-view).
* **Event clips need a local-only user.** See [Event Clips and Thumbnails](#event-clips-and-thumbnails).
* **Reconnect after a certificate reset.** Seam pins the console's TLS certificate the first time it connects. If the certificate is replaced, for example after a factory reset, reconnect the console. See the [setup guide](https://www.seam.co/docs/device-and-system-integration-guides/unifi-protect-cameras/unifi-protect-setup-guide.md#the-console-certificate-changed).

***

## Event Clips and Thumbnails

For each motion event, Seam can retrieve a 20-second clip from the console's own recordings: 5 seconds before and 15 seconds after the start of the event. Clips come from the camera's high-quality channel and are H.264 MP4 files. Seam also creates a thumbnail from the clip. The IDs of both are in the event's `media_ids`. To fetch them, see [Retrieve Event Media](https://www.seam.co/docs/capability-guides/cameras/retrieve-event-media.md).

In Seam's testing, a clip was available about 30 seconds after the motion started.

Event clips require:

* **A local-only UniFi user with View Only Protect access.** When you connect the console, enter this user's username and password in the optional local user fields. A UniFi cloud account can't be used. See the [setup guide](https://www.seam.co/docs/device-and-system-integration-guides/unifi-protect-cameras/unifi-protect-setup-guide.md#step-3-create-a-local-only-view-only-user-for-event-clips).
* **Recording turned on.** Clips come from the console's own storage, so the console must be recording the camera.

If you connect the console without a local user, events still arrive, but their media is `unavailable` with a reason.

***

## Brand-Specific Events

Seam fires the following camera event for UniFi Protect devices:

* **`camera.activated`**: Fired when UniFi Protect detects motion. The event's `activation_reason` is `motion_detected`. Seam merges overlapping Protect motion and smart-detection events, so you receive one event for each activation. In Seam's testing, the event arrived about 2.5 seconds after the motion started.

When UniFi Protect reports a smart detection, the event's `motion_sub_type` is set as follows:

| UniFi Protect detection | `motion_sub_type` |
| - | - |
| Person or face | `human` |
| Vehicle or license plate | `vehicle` |
| Package | `package` |
| Animal | `other` |

***

## Device Metadata

Each UniFi Protect device exposes the following optional fields in `device.properties.unifi_protect_metadata`: `camera_id`, `camera_name`, `model`, `mac`, `has_mic`, and `nvr_name`. Any of them may be absent.

***

## Device Provider Key

Seam identifies these devices with the `unifi_protect` device provider key. A [Connect Webview](https://www.seam.co/docs/core-concepts/connect-webviews.md) shows UniFi Protect only when you include `unifi_protect` in the `accepted_providers` list, or set `provider_category` to `cameras`. For more information, see [Customize the Brands to Display in Your Connect Webviews](https://www.seam.co/docs/core-concepts/connect-webviews/customizing-connect-webviews.md#customize-the-brands-to-display-in-your-connect-webviews).

***

## Setup Instructions

For step-by-step instructions on connecting a UniFi Protect console to Seam, including Seam Bridge pairing, creating the Protect API key, creating the local-only user, and troubleshooting, see the [UniFi Protect Setup Guide](https://www.seam.co/docs/device-and-system-integration-guides/unifi-protect-cameras/unifi-protect-setup-guide.md).

To try the integration without hardware, see [Sandbox UniFi Protect Cameras](https://www.seam.co/docs/device-and-system-integration-guides/unifi-protect-cameras/sandbox-unifi-protect-cameras.md). To start building, see [Get Started with UniFi Protect Cameras](https://www.seam.co/docs/device-and-system-integration-guides/unifi-protect-cameras/get-started-with-unifi-protect-cameras.md).

***

## Where to Order

> [card] [UniFi - Camera Security](https://ui.com/camera-security)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.