Home/Smart Locks/Offline Access Codes

Smart Locks That Support Offline Access Codes

Seam supports offline access codes on 43 smart lock models from 3 manufacturers, including igloohome, Lockly and Dormakaba.
Supported models
43
Manufacturers
3
Connected systems
3

Every model, and the systems that cover it

43 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 offline access codes

  • Liveigloohome API logo
    igloohome API
  • LiveLockly logo
    Lockly
  • LiveOracode logo
    Oracode
Device Type, Model & ID
Connectivity
Seam Status
Image for device Oracode 460K
Smartlock
Oracode 460K
Oracode460K-U26, Oracode460K-U13
Live
Image for device Oracode 480i Keyless Lock
Smartlock
Oracode 480i Keyless Lock
Live
Image for device Oracode 660i Cylindrical
Smartlock
Oracode 660i Cylindrical
661-W-50-2-1-K-F-1-0-U26-H, 661-W-50-2-1-K-F-1-0-U06-H, 661-W-50-2-1-K-F-1-0-U13-H
Live
Image for device Oracode 660i Electronic Keyless Lock
Smartlock
Oracode 660i Electronic Keyless Lock
Live
Image for device Oracode 660K
Smartlock
Oracode 660K
660-10-2-1-K-F-1-0-U26-H, 660-10-2-1-K-F-1-0-U06-H, 660-10-2-1-K-F-1-0-U13-H
Live
Image for device Deadbolt 2E
Smartlock
Deadbolt 2E
IGB4A
Live
Image for device Deadbolt 2S Metal Grey
Smartlock
Deadbolt 2S Metal Grey
IGB4
Live
Image for device Deadbolt Go
Smartlock
Deadbolt Go
Live
Image for device Gate Lock (Fingerprint)
Smartlock
Gate Lock (Fingerprint)
RM2F
Live
Image for device Gate Lock (Non-Fingerprint)
Smartlock
Gate Lock (Non-Fingerprint)
RM2
Live
Image for device Glass Door Lock
Smartlock
Glass Door Lock
RG1
Live
Image for device IoT Deadbolt
Smartlock
IoT Deadbolt
Live
Image for device Keybox 2
Smartlock
Keybox 2
IGK2
Live
Image for device Keybox 3
Smartlock
Keybox 3
IGK3
Live
Image for device Keybox 3E
Smartlock
Keybox 3E
SK3E
Live
Image for device Lever Mortise
Smartlock
Lever Mortise
ML5
Live
Image for device Mortise 2
Smartlock
Mortise 2
IGM3
Live
Image for device Mortise 2+
Smartlock
Mortise 2+
IGM4
Live
Image for device Padlock
Smartlock
Padlock
IGP1
Live
Image for device Padlock 2E
Smartlock
Padlock 2E
SP2E
Live
Image for device Padlock E
Smartlock
Padlock E
SP1E
Live
Image for device Push-Pull Mortise
Smartlock
Push-Pull Mortise
MP1F
Live
Image for device Retrofit Lock
Smartlock
Retrofit Lock
OE1
Live
Image for device Rim Lock for metal gates
Smartlock
Rim Lock for metal gates
IGR1
Live
Image for device Rim Lock for wooden doors
Smartlock
Rim Lock for wooden doors
RW1X
Live
Image for device Swing Handle Lock
Smartlock
Swing Handle Lock
IWS1
Live
Image for device Waterproof Smart Lock Box
Smartlock
Waterproof Smart Lock Box
SK4
Live
Image for device Guard Athena (228sl)
Smartlock
Guard Athena (228sl)
Live
Image for device Guard Athena (228sw)
Smartlock
Guard Athena (228sw)
Live
Image for device Guard deadbolt (728Z)
Smartlock
Guard deadbolt (728Z)
Live
Image for device Guard Defender (238l)
Smartlock
Guard Defender (238l)
Live
Image for device Guard Defender 238lM Doorman
Smartlock
Guard Defender 238lM Doorman
Live
Image for device Guard Duo (679d)
Smartlock
Guard Duo (679d)
Live
Image for device Guard Fingerprint Deadbolt (728fz)
Smartlock
Guard Fingerprint Deadbolt (728fz)
Live
Image for device Guard Latch (679l)
Smartlock
Guard Latch (679l)
Live
Image for device Guard Vision Duo (698D)
Smartlock
Guard Vision Duo (698D)
Live
Image for device Lockly Secure Plus Deadbolt Edition Dementia-Proof
Smartlock
Lockly Secure Plus Deadbolt Edition Dementia-Proof
Live
Image for device Lockly Visage Zeno Series
Smartlock
Lockly Visage Zeno Series
PGK728WRHKMB, PGK728WRHKSN
Live
Image for device Model 7S Smart Lock
Smartlock
Model 7S Smart Lock
Live
Image for device Secure Plus Smart Lock
Smartlock
Secure Plus Smart Lock
PGD728FSN, PGD728FMB, PGD728FVB
Live
Image for device Secure Pro Smart Lock (Deadbolt)
Smartlock
Secure Pro Smart Lock (Deadbolt)
PGD728WVB, PGD728WSN, PGD728WMB
Live
Image for device Secure Pro Smart Lock (Lever)
Smartlock
Secure Pro Smart Lock (Lever)
PGD628WVB, PGD628WSN, PGD628WMB
Live
Image for device Vision Doorbell Camera Smart Lock
Smartlock
Vision Doorbell Camera Smart Lock
PGD798MB, PGD798SN, PGD798VB
Live
Browse all 43 models by brand, connectivity and capability
Quickstart

Issue an offline code in 60 seconds

One Access Grant issues the code. The digits come from a registry the manufacturer keeps synchronized with the lock, so nothing has to reach the door.
1# A three-day window starting now, so a copied snippet is never a dead grant.
2STARTS_AT=$(date -u +%Y-%m-%dT%H:%M:%SZ)
3ENDS_AT=$(date -u -v+3d +%Y-%m-%dT%H:%M:%SZ 2>/dev/null || date -u -d '+3 days' +%Y-%m-%dT%H:%M:%SZ)
4
5curl -X POST 'https://connect.getseam.com/access_grants/create' \
6  -H "Authorization: Bearer ${SEAM_API_KEY}" \
7  -H 'Content-Type: application/json' \
8  -d '{
9    "user_identity": {
10      "full_name": "Jane Doe",
11      "email_address": "jane@example.com"
12    },
13    "device_ids": ["6ba7b811-9dad-11d1-80b4-00c04fd430c8"],
14    "requested_access_methods": [{ "mode": "code" }],
15    "starts_at": "'"$STARTS_AT"'",
16    "ends_at": "'"$ENDS_AT"'"
17  }'
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.
  • Reservation AutomationsPush reservations to Seam and let it manage codes across the booking lifecycle.
  • Access GrantsPer-entrance, per-credential access: PIN codes, mobile keys and Instant Keys.
  • Access CodesDirect, manual control of individual time-bound codes on a specific device.

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

Using the Seam Access Grants skill, issue an offline access code. In a sandbox workspace: connect a virtual igloohome lock, confirm can_program_offline_access_codes is true on it, create an access grant with requested_access_methods [{ mode: "code" }] for a two-day window, then read the code back once is_issued is true. Explain why the code works without the lock being online, and what I cannot change about it afterwards.
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_offline_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 offline 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. Seam removes the credential at ends_at, and deleting the grant revokes it on the spot.

    1import { Seam } from "seam"
    2
    3const seam = new Seam()
    4
    5// Relative to now, so the window is always in the future when this runs.
    6const startsAt = new Date()
    7const endsAt = new Date(startsAt.getTime() + 3 * 24 * 60 * 60 * 1000)
    8
    9// One call: who gets in, which doors, and for how long.
    10const accessGrant = await seam.accessGrants.create({
    11  user_identity: {
    12    full_name: "Jane Doe",
    13    email_address: "jane@example.com",
    14  },
    15  device_ids: ["6ba7b811-9dad-11d1-80b4-00c04fd430c8"],
    16  requested_access_methods: [{ mode: "code" }],
    17  starts_at: startsAt.toISOString(),
    18  ends_at: endsAt.toISOString(),
    19})
    20
    21// Seam issues the credential and programs the door. Read it back when ready.
    22const [accessMethod] = await seam.accessMethods.list({
    23  access_grant_id: accessGrant.access_grant_id,
    24})
  3. Send the code to your user

    Read the digits off the access method once is_issued is true and send them by SMS or email. The lock validates the code with its own clock and keys, so it works with no internet at the door and nobody within Bluetooth range.

    1const [accessMethod] = await seam.accessMethods.list({
    2  access_grant_id: accessGrant.access_grant_id,
    3})
    4
    5if (accessMethod.is_issued) {
    6  console.log(accessMethod.code) // the PIN to send your user
    7}
FAQ

Frequently asked questions

Which smart locks support offline access codes?

Seam supports offline access codes on 43 smart lock models from 3 manufacturers, including igloohome, Lockly 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 can a code work on a lock with no internet?

The manufacturer keeps a server-side registry of algorithmically generated codes, synchronized with the lock through shared encryption keys. Seam draws the code from that registry, and the lock recognises it using its own clock. Nothing is programmed onto the device when the code is issued.

Can I change or revoke an offline code early?

No. An offline code cannot be modified, and it cannot be revoked before its expiry, because the lock has no connection to receive the change. Invalidating one early means a factory reset or re-pairing the device. Keep windows short and treat the expiry as the revocation.

Which brands support offline codes through Seam?

igloohome, dormakaba Oracode and Lockly today. The table on this page tracks the live status per system, and each model page lists its own constraints.

What schedules can an offline code have?

Time-bound codes are hourly-bound for short stays or daily-bound for longer ones, and a daily-bound code wants the same clock time in starts_at and ends_at. igloohome and Lockly also issue one-time-use codes. Access Grants pick a valid shape for the device and warn with device_time_constraints_violated when the window cannot be represented.

When should I prefer offline codes over online ones?

When the lock has no reliable connection: remote cabins, basements, parking garages, or fleets where installing bridges is not worth it. If the lock is online, online codes are easier to live with, because they can be changed and revoked at any time.

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.