Skip to main content

Overview

This guide walks you through connecting a UniFi console running UniFi Protect to Seam. Seam reaches the console over the local network, so you need a Seam Bridge running on a computer on the same network as the console. The console must already be set up, and your cameras must already be adopted in UniFi Protect. You connect each console once. Every camera adopted by the console then appears in Seam.
UniFi Protect cameras are in beta. Seam has verified the integration on a UniFi Dream Machine Pro running UniFi Protect 7.3.70 with a G5 Turret Ultra camera.

Step 1: Find the Console’s Local Address

Seam needs the console’s IP address or hostname on your local network, for example 192.168.1.1, and its HTTPS port, which is 443 by default.
  1. Find the console’s IP address in UniFi OS or in your router’s list of connected devices.
  2. In your router, reserve this IP address for the console (a DHCP reservation) so that it doesn’t change.

Step 2: Create a Protect API Key

Seam uses a Protect API key to read the console’s cameras and to start live views.
  1. Sign in to UniFi OS on the console.
  2. Open UniFi Protect, then go to Settings > Control Plane > Integrations.
  3. Select Create API Key, name the key, and copy it. You enter it in Step 5.
The menu location can vary with the firmware version. If you don’t see Integrations, search the UniFi Protect settings for “API”. An API key has the permissions of the admin who creates it. Create the key while signed in as an admin that you dedicate to integrations.

Step 3: Create a Local-Only View Only User for Event Clips

To retrieve event clips and thumbnails, Seam signs in to the console as a local user. Skip this step if you only need live video and motion events. Without this user, events still arrive, but their clips are unavailable.
  1. In UniFi OS, open Admins & Users.
  2. Select Create New Admin.
  3. Turn on Restrict to local access only.
  4. Set the UniFi Protect role to View Only. Set the role for other applications to none.
  5. Set a username and password, and save them. You enter them in Step 5.
Don’t use a UniFi cloud account (a ui.com or SSO account). Cloud accounts always require multi-factor authentication, so Seam can’t sign in with them. Create a local-only user instead.
A View Only user can export clips, but can’t change the console’s settings.

Step 4: Install Seam Bridge

Install Seam Bridge on a computer that stays on and is connected to the same local network as the console. See the setup guide for your operating system:

Step 5: Connect via Connect Webview

  1. Open the Connect Webview provided by your application. It must include unifi_protect in its accepted_providers list.
  2. Select UniFi Protect as the provider.
  3. Follow the Seam Bridge instructions. In the Seam Bridge client, select Start pairing, and then enter the pairing token that it displays.
  4. On the UniFi Protect connection screen, enter the following details:
  1. Select Connect console. Seam verifies the console through the Seam Bridge before it creates the connected account.

Step 6: Verify the Connection

After connecting, verify that each camera appears as a device with the unifi_protect_camera device type and shows as online. Before offering or opening a live view, check that the device’s can_stream_live_video capability flag is true. The console and its paired Seam Bridge must both be online. See Stream Live Video for the client-session and browser workflow. Each device exposes the following optional metadata in device.properties.unifi_protect_metadata: camera_id, camera_name, model, mac, has_mic, and nvr_name.

What Happens on the First Live View

The first time you open a live view for a camera, Seam turns on that camera’s low-quality RTSPS stream in UniFi Protect. This is a one-time setting change on the console. Seam then plays the H.264 video in the browser through its live view. If you request audio, Seam includes an Opus audio track. In Seam’s testing, the first frame appeared after about 9 seconds.

Troubleshooting

The console rejects the API key

The Connect Webview shows “The console rejected this API key. Create a new API key in UniFi Protect and try again.” Check that you copied the whole key from UniFi Protect > Settings > Control Plane > Integrations. If it still fails, create a new key and use that one.

The console rejects the local username or password

The Connect Webview shows “The console rejected this username or password.” Check the local-only user’s credentials from Step 3, or leave both local user fields empty to connect without event clips.

The console is rate limiting sign-ins

The Connect Webview shows “The console is rate limiting sign-ins. Wait a few minutes and try again.” The console limits repeated failed sign-ins. Wait a few minutes before you submit the form again.

The console reports a UniFi cloud account

The Connect Webview shows “This is a UniFi cloud account. Create a local-only user with View Only Protect access.” The username you entered belongs to a UniFi cloud account (ui.com or SSO), and those accounts always require multi-factor authentication. Create a local-only user as described in Step 3, and enter that user’s credentials.

Event clips are unavailable

If a camera’s media ends in the unavailable status, check that:
  • You entered the local username and password when you connected the console. If you didn’t, reconnect the console through a new Connect Webview and enter them.
  • The local user is local-only and has the View Only role for UniFi Protect.
  • The console is recording the camera. Clips come from the console’s own storage.
  • The console and Seam Bridge are online when the event happens.

Seam can’t reach the console

The Connect Webview shows “Seam Bridge could not reach the console. Check its address and HTTPS port, and that Seam Bridge is on the console’s network.” Check that:
  • The console is powered on and the address and port are correct.
  • Seam Bridge is running and connected on the same local network as the console.
If the Seam Bridge can’t reach the console, cameras that Seam previously synced are reported offline.

The console certificate changed

Consoles ship with a self-signed certificate, and Seam pins it the first time it connects. If the console’s certificate is replaced, for example after a factory reset, Seam stops trusting the connection. Reconnect the console through a new Connect Webview. A console with a publicly trusted certificate for its hostname is accepted when that certificate renews.

Motion events aren’t arriving

Check that motion detection is turned on for the camera in UniFi Protect, and that the console and Seam Bridge are online.