Home/Smart Locks/Remote Unlock

SMART LOCK CAPABILITIES

Smart Locks That Support Remote Unlock

Seam supports remote unlock on 691 smart lock models from 35 manufacturers, including Yale, Assa Abloy and Salto.

Approach Lock with Wi-Fi
Yale
nexTouch 2nd Generation Cylindrical Pushbutton Keypad Lock with Z-Wave Plus
Assa Abloy
Ælement Fusion - ANSI
Salto
Models
691
Brands
35
Systems
29

Live & beta integrations · Device database coverage

Every model, and the systems that cover it

691 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 support remote unlock · 29 systems
  • 2NLive
  • 33 LockLive
  • 4 SuitesBeta
  • Akiles APILive
  • August AccessLive
  • Avigilon AltaLive
  • Brivo APIBeta
  • CommunityLive
  • DusawLive
  • GenieBeta
  • igloohome APILive
  • Keyincode APILive
  • KwiksetLive
  • LatchLive
  • LocklyLive
  • Nuki WebLive
  • Omnitec Rent&PassLive
  • Salto KSLive
  • Schlage HomeLive
  • SmartThings CloudLive
  • StorlogixBeta
  • Tedee Cloud APILive
  • TTLockLive
  • UltraloqLive
  • VostioLive
  • WyzeLive
  • Yacan APIBeta
  • Yale Access (US)Live
  • Yale HomeLive

691 compatible models · showing 8

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

Unlock a door in 60 seconds

Call /locks/unlock_door to request an unlock. Track the action attempt and check result.was_confirmed_by_device: success does not always mean the device confirmed the action. An unlocked state does not tell you whether the door is open.

1// Set SEAM_API_KEY on your server.
2import { Seam } from "seam"
3
4const seam = new Seam()
5
6// Replace with a connected lock's device_id.
7const device = await seam.devices.get({ device_id: "6ba7b811-9dad-11d1-80b4-00c04fd430c8" })
8if (device.can_remotely_unlock !== true) {
9  throw new Error("This lock cannot remotely unlock right now")
10}
11const action = await seam.locks.unlockDoor({ device_id: device.device_id })
12console.log(action) // Check status and result.was_confirmed_by_device.
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 docs, add remote unlock to my app. In a sandbox workspace: connect a virtual lock, confirm can_remotely_unlock is true on it, call /locks/unlock_door, and wait for the action attempt. Check result.was_confirmed_by_device and read properties.locked for the reported lock state. Keep command success, device confirmation and physical door position distinct in the UI. Finish by showing me how to listen for lock.unlocked events on a webhook instead of polling.
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. Confirm can_remotely_unlock is true on what comes back. False means the lock is capable but cannot use it right now, and a missing property means it never does this.

  2. Send the unlock command

    Send a POST to /locks/unlock_door with the device_id. The response is an action attempt: pending means it is still in progress, and error includes the failure reason. For success, also check result.was_confirmed_by_device because some providers cannot confirm the action on the physical lock.

    1// Set SEAM_API_KEY on your server.
    2import { Seam } from "seam"
    3
    4const seam = new Seam()
    5
    6// Replace with a connected lock's device_id.
    7const device = await seam.devices.get({ device_id: "6ba7b811-9dad-11d1-80b4-00c04fd430c8" })
    8if (device.can_remotely_unlock !== true) {
    9  throw new Error("This lock cannot remotely unlock right now")
    10}
    11const action = await seam.locks.unlockDoor({ device_id: device.device_id })
    12console.log(action) // Check status and result.was_confirmed_by_device.
  3. Check the reported unlock result

    Check action_attempt.result.was_confirmed_by_device: some providers report success without physical-device confirmation. Read properties.locked for the reported lock state, or subscribe to lock.unlocked events. Neither an unlocked state nor that event proves the door opened. Use a separate door-position sensor if your workflow needs to know whether the door is open or closed.

    1// Set SEAM_API_KEY on your server.
    2import { Seam } from "seam"
    3
    4const seam = new Seam()
    5
    6// Read after the action attempt completes. Expected locked: false; this does not report door position.
    7const device = await seam.devices.get({ device_id: "6ba7b811-9dad-11d1-80b4-00c04fd430c8" })
    8console.log(device.properties.locked)
FAQ

Frequently asked questions

Which smart locks support remote unlock?

Seam supports remote unlock on 691 smart lock models from 35 manufacturers, including Yale, Assa Abloy and Salto. 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 fast is a remote unlock?

Wi-Fi locks respond in a second or two. Battery locks behind a Bluetooth bridge or hub take longer, because the bridge has to wake the lock first. The action attempt reports when the command lands, so poll it or listen for lock.unlocked instead of sleeping a fixed delay.

Does remote unlock work when the lock is offline?

No. The command travels over the lock's internet connection, and Seam reports the failure on the action attempt when the lock cannot be reached. For access that has to survive an outage, issue a PIN code or a mobile key: both work at the door without a connection.

Is unlocking a door the same as granting access?

No. /locks/unlock_door requests an unlock now, with no schedule and no credential. It does not physically open the door. To give a person their own access for a window of time, create an Access Grant and let Seam issue the credential. Remote unlock is for letting someone in from an app or a support tool.

Who gets recorded for a remote unlock?

A remote unlock is attributed to your API key, not to a person. When you need a per-user audit trail, request a cloud_key access method on an Access Grant: each unlock through it is attributed to that user identity in the access system's log.

What is an action attempt?

A record of one command's progress. /locks/unlock_door returns it as pending, and Seam updates it to success or error once the lock's system responds. Poll /action_attempts/get with the id; the JavaScript SDK waits for the result by default.

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.