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 identifier

  • device_type: smart_lock, hub, or bridge

  • device_model: hardware model identifier

  • online: whether your cloud can reach the device

  • battery_level: percentage 0–100

  • signal_quality: optional, recommended

  • location: latitude/longitude if available

  • timezone: IANA timezone string

  • bridge_id: parent hub/bridge if applicable

  • lock_state: locked, unlocked, or unknown

  • door_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 device

  • timezone: 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?