Implementing your Device Model & Discovery
How to structure your device schema and expose the endpoints Seam uses to list and sync a user’s locks.
A clean, predictable device model helps Seam present accurate information to end users and orchestrate smart-lock behavior across hospitality, multifamily, STR, and coworking environments. The fields listed below form the baseline for a Seam-compatible integration.
Device Object Schema
Your API should expose a device resource with a stable, predictable structure. This lets Seam identify devices, correlate events, and display meaningful details to the user.
A typical device object includes:
device_id: unique, stable identifierdevice_type: smart_lock, hub, or bridgedevice_model: hardware model identifieronline: whether your cloud can reach the devicebattery_level: percentage 0–100signal_quality: optional, recommendedlocation: latitude/longitude if availabletimezone: IANA timezone stringbridge_id: parent hub/bridge if applicablelock_state: locked, unlocked, or unknowndoor_state: open, closed, or ajar (if supported)
Device example
Listing door locks
After a lock owner logs in through OAuth, Seam lists all locks associated with their account so the user can select which devices to connect. Your API should return a JSON list of all accessible locks.
List All Locks Example
GET https://devicecloud.example.com/locks
Getting a single lock
Seam may request information about a specific lock to display full details or perform deeper synchronization.
Get a Lock Example
GET https://devicecloud.example.com/locks/<LOCK_ID>
Connectivity reporting
To keep device state fresh, your platform should send webhook events whenever connectivity changes.
Send an event when the device goes offline
Send another when it comes back online
Report hub or bridge status separately
Online event example
Offline event example
Power & battery reporting
Your API should report battery percentage and emit events when power levels change.
Battery level example
Low-battery event
Battery replaced / charged
Time & timezone reporting
Accurate time lets Seam validate access-code schedules and align audit logs. Accurate timezone data is especially important during daylight-savings transitions.
Required fields
device_time: the current time reported by the devicetimezone: an IANA timezone string
Device-time example
Seam compares device_time with server time to detect clock drift and identify devices that may evaluate schedules incorrectly.
Guidance for manufacturers
If scheduling is evaluated on-device, the reported device time and timezone must be kept accurate and updated reliably.
Last updated
Was this helpful?

