Home/Smart Locks/Mobile Keys

SMART LOCK CAPABILITIES

Smart Locks That Support Mobile Keys

Seam supports mobile keys on 91 smart lock models from 5 manufacturers, including Salto, Assa Abloy and Dormakaba.

Ælement - ANSI
Salto
Vingcard Allure
Assa Abloy
Confidant
Dormakaba
Models
91
Brands
5
Systems
7

Live & beta integrations · Device database coverage

Every model, and the systems that cover it

91 models are live or in beta today. Status is per system, so one lock can be Live through one system and unavailable through another. Open a model to see which system covers it.
Systems that issue mobile keys · 7 systems
  • AmbianceBeta
  • CommunityBeta
  • HotekLive
  • LatchLive
  • Salto SpaceLive
  • VisionlineLive
  • VostioLive

91 compatible models · showing 8

Browse all 91 model links
Browse all 91 models by brand, connectivity and capability
On this page
Quickstart

Issue a mobile key in 60 seconds

One Access Grant issues the key. Seam provisions the credential on the underlying system and returns a client session for your app plus an Instant Key URL.

1// Set SEAM_API_KEY on your server.
2import { Seam } from "seam"
3
4const seam = new Seam()
5
6const startsAt = new Date()
7const endsAt = new Date(startsAt.getTime() + 3 * 24 * 60 * 60 * 1000)
8// Replace with your own connected device or entrance ID.
9const grant = await seam.accessGrants.create({
10  user_identity: { full_name: "Jane Doe", email_address: "jane@example.com" },
11  acs_entrance_ids: ["f74e4879-5991-4e2f-a368-888983dcfbfc"],
12  requested_access_methods: [{ mode: "mobile_key" }],
13  starts_at: startsAt.toISOString(),
14  ends_at: endsAt.toISOString(),
15})
16console.log(grant.access_grant_id) // Save this ID; retrieve access methods and check is_issued before delivery.
Fastest path

Build it with your AI agent

Install the Seam plugin and your coding agent picks up three integration skills: Reservation Automations, Access Grants and Access Codes. It then writes the calls the way we would. Paste the prompt below and let it build.

1. Install the plugin

/plugin marketplace add seamapi/seam-plugin
/plugin install seam@seamapi

The Claude Code install also adds our documentation MCP server, so the agent can look up endpoints and device capabilities while it works. Cursor, Codex and other agents get the skills through npx skills add and can add the MCP server there separately.

2. Paste this prompt

Prompt
Using the Seam Access Grants skill, add mobile key unlock to my app. In a sandbox workspace: create a user identity for a member, create an access grant on an entrance with requested_access_methods [{ mode: "mobile_key" }] for a one-month membership window, then list the access methods and show me the client_session_token and the instant_key_url. Then walk me through passing the client_session_token to the mobile SDK, and explain which of the two artifacts I need for a native app versus a text message.
Walkthrough

How it works

  1. Connect the lock and confirm support

    Your user links their lock or access system account through Seam Connect Webview. Seam returns the doors behind it as devices and entrances. There is no device flag for mobile keys: Seam publishes eight boolean capability flags and this is not one of them. Check the device's capabilities_supported array, or ask for { mode: "mobile_key" } in requested_access_methods and handle what Seam reports back.

  2. Create an Access Grant

    Name the person, the doors and the window, then ask for a mobile key in requested_access_methods. Seam works out how to satisfy that on the specific hardware, so the call is the same for a battery deadbolt and a wired reader. Swap acs_entrance_ids for space_ids to cover a group of doors, or device_ids when the door is a standalone lock. The credential's schedule ends at ends_at. Deleting the grant requests removal of its credentials from the connected device or access system.

    1// Set SEAM_API_KEY on your server.
    2import { Seam } from "seam"
    3
    4const seam = new Seam()
    5
    6const startsAt = new Date()
    7const endsAt = new Date(startsAt.getTime() + 3 * 24 * 60 * 60 * 1000)
    8// Replace with your own connected device or entrance ID.
    9const grant = await seam.accessGrants.create({
    10  user_identity: { full_name: "Jane Doe", email_address: "jane@example.com" },
    11  acs_entrance_ids: ["f74e4879-5991-4e2f-a368-888983dcfbfc"],
    12  requested_access_methods: [{ mode: "mobile_key" }],
    13  starts_at: startsAt.toISOString(),
    14  ends_at: endsAt.toISOString(),
    15})
    16console.log(grant.access_grant_id) // Save this ID; retrieve access methods and check is_issued before delivery.
  3. Hand the mobile key to the phone

    List the access methods to get the client_session_token. Pass that token to the mobile SDK; keep your workspace API key on your backend. Every mobile key also carries an instant_key_url, a browser-based key you can text to a guest who will never install an app.

    1// Set SEAM_API_KEY on your server.
    2import { Seam } from "seam"
    3
    4const seam = new Seam()
    5
    6// Export SEAM_ACCESS_GRANT_ID using the grant created above.
    7const grantId = process.env.SEAM_ACCESS_GRANT_ID
    8if (!grantId) throw new Error("Set SEAM_ACCESS_GRANT_ID")
    9const methods = await seam.accessMethods.list({ access_grant_id: grantId })
    10// Deliver only issued methods. If none are issued yet, retry later or handle the access-method event.
    11for (const method of methods) {
    12  if (method.mode === "mobile_key" && method.is_issued) {
    13    console.log(method.client_session_token)
    14    console.log(method.instant_key_url)
    15  }
    16}
FAQ

Frequently asked questions

Which smart locks support mobile keys?

Seam supports mobile keys on 91 smart lock models from 5 manufacturers, including Salto, Assa Abloy and Dormakaba. The table on this page comes from Seam's device database, and each model links to its own page with the per-system status and any hardware requirements.

How do I check whether a door can take a mobile key?

The device object has eight boolean capability flags, and can_provision_mobile_keys is not one of them. Read the device's capabilities_supported array, or just ask for { mode: "mobile_key" } on the Access Grant and handle what Seam reports back.

Do my users need to install an app to use a mobile key?

Not always. With your own app, the Seam mobile SDK holds the credential and unlocks over Bluetooth. Without one, text the instant_key_url that comes with every mobile key.

Does a mobile key work when the phone has no signal?

Yes, on systems that provision the credential to the phone. The key unlocks over Bluetooth with both the phone and the lock offline, which is why mobile keys suit stairwells and garages.

Can one person hold a mobile key and a PIN code at the same time?

Yes. Request both modes in one Access Grant, or add an access method to an existing grant later. They share the grant's schedule and doors, so a lost phone is not a lockout.

How is this different from each lock vendor's own mobile SDK?

Vendor SDKs are per brand: a different credential model, provisioning flow and revocation rule each time. Seam issues mobile keys through one Access Grants call and one mobile SDK across every system listed here.

Pricing

Ready to Scale With You

Seam lets developers and businesses connect apps to real-world IoT devices. The free trial is built for small teams to build and test, while enterprise pricing scales with the biggest device fleets out there.
Best Enterprise Solution

Custom Subscription for Your Business

Access tailored solutions, paying a fixed monthly rate that scales as you grow.
Enhanced Security
Beta Features Access
Dedicated Support Channel
Volume Discounts
No Usage Limits
Trusted by Over 1,000 Companies
Start Now

Try It for Free

Start with a free trial and explore the full API and related features.

Have questions? Talk to our team.

Chat with us to learn how Seam can power your access automation.
—“Discovering Seam was one of these Aha moments in the business. I couldn’t believe what I was seeing. I mean, it was exactly what we were looking for: a simple API that we could integrate and have access to all these devices in a matter of seconds.”
François Gouelo
CEO, Enso Connect
Company
How many devices you need to connect?
Name
Email
How did you find us?
Comment
We usually answer within 24 hours.
One API for All Devices
Global Infrastructure for Controlling the Physical World
Seam makes controlling IoT devices seamless and programmable. Our teams operate globally,
enabling businesses of all sizes.
Smart Locks
Access Systems
Knowledge
Lock Capabilities
Thermostats
Sensors
© 2026 Seam Labs, Inc.