Home/Smart Locks/Online Access Codes

SMART LOCK CAPABILITIES

Smart Locks That Support Online Access Codes

Seam supports online access codes on 543 smart lock models from 32 manufacturers, including Yale, TTLock and Assa Abloy.

Approach Lock with Wi-Fi
Yale
Basic
TTLock
nexTouch 2nd Generation Cylindrical Pushbutton Keypad Lock with Z-Wave Plus
Assa Abloy
Models
543
Brands
32
Systems
26

Live & beta integrations · Device database coverage

Every model, and the systems that cover it

543 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 online access codes · 26 systems
  • 2NLive
  • 33 LockLive
  • Akiles APILive
  • August AccessLive
  • Avigilon AltaBeta
  • DusawLive
  • igloohome APILive
  • Keyincode APILive
  • KeyNest APILive
  • KwiksetLive
  • LocklyLive
  • Nuki WebLive
  • Omnitec Rent&PassLive
  • OracodeLive
  • Salto KSLive
  • Salto SpaceLive
  • Schlage HomeLive
  • SmartThings CloudLive
  • StorlogixBeta
  • Tedee Cloud APILive
  • TTLockLive
  • UltraloqLive
  • WyzeLive
  • Yacan APIBeta
  • Yale Access (US)Live
  • Yale HomeLive

543 compatible models · showing 8

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

Create an access code in 60 seconds

Create an Access Grant with a code access method. Seam generates the PIN and programs it onto the lock.

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  device_ids: ["6ba7b811-9dad-11d1-80b4-00c04fd430c8"],
12  requested_access_methods: [{ mode: "code" }],
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 PIN code access to my app. In a sandbox workspace: connect a virtual lock, confirm can_program_online_access_codes is true on it, create an access grant for "Jane Doe" on that device with requested_access_methods [{ mode: "code" }] starting now and ending in three days, then poll access_methods.list until is_issued is true and print the code. Explain what Seam did on the lock at each step.
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_program_online_access_codes 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. Create an Access Grant

    Name the person, the doors and the window, then ask for a PIN code 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 device_ids for space_ids to cover a whole unit, or acs_entrance_ids for entrances on an access control system. 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  device_ids: ["6ba7b811-9dad-11d1-80b4-00c04fd430c8"],
    12  requested_access_methods: [{ mode: "code" }],
    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. Send the PIN to your user

    Read the code off the access method once is_issued is true, then send it by SMS or email. The keypad works even if the guest's phone is dead, and nobody installs anything.

    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 === "code" && method.is_issued) {
    13    console.log(method.code)
    14  }
    15}
FAQ

Frequently asked questions

Which smart locks support online access codes?

Seam supports online access codes on 543 smart lock models from 32 manufacturers, including Yale, TTLock and Assa Abloy. 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 specific lock can take online access codes?

Call /devices/list and read can_program_online_access_codes on the device. True works today. False means the lock is capable but cannot use it right now. A missing property means the model never does it, so check all three states.

Can I set the PIN code myself instead of letting Seam generate it?

Yes on most online-code locks: the lower-level access codes API takes a custom code. Access Grants generate it for you because that path also handles collisions, retries and the lock's slot limits.

What happens if the lock is offline when I create the grant?

Seam queues the code and programs it as soon as the lock reconnects. The access method stays unissued until then, so watch the access_method.issued event before you send anyone digits.

Do access codes count against a limit on the lock?

Most locks have a finite number of code slots, and some accept only certain schedule shapes. Seam reports those limits per device and reclaims slots as grants end.

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.