Control dozens of different brands of access control systems using one API. Create and manage users, access permissions, and distribute mobile credentials such as Apple Wallet and BLE-keys using one unified mobile SDK.
Use a single API to communicate with dozens of different access control system brands.
Use a single mobile SDK to automatically distribute BLE and NFC credentials.
Enable instant access to apartment buildings, hotels, commercial sites, universities, and much more.
Apartments
Offices
Hotels
Infrastructure
Seam connects to any smart lock or access system. Create a Seam account, connect your devices, and begin controlling them using a single API and dashboard.
Use Seam's unified API to create users and assign them to access groups, across any brand of supported access control system.
Seam provides mobile SDK that automatically provision and distribute mobile credentials to your app's users.
Start by connecting an access control system to your Seam workspace. For cloud-connected systems such as Brivo, use Seam Connect Webviews to collect authorization information. For on-prem access systems such as Visionline, use the Seam Bridge to connect them to your workspace.
Link any cloud-connected access control systems with Seam using Connect Webview. Webviews handle cloud-to-cloud authorization and can be integrated anywhere.
Seam Bridge lets you connect on-prem, offline access control systems. Compatible with many hardware platforms, it takes mere minutes to setup anywhere.
Seam provides a single, standardized API that lets you create users and assign them to access groups across dozens of different brands of different access control system brands.
1// Retrieve an access control system
2const my_acs = await seam.acs.systems.get("my building")
3
4// Retrive the employee access group for that system
5const employee_group = seam.acs.access_groups.get({
6 acs_system_id: my_acs.acs_system_id,
7 name: "Employee Access Group",
8})
9
10// Create a user in the system and
11// assign them to the Employee access group
12const acs_user = await seam.acs.users.create({
13 email: "jane@example.com",
14 acs_system_id: my_acs.acs_system_id,
15 acs_access_group_ids: [employee_group.acs_access_group_id],
16})
17
1// Retrieve an access control system
2const my_acs = await seam.acs.systems.get("my building")
3
4// Retrive the employee access group for that system
5const employee_group = seam.acs.access_groups.get({
6 acs_system_id: my_acs.acs_system_id,
7 name: "Employee Access Group",
8})
9
10// Create a user in the system and
11// assign them to the Employee access group
12const acs_user = await seam.acs.users.create({
13 email: "jane@example.com",
14 acs_system_id: my_acs.acs_system_id,
15 acs_access_group_ids: [employee_group.acs_access_group_id],
16})
17
Use a single SDK to issue Apple Wallet, Google Wallet, or BLE mobile credentials across brands like HID, LEGIC, StiD, Salto, and more.
1// create a user identity
2user_identity = seam.user_identities.create((email = "jane@example.com"))
3
4// Link it to the ACS user created earlier
5seam.user_identities.add_acs_user(
6 (user_identity = user_identity.user_identity_id),
7 (acs_user_id = acs_user.acs_user_id)
8)
9
10// Create a client session to enable auto-provisioning
11clientSession = seam.clientSessions.getOrCreate({
12 user_identifier_key: "some-unique-key-you-define",
13 user_identities_ids: [user_identity.user_identity_id],
14})
15
1// Pass the clientSession object to your mobile app
2let clientSession = getSeamClientSession(email: "jane@example.com")
3
4// Initialize the SeamDeviceManager with the client session token and
5// Any access Credentials (NFC, BLE...etc) for acs users tied to
6// the client session will be automatically provisioned
7SeamDeviceManager(clientSessionToken: clientSession.token)
1// Pass the clientSession object to your mobile app
2val clientSession = getSeamClientSession("jane@example.com")
3
4// Initialize the SeamDeviceManager with the client session token and
5// Any access Credentials (NFC, BLE...etc) for acs users tied to
6// the client session will be automatically provisioned
7SeamDeviceManager(clientSession.token)
1// Pass the clientSession object to your mobile app and store it (e.g. useState)
2const token = clientSession.token // fetch this from your backend
3
4// Initialize the SeamDeviceManager with the client session token and
5// Any access Credentials (NFC, BLE...etc) for acs users tied to
6// the client session will be automatically provisioned
7;<SeamDeviceManager clientSessionToken={token}>
8 {/* your app */}
9</SeamDeviceManager>
10
Use Seam's unified SDK to issue Apple Wallet, Google Wallet, or BLE mobile credentials across brands like HID, LEGIC, StiD, Salto, and more.
Seam's access control system API uses a universal schema shared amongsts brands & systems supported by Seam, making integrations a breeze.
Buildings or locations, and represent a grouping of access groups, entrances and users.
Grouping of entrances and zones. Users can then be added to a group, which gives them access to the entrances of that group.
Doors, elevators, turnstile and other ingress points that restrict access and are opened based on user authorization via credentials.
Create many users and assign them credentials both plastic and mobile with a single API.
Use Seam's integrated API & SDK to grant access to users, audit entry logs, and rule the day.
Use a single API to provision users & credentials across dozens of different access control systems brands.
Use a single SDK to embed mobile credentials from different identity providers directly inside your mobile apps.
Audit entry logs, and get aggregated usage analytics across one or more sites.