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
device_time with server time to detect clock drift and identify devices that may evaluate schedules incorrectly.

