/access

Grant access across any door

One API for smart locks and access control. Decide who gets in, where, and when—with PIN codes, mobile keys, and key cards.

Everything you need. To grant access to any space.

Connect smart locks and access systems through one API. Decide who can enter, choose their credentials, and manage access as plans change.

  • One integration across brands

  • PIN codes, mobile keys, cards & Instant Keys

  • Ready-to-use interfaces

  • Virtual devices for testing

  • Events in a common format

Explore Access Grants

One grant. Every kind of credential.

A single Access Grant can request one access method or several at once. Seam handles provisioning across the devices in your spaces.

PIN codes

Set start and end times for PIN codes, and get events on entry.

Instant Keys

Send Bluetooth keys by link. No app on iOS; a small app on Android.

Key cards

Encode cards and fobs, set access times, and join cards on supported systems.

Mobile keys

Unlock Bluetooth and NFC doors in your app with Seam SDKs for iOS and Android.

Cloud Keys

Beta

Unlock doors online from your web app or shared links, with start and end times.

Wallet keys

Coming soon

Apple & Google Wallet keys on supported systems. Apple fees may apply.

Connect. Grant. Deliver. Three steps to access.

  1. Connect your devices

    Embed Connect Webview so your users can link their locks and access systems in a few steps.

  2. Create an Access Grant

    Choose the person, spaces, schedule, and credentials through the API or the Seam dashboard.

  3. Deliver the credential

    Share an Instant Key link, send a PIN code, or provide a mobile key through your app.

Connect on-prem access control with Seam Bridge.

Learn more

Runs on

A few lines of code. Access across brands.

Create grants and read events with the same API, whichever provider your users connect.

Create an Access Grant

Define who, where, and when. Request the credential types you need and track their issuance.

Read the guide
1// Set SEAM_API_KEY on your server.
2import { Seam } from "seam"
3
4const seam = new Seam()
5const startsAt = new Date()
6const endsAt = new Date(startsAt.getTime() + 2 * 24 * 60 * 60 * 1000)
7
8// Replace the space IDs with your room and gym spaces.
9const accessGrant = await seam.accessGrants.create({
10  user_identity: { full_name: "Jane Smith", email_address: "jane@example.com" },
11  space_ids: ["d9edb8c8-3023-4c27-989c-d05d7e215824", "671f73e8-8070-43c0-ba28-d0c84964f63d"],
12  requested_access_methods: [
13    { mode: "code" },
14    { mode: "mobile_key" },
15    { mode: "card" },
16  ],
17  starts_at: startsAt.toISOString(),
18  ends_at: endsAt.toISOString(),
19})
20
21// Save the grant ID. Check access method issuance; cards require encoding.
22console.log(accessGrant.access_grant_id)

Read access events

Retrieve events through the API, or subscribe to webhooks for updates as they happen.

Explore events
1// Set SEAM_API_KEY on your server.
2import { Seam } from "seam"
3
4const seam = new Seam()
5const since = new Date(Date.now() - 24 * 60 * 60 * 1000)
6const events = await seam.events.list({
7  event_types: [
8    "lock.unlocked",
9    "lock.access_denied",
10    "access_method.issued",
11  ],
12  since: since.toISOString(),
13})
14
15console.log(events)

Ready to use. No app to build.

Give your customers a place to manage access, or handle it yourself in the Seam dashboard.

Customer Portal

Give your customers a branded portal to connect devices and manage access and reservations. Embed it in your product without building the interface yourself.

Explore Customer Portals

Seam Dashboard

Connect your locks and access systems, grant access, and manage your devices from the Seam dashboard. Sign in and start working.

Open the dashboard

Know what happens at the door. With events and webhooks.

Receive access and device updates in a common format, across connected brands.

Front doorConnected
Yale Assure Lock 2,material.Locked.Keypad awake.
Entering PIN…

Webhook listener

POST /webhooks/seam
Listening

Last payload · excerpt

{
  "event_type": "lock.locked",
  "method": "automatic",
  "device_id": "c901cdf2-426f-4e18-a2a2-3101cab411d6",
  "occurred_at": "2026-09-29T08:59:00.000Z"
}

Access activity

  1. Front door locked

    Automatic relock

  2. Jane unlocked the front door

    Guest PIN used

  3. Front door locked

    Automatic relock

Built for the real world. Reliability beyond the API.

Locks go offline and networks fail. Seam manages credential delivery and gives you visibility into what needs attention.

  • Automatic retries

    Seam retries provisioning when a device is temporarily unavailable.

  • Per-device status

    See which credentials have been issued and which devices still need attention.

  • Access that follows your plans

    Manage access as schedules and the devices in your spaces change.

Your next integration. Starts with Seam.

Build and test in a sandbox, or talk with us about connecting your access systems.

Smart Locks
Access Systems
Knowledge
Lock Capabilities
Thermostats
Sensors
© 2026 Seam Labs, Inc.