Smart Locks That Support Offline Access Codes
- Supported models
- 43
- Manufacturers
- 3
- Connected systems
- 3
Every model, and the systems that cover it
Systems that issue offline access codes
- Liveigloohome API
- LiveLockly
- LiveOracode
Issue an offline code in 60 seconds
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 }'Build it with your AI agent
- 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@seamapiThe 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.How it works
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.
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})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}
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.
Related
- Smart locks that support online access codesEvery model, with the status of each system that issues online access codes.
- Smart locks that support mobile keysEvery model, with the status of each system that issues mobile keys.
- Smart locks that support encoded plastic cardsEvery model, with the status of each system that issues encoded plastic cards.
- Smart locks that support remote unlockEvery model, with the status of each system that supports remote unlock.
- Smart locks that support remote lockEvery model, with the status of each system that supports remote lock.
- Every device and system Seam supportsSearch the whole device database by brand, device type and capability.
- Access control systemsThe wired systems behind the entrances in these grants: Salto, dormakaba, Brivo, ASSA ABLOY and more.
- Smart lock API overviewHow Seam's smart lock API works, from device connection to access automation.