Access Control Systems API
Integrate ACS Across Global Brands With a Single API
Provision and manage users across access control system brands.
Assign them to access groups using the Seam API.
Create mobile credentials and distribute them directly inside your app using the Seam SDK.
Assign them to access groups using the Seam API.
Create mobile credentials and distribute them directly inside your app using the Seam SDK.
A growing network of supported global brands
Contexts
Grant Access to Any Building
Enable instant access to apartment buildings, hotels, commercial sites, universities, and much more.

Apartments

Offices

Hotels

Infrastructure
Highlights
One API—Any System
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.

Universal API
Use a single API to communicate with dozens of different access control system brands.

Unified SDK
Use a single mobile SDK to automatically distribute BLE and NFC credentials.
Compatible with
30+
Easy as 1, 2, 3
How it works
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.

1
Connect Systems
Connect an access system and credential provider with Seam. Use the Seam Bridge to connect on-prem systems.

2
Provision Users
Use Seam's unified API to create users and assign them to access groups, across any brand of supported access control system.

3
Distribute Credentials
Seam provides mobile SDKs that automatically provision and distribute mobile credentials to your app's users.
Authorize
Connect Any System
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.
Cloud systems

Connect Webviews
Link any cloud-connected access control systems with Seam using Connect Webview. Webviews handle cloud-to-cloud authorization and can be integrated anywhere.
Offline systems

Seam Bridge
Seam Bridge enables you to connect on-prem, offline access control systems. Compatible with many hardware platforms, it takes mere minutes to set up anywhere.
Universal Access Control
Create and Assign ACS Users Programmatically
Seam provides a single, standardized API that enables you to create users and assign them to access groups across dozens of different brands of different access control system brands.
Provision Users
Create users and assign them to the right access groups using a few lines of code.
1// Retrieve an access control system
2const myAcs = 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: myAcs.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: myAcs.acs_system_id,
15 acs_access_group_ids: [employee_group.acs_access_group_id],
16})
One SDK
Distribute Credentials Across Any Mobile Wallet
Use a single SDK to issue Apple Wallet, Google Wallet, or BLE mobile credentials across brands like HID, LEGIC, StiD, Salto, and more.
Server Side
Provision NFC or BLE access credentials to user devices using one seamless SDK.
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})
Mobile Side
Initialize Seam on iOS, Android, or React to automatically provision access credentials.
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)
Standardization
A Universal Schema
Seam's access control system API uses a universal schema shared amongst brands & systems supported by Seam, making integrations a breeze.
System
Buildings or locations, and represent a grouping of access groups, entrances and users.
Access Groups
Grouping of entrances and zones. Users can then be added to a group, which gives them access to the entrances of that group.
Entrances
Doors, elevators, turnstiles and other ingress points that restrict access and are opened based on user authorization via credentials.
Users & Credentials
Create many users and assign them credentials both plastic and mobile with a single API.

Key Benefits
Infinite Possibilities
Use Seam's integrated API & SDK to grant access to users, audit entry logs, and rule the day.
Connect Any System
Use a single API to provision users & credentials across dozens of different access control system brands.
Distribute Credentials
Use a single SDK to embed mobile credentials from different identity providers directly inside your mobile apps.
Unified Analytics
Audit entry logs, and get aggregated usage analytics across one or more sites.