diff --git a/docs/api/_report.md b/docs/api/_report.md
index 327adc94d..80453e621 100644
--- a/docs/api/_report.md
+++ b/docs/api/_report.md
@@ -12,9 +12,6 @@
- `/client_sessions`
- `/connect_webviews`
- `/connected_accounts`
-- `/devices`
-- `/devices/simulate`
-- `/devices/unmanaged`
- `/events`
- `/locks`
- `/networks`
diff --git a/docs/api/devices/README.md b/docs/api/devices/README.md
new file mode 100644
index 000000000..d9e764b86
--- /dev/null
+++ b/docs/api/devices/README.md
@@ -0,0 +1,4519 @@
+# Devices
+
+## `device`
+
+### `can_hvac_cool`
+
+Format: `Boolean`
+
+---
+
+### `can_hvac_heat`
+
+Format: `Boolean`
+
+---
+
+### `can_hvac_heat_cool`
+
+Format: `Boolean`
+
+---
+
+### `can_program_offline_access_codes`
+
+Format: `Boolean`
+
+---
+
+### `can_program_online_access_codes`
+
+Format: `Boolean`
+
+---
+
+### `can_remotely_lock`
+
+Format: `Boolean`
+
+---
+
+### `can_remotely_unlock`
+
+Format: `Boolean`
+
+---
+
+### `can_simulate_connection`
+
+Format: `Boolean`
+
+---
+
+### `can_simulate_disconnection`
+
+Format: `Boolean`
+
+---
+
+### `can_simulate_removal`
+
+Format: `Boolean`
+
+---
+
+### `can_turn_off_hvac`
+
+Format: `Boolean`
+
+---
+
+### `capabilities_supported`
+
+Format: `List`
+
+Item format: `Enum`
+
+Collection of capabilities that the device supports when connected to Seam. Values are "access_code," which indicates that the device can manage and utilize digital PIN codes for secure access; "lock," which indicates that the device controls a door locking mechanism, enabling the remote opening and closing of doors and other entry points; "noise_detection," which indicates that the device supports monitoring and responding to ambient noise levels; "thermostat," which indicates that the device can regulate and adjust indoor temperatures; and "battery," which indicates that the device can manage battery life and health.
+
+---
+
+### `connected_account_id`
+
+Format: `UUID`
+
+Unique identifier for the account associated with the device.
+
+---
+
+### `created_at`
+
+Format: `Datetime`
+
+Date and time at which the device object was created.
+
+---
+
+### `custom_metadata`
+
+Format: `Record`
+
+---
+
+### `device_id`
+
+Format: `UUID`
+
+Unique identifier for the device.
+
+---
+
+### `device_type`
+
+Format: `Enum`
+
+Type of the device.
+
+Possible enum values:
+- `akuvox_lock`
+- `august_lock`
+- `brivo_access_point`
+- `butterflymx_panel`
+- `avigilon_alta_entry`
+- `doorking_lock`
+- `genie_door`
+- `igloo_lock`
+- `linear_lock`
+- `lockly_lock`
+- `kwikset_lock`
+- `nuki_lock`
+- `salto_lock`
+- `schlage_lock`
+- `seam_relay`
+- `smartthings_lock`
+- `wyze_lock`
+- `yale_lock`
+- `two_n_intercom`
+- `controlbyweb_device`
+- `ttlock_lock`
+- `igloohome_lock`
+- `hubitat_lock`
+- `four_suites_door`
+- `dormakaba_oracode_door`
+- `tedee_lock`
+- `akiles_lock`
+- `noiseaware_activity_zone`
+- `minut_sensor`
+- `ecobee_thermostat`
+- `nest_thermostat`
+- `honeywell_resideo_thermostat`
+- `tado_thermostat`
+- `sensi_thermostat`
+- `ios_phone`
+- `android_phone`
+
+---
+
+### `display_name`
+
+Format: `String`
+
+Display name of the device, defaults to nickname (if it is set) or properties.appearance.name otherwise. Enables administrators and users to identify the device easily, especially when there are numerous devices.
+
+---
+
+### [`errors`](./#errors-1)
+
+Format: `List`
+
+Item format: `Object`
+
+Array of errors associated with the device. Each error object within the array contains two fields: "error_code" and "message." "error_code" is a string that uniquely identifies the type of error, enabling quick recognition and categorization of the issue. "message" provides a more detailed description of the error, offering insights into the issue and potentially how to rectify it.
+
+The specific structure of each object in this list depends on the value of its `error_code` field.
+
+Variants:
+
+account_disconnected
+
+Account is disconnected
+
+**`created_at`**
+Format: `Datetime`
+
+
+---
+
+**`error_code`**
+Format: `Enum`
+
+
+Unique identifier of the type of error. Enables quick recognition and categorization of the issue.
+
+Possible enum values:
+- `account_disconnected`
+
+---
+
+**`is_connected_account_error`**
+Format: `Boolean`
+
+
+---
+
+**`is_device_error`**
+Format: `Boolean`
+
+
+---
+
+**`message`**
+Format: `String`
+
+
+
+
+salto_ks_subscription_limit_exceeded
+
+Salto site user limit reached.
+
+**`created_at`**
+Format: `Datetime`
+
+
+---
+
+**`error_code`**
+Format: `Enum`
+
+
+Unique identifier of the type of error. Enables quick recognition and categorization of the issue.
+
+Possible enum values:
+- `salto_ks_subscription_limit_exceeded`
+
+---
+
+**`is_connected_account_error`**
+Format: `Boolean`
+
+
+---
+
+**`is_device_error`**
+Format: `Boolean`
+
+
+---
+
+**`message`**
+Format: `String`
+
+
+
+
+device_offline
+
+Device is offline
+
+**`created_at`**
+Format: `Datetime`
+
+
+---
+
+**`error_code`**
+Format: `Enum`
+
+
+Unique identifier of the type of error. Enables quick recognition and categorization of the issue.
+
+Possible enum values:
+- `device_offline`
+
+---
+
+**`is_device_error`**
+Format: `Boolean`
+
+
+---
+
+**`message`**
+Format: `String`
+
+
+
+
+device_removed
+
+Device has been removed
+
+**`created_at`**
+Format: `Datetime`
+
+
+---
+
+**`error_code`**
+Format: `Enum`
+
+
+Unique identifier of the type of error. Enables quick recognition and categorization of the issue.
+
+Possible enum values:
+- `device_removed`
+
+---
+
+**`is_device_error`**
+Format: `Boolean`
+
+
+---
+
+**`message`**
+Format: `String`
+
+
+
+
+hub_disconnected
+
+Hub is disconnected
+
+**`created_at`**
+Format: `Datetime`
+
+
+---
+
+**`error_code`**
+Format: `Enum`
+
+
+Unique identifier of the type of error. Enables quick recognition and categorization of the issue.
+
+Possible enum values:
+- `hub_disconnected`
+
+---
+
+**`is_device_error`**
+Format: `Boolean`
+
+
+---
+
+**`message`**
+Format: `String`
+
+
+
+
+device_disconnected
+
+Device is disconnected
+
+**`created_at`**
+Format: `Datetime`
+
+
+---
+
+**`error_code`**
+Format: `Enum`
+
+
+Unique identifier of the type of error. Enables quick recognition and categorization of the issue.
+
+Possible enum values:
+- `device_disconnected`
+
+---
+
+**`is_device_error`**
+Format: `Boolean`
+
+
+---
+
+**`message`**
+Format: `String`
+
+
+
+
+empty_backup_access_code_pool
+
+The backup access code pool is empty.
+
+**`created_at`**
+Format: `Datetime`
+
+
+---
+
+**`error_code`**
+Format: `Enum`
+
+
+Unique identifier of the type of error. Enables quick recognition and categorization of the issue.
+
+Possible enum values:
+- `empty_backup_access_code_pool`
+
+---
+
+**`is_device_error`**
+Format: `Boolean`
+
+
+---
+
+**`message`**
+Format: `String`
+
+
+
+
+august_lock_not_authorized
+
+User is not authorized to use the August Lock.
+
+**`created_at`**
+Format: `Datetime`
+
+
+---
+
+**`error_code`**
+Format: `Enum`
+
+
+Unique identifier of the type of error. Enables quick recognition and categorization of the issue.
+
+Possible enum values:
+- `august_lock_not_authorized`
+
+---
+
+**`is_device_error`**
+Format: `Boolean`
+
+
+---
+
+**`message`**
+Format: `String`
+
+
+
+
+august_lock_missing_bridge
+
+Lock is not connected to the Seam Bridge.
+
+**`created_at`**
+Format: `Datetime`
+
+
+---
+
+**`error_code`**
+Format: `Enum`
+
+
+Unique identifier of the type of error. Enables quick recognition and categorization of the issue.
+
+Possible enum values:
+- `august_lock_missing_bridge`
+
+---
+
+**`is_device_error`**
+Format: `Boolean`
+
+
+---
+
+**`message`**
+Format: `String`
+
+
+
+
+ttlock_lock_not_paired_to_gateway
+
+Lock is not paired with a Gateway.
+
+**`created_at`**
+Format: `Datetime`
+
+
+---
+
+**`error_code`**
+Format: `Enum`
+
+
+Unique identifier of the type of error. Enables quick recognition and categorization of the issue.
+
+Possible enum values:
+- `ttlock_lock_not_paired_to_gateway`
+
+---
+
+**`is_device_error`**
+Format: `Boolean`
+
+
+---
+
+**`message`**
+Format: `String`
+
+
+
+
+missing_device_credentials
+
+Missing device credentials.
+
+**`created_at`**
+Format: `Datetime`
+
+
+---
+
+**`error_code`**
+Format: `Enum`
+
+
+Unique identifier of the type of error. Enables quick recognition and categorization of the issue.
+
+Possible enum values:
+- `missing_device_credentials`
+
+---
+
+**`is_device_error`**
+Format: `Boolean`
+
+
+---
+
+**`message`**
+Format: `String`
+
+
+
+
+auxiliary_heat_running
+
+The auxiliary heat is running.
+
+**`created_at`**
+Format: `Datetime`
+
+
+---
+
+**`error_code`**
+Format: `Enum`
+
+
+Unique identifier of the type of error. Enables quick recognition and categorization of the issue.
+
+Possible enum values:
+- `auxiliary_heat_running`
+
+---
+
+**`is_device_error`**
+Format: `Boolean`
+
+
+---
+
+**`message`**
+Format: `String`
+
+
+
+
+subscription_required
+
+Subscription required to connect.
+
+**`created_at`**
+Format: `Datetime`
+
+
+---
+
+**`error_code`**
+Format: `Enum`
+
+
+Unique identifier of the type of error. Enables quick recognition and categorization of the issue.
+
+Possible enum values:
+- `subscription_required`
+
+---
+
+**`is_device_error`**
+Format: `Boolean`
+
+
+---
+
+**`message`**
+Format: `String`
+
+
+
+
+invalid_credentials
+
+Credentials provided were invalid.
+
+**`created_at`**
+Format: `Datetime`
+
+
+Date and time at which Seam created the error.
+
+---
+
+**`error_code`**
+Format: `Enum`
+
+
+Unique identifier of the type of error. Enables quick recognition and categorization of the issue.
+
+Possible enum values:
+- `invalid_credentials`
+
+---
+
+**`is_bridge_error`**
+Format: `Boolean`
+
+
+---
+
+**`is_connected_account_error`**
+Format: `Boolean`
+
+
+---
+
+**`message`**
+Format: `String`
+
+
+
+
+bridge_disconnected
+
+Indicates that the Seam API cannot communicate with [Seam Bridge](../../capability-guides/seam-bridge.md), for example, if Seam Bridge executable has stopped or if the computer running the Seam Bridge executable is offline.
+ See also [Troubleshooting Your Access Control System](../../capability-guides/access-systems/troubleshooting-your-access-control-system.md#acs_system.errors.seam_bridge_disconnected).
+
+**`created_at`**
+Format: `Datetime`
+
+
+Date and time at which Seam created the error.
+
+---
+
+**`error_code`**
+Format: `Enum`
+
+
+Unique identifier of the type of error. Enables quick recognition and categorization of the issue.
+
+Possible enum values:
+- `bridge_disconnected`
+
+---
+
+**`is_bridge_error`**
+Format: `Boolean`
+
+
+---
+
+**`is_connected_account_error`**
+Format: `Boolean`
+
+
+---
+
+**`message`**
+Format: `String`
+
+
+
+
+---
+
+### `is_managed`
+
+Format: `Boolean`
+
+Indicates whether Seam manages the device.
+
+---
+
+### `location`
+
+Format: `Object`
+
+Location information for the device.
+
+
+
+location_name Format: String
+
+Name of the device location.
+
+
+
+
+timezone Format: String
+
+Time zone of the device location.
+
+
+---
+
+### `nickname`
+
+Format: `String`
+
+Optional nickname to describe the device, settable through Seam
+
+---
+
+### `properties`
+
+Format: `Object`
+
+Properties of the device.
+
+
+
+accessory_keypad Format: Object
+
+Represents the accessory keypad state.
+
+
+
+
+accessory_keypad.battery Format: Object
+
+Indicates if the keypad battery properties.
+
+
+
+
+accessory_keypad.battery.level Format: Number
+
+
+
+
+accessory_keypad.is_connected Format: Boolean
+
+Indicates if the accessory_keypad is connected to the device.
+
+
+
+
+appearance Format: Object
+
+
+
+
+appearance.name Format: String
+
+Name of the device as seen from the provider API and application, not settable through Seam.
+
+
+
+
+battery Format: Object
+
+Represents the current status of the battery charge level. Values are "critical," which indicates an extremely low level, suggesting imminent shutdown or an urgent need for charging; "low," which signifies that the battery is under the preferred threshold and should be charged soon; "good," which denotes a satisfactory charge level, adequate for normal use without the immediate need for recharging; and "full," which represents a battery that is fully charged, providing the maximum duration of usage.
+
+
+
+
+battery.level Format: Number
+
+
+
+
+battery.status Format: Enum
+
+Possible enum values:
+- `critical`
+- `low`
+- `good`
+- `full`
+
+
+
+
+battery_level Format: Number
+
+Indicates the battery level of the device as a decimal value between 0 and 1, inclusive.
+
+
+
+
+currently_triggering_noise_threshold_ids Format: List Item format: String
+
+Array of noise threshold IDs that are currently triggering.
+
+
+
+
+has_direct_power Format: Boolean
+
+Indicates whether the device has direct power.
+
+
+
+
+image_alt_text Format: String
+
+Alt text for the device image.
+
+
+
+
+image_url Format: String
+
+Image URL for the device.
+
+
+
+
+manufacturer Format: String
+
+Manufacturer of the device.
+
+
+
+
+model Format: Object
+
+
+
+
+model.accessory_keypad_supported Format: Boolean
+
+{% hint style="warning" %}
+**Deprecated**. use device.properties.model.can_connect_accessory_keypad
+{% endhint %}
+
+
+
+
+model.can_connect_accessory_keypad Format: Boolean
+
+Indicates whether the device can connect a accessory keypad.
+
+
+
+
+model.display_name Format: String
+
+Display name of the device model.
+
+
+
+
+model.has_built_in_keypad Format: Boolean
+
+Indicates whether the device has a built in accessory keypad.
+
+
+
+
+model.manufacturer_display_name Format: String
+
+Display name that corresponds to the manufacturer-specific terminology for the device.
+
+
+
+
+model.offline_access_codes_supported Format: Boolean
+
+Indicates whether the device supports offline access codes.
+
+
+
+
+model.online_access_codes_supported Format: Boolean
+
+Indicates whether the device supports online access codes.
+
+
+
+
+name Format: String
+
+{% hint style="warning" %}
+**Deprecated**. use device.display_name instead
+{% endhint %}
+
+Name of the device.
+
+
+
+
+noise_level_decibels Format: Number
+
+Indicates current noise level in decibels, if the device supports noise detection.
+
+
+
+
+offline_access_codes_enabled Format: Boolean
+
+Indicates whether it is currently possible to use offline access codes for the device.
+
+
+
+
+online Format: Boolean
+
+Indicates whether the device is online.
+
+
+
+
+online_access_codes_enabled Format: Boolean
+
+Indicates whether it is currently possible to use online access codes for the device.
+
+
+
+
+serial_number Format: String
+
+Serial number of the device.
+
+
+
+
+supports_accessory_keypad Format: Boolean
+
+{% hint style="warning" %}
+**Deprecated**. use device.properties.model.can_connect_accessory_keypad
+{% endhint %}
+
+
+
+
+supports_offline_access_codes Format: Boolean
+
+{% hint style="warning" %}
+**Deprecated**. use offline_access_codes_enabled
+{% endhint %}
+
+
+
+
+assa_abloy_credential_service_metadata Format: Object
+
+ASSA ABLOY Credential Service metadata for the phone.
+
+
+
+
+assa_abloy_credential_service_metadata.endpoints Format: List Item format: Object
+
+Endpoints associated with the phone.
+
+- endpoint_id Format: String
+
+ ID of the associated endpoint.
+
+
+- is_active Format: Boolean
+
+ Indicated whether the endpoint is active.
+
+
+
+
+
+assa_abloy_credential_service_metadata.has_active_endpoint Format: Boolean
+
+Indicates whether the credential service has active endpoints associated with the phone.
+
+
+
+
+salto_space_credential_service_metadata Format: Object
+
+Salto Space credential service metadata for the phone.
+
+
+
+
+salto_space_credential_service_metadata.has_active_phone Format: Boolean
+
+Indicates whether the credential service has an active associated phone.
+
+
+
+
+akiles_metadata Format: Object
+
+
+
+
+akiles_metadata._member_group_id Format: String
+
+
+
+
+akiles_metadata.gadget_id Format: String
+
+
+
+
+akiles_metadata.gadget_name Format: String
+
+
+
+
+akiles_metadata.product_name Format: String
+
+
+
+
+assa_abloy_vostio_metadata Format: Object
+
+
+
+
+assa_abloy_vostio_metadata.encoder_name Format: String
+
+
+
+
+august_metadata Format: Object
+
+
+
+
+august_metadata.has_keypad Format: Boolean
+
+
+
+
+august_metadata.house_id Format: String
+
+
+
+
+august_metadata.house_name Format: String
+
+
+
+
+august_metadata.keypad_battery_level Format: String
+
+
+
+
+august_metadata.lock_id Format: String
+
+
+
+
+august_metadata.lock_name Format: String
+
+
+
+
+august_metadata.model Format: String
+
+
+
+
+avigilon_alta_metadata Format: Object
+
+
+
+
+avigilon_alta_metadata.entry_name Format: String
+
+
+
+
+avigilon_alta_metadata.entry_relays_total_count Format: Number
+
+
+
+
+avigilon_alta_metadata.org_name Format: String
+
+
+
+
+avigilon_alta_metadata.site_id Format: Number
+
+
+
+
+avigilon_alta_metadata.site_name Format: String
+
+
+
+
+avigilon_alta_metadata.zone_id Format: Number
+
+
+
+
+avigilon_alta_metadata.zone_name Format: String
+
+
+
+
+brivo_metadata Format: Object
+
+
+
+
+brivo_metadata.device_name Format: String
+
+
+
+
+controlbyweb_metadata Format: Object
+
+
+
+
+controlbyweb_metadata.device_id Format: String
+
+
+
+
+controlbyweb_metadata.device_name Format: String
+
+
+
+
+controlbyweb_metadata.relay_name Format: String
+
+
+
+
+dormakaba_oracode_metadata Format: Object
+
+
+
+
+dormakaba_oracode_metadata.device_id Format: Object
+
+
+
+
+dormakaba_oracode_metadata.door_id Format: Number
+
+
+
+
+dormakaba_oracode_metadata.door_is_wireless Format: Boolean
+
+
+
+
+dormakaba_oracode_metadata.door_name Format: String
+
+
+
+
+dormakaba_oracode_metadata.iana_timezone Format: String
+
+
+
+
+dormakaba_oracode_metadata.predefined_time_slots Format: List Item format: Object
+
+- check_in_time Format: String
+
+
+- check_out_time Format: String
+
+
+- dormakaba_oracode_user_level_id Format: UUID
+
+
+- ext_dormakaba_oracode_user_level_prefix Format: Number
+
+
+- is_24_hour Format: Boolean
+
+
+- is_biweekly_mode Format: Boolean
+
+
+- is_master Format: Boolean
+
+
+- is_one_shot Format: Boolean
+
+
+- name Format: String
+
+
+- prefix Format: Number
+
+
+
+
+
+dormakaba_oracode_metadata.site_id Format: Number
+
+@DEPRECATED
+
+
+
+
+dormakaba_oracode_metadata.site_name Format: String
+
+
+
+
+ecobee_metadata Format: Object
+
+
+
+
+ecobee_metadata.device_name Format: String
+
+
+
+
+ecobee_metadata.ecobee_device_id Format: String
+
+
+
+
+four_suites_metadata Format: Object
+
+
+
+
+four_suites_metadata.device_id Format: Number
+
+
+
+
+four_suites_metadata.device_name Format: String
+
+
+
+
+four_suites_metadata.reclose_delay_in_seconds Format: Number
+
+
+
+
+genie_metadata Format: Object
+
+
+
+
+genie_metadata.device_name Format: String
+
+
+
+
+genie_metadata.door_name Format: String
+
+
+
+
+honeywell_resideo_metadata Format: Object
+
+
+
+
+honeywell_resideo_metadata.device_name Format: String
+
+
+
+
+honeywell_resideo_metadata.honeywell_resideo_device_id Format: String
+
+
+
+
+hubitat_metadata Format: Object
+
+
+
+
+hubitat_metadata.device_id Format: String
+
+
+
+
+hubitat_metadata.device_label Format: String
+
+
+
+
+hubitat_metadata.device_name Format: String
+
+
+
+
+igloo_metadata Format: Object
+
+
+
+
+igloo_metadata.bridge_id Format: String
+
+
+
+
+igloo_metadata.device_id Format: String
+
+
+
+
+igloo_metadata.model Format: String
+
+
+
+
+igloohome_metadata Format: Object
+
+
+
+
+igloohome_metadata.bridge_id Format: String
+
+
+
+
+igloohome_metadata.bridge_name Format: String
+
+
+
+
+igloohome_metadata.device_id Format: String
+
+
+
+
+igloohome_metadata.device_name Format: String
+
+
+
+
+igloohome_metadata.keypad_id Format: String
+
+
+
+
+kwikset_metadata Format: Object
+
+
+
+
+kwikset_metadata.device_id Format: String
+
+
+
+
+kwikset_metadata.device_name Format: String
+
+
+
+
+kwikset_metadata.model_number Format: String
+
+
+
+
+lockly_metadata Format: Object
+
+
+
+
+lockly_metadata.device_id Format: String
+
+
+
+
+lockly_metadata.device_name Format: String
+
+
+
+
+lockly_metadata.model Format: String
+
+
+
+
+minut_metadata Format: Object
+
+
+
+
+minut_metadata.device_id Format: String
+
+
+
+
+minut_metadata.device_name Format: String
+
+
+
+
+minut_metadata.latest_sensor_values Format: Object
+
+
+
+
+minut_metadata.latest_sensor_values.accelerometer_z Format: Object
+
+
+
+
+minut_metadata.latest_sensor_values.accelerometer_z.time Format: String
+
+
+
+
+minut_metadata.latest_sensor_values.accelerometer_z.value Format: Number
+
+
+
+
+minut_metadata.latest_sensor_values.humidity Format: Object
+
+
+
+
+minut_metadata.latest_sensor_values.humidity.time Format: String
+
+
+
+
+minut_metadata.latest_sensor_values.humidity.value Format: Number
+
+
+
+
+minut_metadata.latest_sensor_values.pressure Format: Object
+
+
+
+
+minut_metadata.latest_sensor_values.pressure.time Format: String
+
+
+
+
+minut_metadata.latest_sensor_values.pressure.value Format: Number
+
+
+
+
+minut_metadata.latest_sensor_values.sound Format: Object
+
+
+
+
+minut_metadata.latest_sensor_values.sound.time Format: String
+
+
+
+
+minut_metadata.latest_sensor_values.sound.value Format: Number
+
+
+
+
+minut_metadata.latest_sensor_values.temperature Format: Object
+
+
+
+
+minut_metadata.latest_sensor_values.temperature.time Format: String
+
+
+
+
+minut_metadata.latest_sensor_values.temperature.value Format: Number
+
+
+
+
+nest_metadata Format: Object
+
+
+
+
+nest_metadata.device_custom_name Format: String
+
+
+
+
+nest_metadata.device_name Format: String
+
+
+
+
+nest_metadata.display_name Format: String
+
+
+
+
+nest_metadata.nest_device_id Format: String
+
+
+
+
+noiseaware_metadata Format: Object
+
+
+
+
+noiseaware_metadata.device_id Format: String
+
+
+
+
+noiseaware_metadata.device_model Format: Enum
+
+Possible enum values:
+- `indoor`
+- `outdoor`
+
+
+
+
+noiseaware_metadata.device_name Format: String
+
+
+
+
+noiseaware_metadata.noise_level_decibel Format: Number
+
+
+
+
+noiseaware_metadata.noise_level_nrs Format: Number
+
+
+
+
+nuki_metadata Format: Object
+
+
+
+
+nuki_metadata.device_id Format: String
+
+
+
+
+nuki_metadata.device_name Format: String
+
+
+
+
+nuki_metadata.keypad_2_paired Format: Boolean
+
+
+
+
+nuki_metadata.keypad_battery_critical Format: Boolean
+
+
+
+
+nuki_metadata.keypad_paired Format: Boolean
+
+
+
+
+salto_ks_metadata Format: Object
+
+
+
+
+salto_ks_metadata.battery_level Format: String
+
+
+
+
+salto_ks_metadata.customer_reference Format: String
+
+
+
+
+salto_ks_metadata.lock_id Format: String
+
+
+
+
+salto_ks_metadata.lock_type Format: String
+
+
+
+
+salto_ks_metadata.locked_state Format: String
+
+
+
+
+salto_ks_metadata.model Format: String
+
+
+
+
+salto_metadata Format: Object
+
+
+ ---
+ deprecated: Use `salto_ks_metadata ` instead.
+
+
+
+
+
+salto_metadata.battery_level Format: String
+
+
+
+
+salto_metadata.customer_reference Format: String
+
+
+
+
+salto_metadata.lock_id Format: String
+
+
+
+
+salto_metadata.lock_type Format: String
+
+
+
+
+salto_metadata.locked_state Format: String
+
+
+
+
+salto_metadata.model Format: String
+
+
+
+
+schlage_metadata Format: Object
+
+
+
+
+schlage_metadata.device_id Format: String
+
+
+
+
+schlage_metadata.device_name Format: String
+
+
+
+
+schlage_metadata.model Format: String
+
+
+
+
+seam_bridge_metadata Format: Object
+
+
+
+
+seam_bridge_metadata.device_num Format: Number
+
+
+
+
+seam_bridge_metadata.name Format: String
+
+
+
+
+seam_bridge_metadata.unlock_method Format: Enum
+
+Possible enum values:
+- `bridge`
+- `doorking`
+
+
+
+
+sensi_metadata Format: Object
+
+
+
+
+sensi_metadata.device_id Format: String
+
+
+
+
+sensi_metadata.device_name Format: String
+
+
+
+
+sensi_metadata.product_type Format: String
+
+
+
+
+smartthings_metadata Format: Object
+
+
+
+
+smartthings_metadata.device_id Format: String
+
+
+
+
+smartthings_metadata.device_name Format: String
+
+
+
+
+smartthings_metadata.location_id Format: String
+
+
+
+
+smartthings_metadata.model Format: String
+
+
+
+
+tado_metadata Format: Object
+
+
+
+
+tado_metadata.device_type Format: String
+
+
+
+
+tado_metadata.serial_no Format: String
+
+
+
+
+tedee_metadata Format: Object
+
+
+
+
+tedee_metadata.bridge_id Format: Number
+
+
+
+
+tedee_metadata.bridge_name Format: String
+
+
+
+
+tedee_metadata.device_id Format: Number
+
+
+
+
+tedee_metadata.device_model Format: String
+
+
+
+
+tedee_metadata.device_name Format: String
+
+
+
+
+tedee_metadata.keypad_id Format: Number
+
+
+
+
+tedee_metadata.serial_number Format: String
+
+
+
+
+ttlock_metadata Format: Object
+
+
+
+
+ttlock_metadata.feature_value Format: String
+
+
+
+
+ttlock_metadata.features Format: Object
+
+
+
+
+ttlock_metadata.features.incomplete_keyboard_passcode Format: Boolean
+
+
+
+
+ttlock_metadata.features.lock_command Format: Boolean
+
+
+
+
+ttlock_metadata.features.passcode Format: Boolean
+
+
+
+
+ttlock_metadata.features.passcode_management Format: Boolean
+
+
+
+
+ttlock_metadata.features.unlock_via_gateway Format: Boolean
+
+
+
+
+ttlock_metadata.features.wifi Format: Boolean
+
+
+
+
+ttlock_metadata.has_gateway Format: Boolean
+
+
+
+
+ttlock_metadata.lock_alias Format: String
+
+
+
+
+ttlock_metadata.lock_id Format: Number
+
+
+
+
+ttlock_metadata.wireless_keypads Format: List Item format: Object
+
+- wireless_keypad_id Format: Number
+
+
+- wireless_keypad_name Format: String
+
+
+
+
+
+two_n_metadata Format: Object
+
+
+
+
+two_n_metadata.device_id Format: Number
+
+
+
+
+two_n_metadata.device_name Format: String
+
+
+
+
+visionline_metadata Format: Object
+
+
+
+
+visionline_metadata.encoder_id Format: String
+
+
+
+
+wyze_metadata Format: Object
+
+
+
+
+wyze_metadata.device_id Format: String
+
+
+
+
+wyze_metadata.device_info_model Format: String
+
+
+
+
+wyze_metadata.device_name Format: String
+
+
+
+
+wyze_metadata.keypad_uuid Format: String
+
+
+
+
+wyze_metadata.locker_status_hardlock Format: Number
+
+
+
+
+wyze_metadata.product_model Format: String
+
+
+
+
+wyze_metadata.product_name Format: String
+
+
+
+
+wyze_metadata.product_type Format: String
+
+
+
+
+_experimental_supported_code_from_access_codes_lengths Format: List Item format: Number
+
+
+
+
+code_constraints Format: List Item format: Object
+
+- constraint_type Format: Enum
+
+ Possible enum values:
+ - `no_zeros`
+ - `cannot_start_with_12`
+ - `no_triple_consecutive_ints`
+ - `cannot_specify_pin_code`
+ - `pin_code_matches_existing_set`
+ - `start_date_in_future`
+ - `no_ascending_or_descending_sequence`
+ - `at_least_three_unique_digits`
+ - `cannot_contain_089`
+ - `cannot_contain_0789`
+ - `name_length`
+ - `name_must_be_unique`
+
+
+- max_length Format: Number
+
+
+- min_length Format: Number
+
+
+
+
+
+door_open Format: Boolean
+
+
+
+
+has_native_entry_events Format: Boolean
+
+
+
+
+keypad_battery Format: Object
+
+
+
+
+keypad_battery.level Format: Number
+
+
+
+
+locked Format: Boolean
+
+
+
+
+max_active_codes_supported Format: Number
+
+
+
+
+supported_code_lengths Format: List Item format: Number
+
+
+
+
+supports_backup_access_code_pool Format: Boolean
+
+
+
+
+active_thermostat_schedule Format: Object
+
+Represents a [thermostat schedule](../../capability-guides/thermostats/creating-and-managing-thermostat-schedules.md) that activates a configured [climate preset](../../capability-guides/thermostats/creating-and-managing-climate-presets/README.md) on a [thermostat](https://docs.seam.co/latest/capability-guides/thermostats) at a specified starting time and deactivates the climate preset at a specified ending time.
+
+
+
+
+active_thermostat_schedule.climate_preset_key Format: String
+
+Key of the [climate preset](../../capability-guides/thermostats/creating-and-managing-climate-presets/README.md) to use for the [thermostat schedule](../../capability-guides/thermostats/creating-and-managing-thermostat-schedules.md).
+
+
+
+
+active_thermostat_schedule.created_at Format: Datetime
+
+Date and time at which the [thermostat schedule](../../capability-guides/thermostats/creating-and-managing-thermostat-schedules.md) was created.
+
+
+
+
+active_thermostat_schedule.device_id Format: UUID
+
+ID of the desired [thermostat](https://docs.seam.co/latest/capability-guides/thermostats) device.
+
+
+
+
+active_thermostat_schedule.ends_at Format: Datetime
+
+Date and time at which the [thermostat schedule](../../capability-guides/thermostats/creating-and-managing-thermostat-schedules.md) ends, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format.
+
+
+
+
+active_thermostat_schedule.errors Format: List Item format: Object
+
+Errors associated with the [thermostat schedule](../../capability-guides/thermostats/creating-and-managing-thermostat-schedules.md).
+
+- error_code Format: String
+
+ Unique identifier of the type of error. Enables quick recognition and categorization of the issue.
+
+
+- message Format: String
+
+ Detailed description of the error. Provides insights into the issue and potentially how to rectify it.
+
+
+
+
+
+active_thermostat_schedule.is_override_allowed Format: Boolean
+
+Indicates whether a person at the thermostat can change the thermostat's settings after the [thermostat schedule](../../capability-guides/thermostats/creating-and-managing-thermostat-schedules.md) starts.
+
+
+
+
+active_thermostat_schedule.max_override_period_minutes Format: Number
+
+Number of minutes for which a person at the thermostat can change the thermostat's settings after the activation of the scheduled [climate preset](../../capability-guides/thermostats/creating-and-managing-climate-presets/README.md). See also [Specifying Manual Override Permissions](../../capability-guides/thermostats/creating-and-managing-thermostat-schedules.md#specifying-manual-override-permissions).
+
+
+
+
+active_thermostat_schedule.name Format: String
+
+User-friendly name to identify the [thermostat schedule](../../capability-guides/thermostats/creating-and-managing-thermostat-schedules.md).
+
+
+
+
+active_thermostat_schedule.starts_at Format: Datetime
+
+Date and time at which the [thermostat schedule](../../capability-guides/thermostats/creating-and-managing-thermostat-schedules.md) starts, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format.
+
+
+
+
+active_thermostat_schedule.thermostat_schedule_id Format: UUID
+
+ID of the [thermostat schedule](../../capability-guides/thermostats/creating-and-managing-thermostat-schedules.md).
+
+
+
+
+available_climate_presets Format: List Item format: Object
+
+- can_delete Format: Boolean
+
+ Indicates whether the [climate preset](../../capability-guides/thermostats/creating-and-managing-climate-presets/README.md) key can be deleted.
+
+
+- can_edit Format: Boolean
+
+ Indicates whether the [climate preset](../../capability-guides/thermostats/creating-and-managing-climate-presets/README.md) key can be edited.
+
+
+- can_program Format: Boolean
+
+ Indicates whether the [climate preset](../../capability-guides/thermostats/creating-and-managing-climate-presets/README.md) key can be programmed in a thermostat daily program.
+
+
+- climate_preset_key Format: String
+
+ Unique key to identify the [climate preset](../../capability-guides/thermostats/creating-and-managing-climate-presets/README.md).
+
+
+- cooling_set_point_celsius Format: Number
+
+ Temperature to which the thermostat should cool (in °C). See also [Set Points](../../capability-guides/thermostats/understanding-thermostat-concepts/set-points.md).
+
+
+- cooling_set_point_fahrenheit Format: Number
+
+ Temperature to which the thermostat should cool (in °F). See also [Set Points](../../capability-guides/thermostats/understanding-thermostat-concepts/set-points.md).
+
+
+- display_name Format: String
+
+ Display name for the [climate preset](../../capability-guides/thermostats/creating-and-managing-climate-presets/README.md).
+
+
+- fan_mode_setting Format: Enum
+
+ Desired [fan mode setting](https://docs.seam.co/latest/capability-guides/thermostats/configure-current-climate-settings#fan-mode-settings), such as `on`, `auto`, or `circulate`.
+
+ Possible enum values:
+ - `auto`
+ - `on`
+ - `circulate`
+
+
+- heating_set_point_celsius Format: Number
+
+ Temperature to which the thermostat should heat (in °C). See also [Set Points](../../capability-guides/thermostats/understanding-thermostat-concepts/set-points.md).
+
+
+- heating_set_point_fahrenheit Format: Number
+
+ Temperature to which the thermostat should heat (in °F). See also [Set Points](../../capability-guides/thermostats/understanding-thermostat-concepts/set-points.md).
+
+
+- hvac_mode_setting Format: Enum
+
+ Desired [HVAC mode](../../capability-guides/thermostats/understanding-thermostat-concepts/hvac-mode.md) setting, such as `heat`, `cool`, `heat_cool`, or `off`.
+
+ Possible enum values:
+ - `off`
+ - `heat`
+ - `cool`
+ - `heat_cool`
+
+
+- manual_override_allowed Format: Boolean
+
+ {% hint style="warning" %}
+ **Deprecated**. Use 'thermostat_schedule.is_override_allowed'
+ {% endhint %}
+
+ Indicates whether a person at the thermostat can change the thermostat's settings. See [Specifying Manual Override Permissions](../../capability-guides/thermostats/creating-and-managing-thermostat-schedules.md#specifying-manual-override-permissions).
+
+
+- name Format: String
+
+ User-friendly name to identify the [climate preset](../../capability-guides/thermostats/creating-and-managing-climate-presets/README.md).
+
+
+
+
+
+available_fan_mode_settings Format: List Item format: Enum
+
+
+
+
+available_hvac_mode_settings Format: List Item format: Enum
+
+
+
+
+current_climate_setting Format: Object
+
+
+
+
+current_climate_setting.can_delete Format: Boolean
+
+Indicates whether the [climate preset](../../capability-guides/thermostats/creating-and-managing-climate-presets/README.md) key can be deleted.
+
+
+
+
+current_climate_setting.can_edit Format: Boolean
+
+Indicates whether the [climate preset](../../capability-guides/thermostats/creating-and-managing-climate-presets/README.md) key can be edited.
+
+
+
+
+current_climate_setting.can_program Format: Boolean
+
+Indicates whether the [climate preset](../../capability-guides/thermostats/creating-and-managing-climate-presets/README.md) key can be programmed in a thermostat daily program.
+
+
+
+
+current_climate_setting.climate_preset_key Format: String
+
+Unique key to identify the [climate preset](../../capability-guides/thermostats/creating-and-managing-climate-presets/README.md).
+
+
+
+
+current_climate_setting.cooling_set_point_celsius Format: Number
+
+Temperature to which the thermostat should cool (in °C). See also [Set Points](../../capability-guides/thermostats/understanding-thermostat-concepts/set-points.md).
+
+
+
+
+current_climate_setting.cooling_set_point_fahrenheit Format: Number
+
+Temperature to which the thermostat should cool (in °F). See also [Set Points](../../capability-guides/thermostats/understanding-thermostat-concepts/set-points.md).
+
+
+
+
+current_climate_setting.display_name Format: String
+
+Display name for the [climate preset](../../capability-guides/thermostats/creating-and-managing-climate-presets/README.md).
+
+
+
+
+current_climate_setting.fan_mode_setting Format: Enum
+
+Desired [fan mode setting](https://docs.seam.co/latest/capability-guides/thermostats/configure-current-climate-settings#fan-mode-settings), such as `on`, `auto`, or `circulate`.
+
+Possible enum values:
+- `auto`
+- `on`
+- `circulate`
+
+
+
+
+current_climate_setting.heating_set_point_celsius Format: Number
+
+Temperature to which the thermostat should heat (in °C). See also [Set Points](../../capability-guides/thermostats/understanding-thermostat-concepts/set-points.md).
+
+
+
+
+current_climate_setting.heating_set_point_fahrenheit Format: Number
+
+Temperature to which the thermostat should heat (in °F). See also [Set Points](../../capability-guides/thermostats/understanding-thermostat-concepts/set-points.md).
+
+
+
+
+current_climate_setting.hvac_mode_setting Format: Enum
+
+Desired [HVAC mode](../../capability-guides/thermostats/understanding-thermostat-concepts/hvac-mode.md) setting, such as `heat`, `cool`, `heat_cool`, or `off`.
+
+Possible enum values:
+- `off`
+- `heat`
+- `cool`
+- `heat_cool`
+
+
+
+
+current_climate_setting.manual_override_allowed Format: Boolean
+
+{% hint style="warning" %}
+**Deprecated**. Use 'thermostat_schedule.is_override_allowed'
+{% endhint %}
+
+Indicates whether a person at the thermostat can change the thermostat's settings. See [Specifying Manual Override Permissions](../../capability-guides/thermostats/creating-and-managing-thermostat-schedules.md#specifying-manual-override-permissions).
+
+
+
+
+current_climate_setting.name Format: String
+
+User-friendly name to identify the [climate preset](../../capability-guides/thermostats/creating-and-managing-climate-presets/README.md).
+
+
+
+
+default_climate_setting Format: Object
+
+{% hint style="warning" %}
+**Deprecated**. use fallback_climate_preset_key to specify a fallback climate preset instead.
+{% endhint %}
+
+
+
+
+default_climate_setting.can_delete Format: Boolean
+
+Indicates whether the [climate preset](../../capability-guides/thermostats/creating-and-managing-climate-presets/README.md) key can be deleted.
+
+
+
+
+default_climate_setting.can_edit Format: Boolean
+
+Indicates whether the [climate preset](../../capability-guides/thermostats/creating-and-managing-climate-presets/README.md) key can be edited.
+
+
+
+
+default_climate_setting.can_program Format: Boolean
+
+Indicates whether the [climate preset](../../capability-guides/thermostats/creating-and-managing-climate-presets/README.md) key can be programmed in a thermostat daily program.
+
+
+
+
+default_climate_setting.climate_preset_key Format: String
+
+Unique key to identify the [climate preset](../../capability-guides/thermostats/creating-and-managing-climate-presets/README.md).
+
+
+
+
+default_climate_setting.cooling_set_point_celsius Format: Number
+
+Temperature to which the thermostat should cool (in °C). See also [Set Points](../../capability-guides/thermostats/understanding-thermostat-concepts/set-points.md).
+
+
+
+
+default_climate_setting.cooling_set_point_fahrenheit Format: Number
+
+Temperature to which the thermostat should cool (in °F). See also [Set Points](../../capability-guides/thermostats/understanding-thermostat-concepts/set-points.md).
+
+
+
+
+default_climate_setting.display_name Format: String
+
+Display name for the [climate preset](../../capability-guides/thermostats/creating-and-managing-climate-presets/README.md).
+
+
+
+
+default_climate_setting.fan_mode_setting Format: Enum
+
+Desired [fan mode setting](https://docs.seam.co/latest/capability-guides/thermostats/configure-current-climate-settings#fan-mode-settings), such as `on`, `auto`, or `circulate`.
+
+Possible enum values:
+- `auto`
+- `on`
+- `circulate`
+
+
+
+
+default_climate_setting.heating_set_point_celsius Format: Number
+
+Temperature to which the thermostat should heat (in °C). See also [Set Points](../../capability-guides/thermostats/understanding-thermostat-concepts/set-points.md).
+
+
+
+
+default_climate_setting.heating_set_point_fahrenheit Format: Number
+
+Temperature to which the thermostat should heat (in °F). See also [Set Points](../../capability-guides/thermostats/understanding-thermostat-concepts/set-points.md).
+
+
+
+
+default_climate_setting.hvac_mode_setting Format: Enum
+
+Desired [HVAC mode](../../capability-guides/thermostats/understanding-thermostat-concepts/hvac-mode.md) setting, such as `heat`, `cool`, `heat_cool`, or `off`.
+
+Possible enum values:
+- `off`
+- `heat`
+- `cool`
+- `heat_cool`
+
+
+
+
+default_climate_setting.manual_override_allowed Format: Boolean
+
+{% hint style="warning" %}
+**Deprecated**. Use 'thermostat_schedule.is_override_allowed'
+{% endhint %}
+
+Indicates whether a person at the thermostat can change the thermostat's settings. See [Specifying Manual Override Permissions](../../capability-guides/thermostats/creating-and-managing-thermostat-schedules.md#specifying-manual-override-permissions).
+
+
+
+
+default_climate_setting.name Format: String
+
+User-friendly name to identify the [climate preset](../../capability-guides/thermostats/creating-and-managing-climate-presets/README.md).
+
+
+
+
+fallback_climate_preset_key Format: String
+
+
+
+
+fan_mode_setting Format: Enum
+
+{% hint style="warning" %}
+**Deprecated**. use current_climate_setting.fan_mode_setting instead.
+{% endhint %}
+
+Possible enum values:
+- `auto`
+- `on`
+- `circulate`
+
+
+
+
+is_cooling Format: Boolean
+
+
+
+
+is_fan_running Format: Boolean
+
+
+
+
+is_heating Format: Boolean
+
+
+
+
+is_temporary_manual_override_active Format: Boolean
+
+
+
+
+max_cooling_set_point_celsius Format: Number
+
+
+
+
+max_cooling_set_point_fahrenheit Format: Number
+
+
+
+
+max_heating_set_point_celsius Format: Number
+
+
+
+
+max_heating_set_point_fahrenheit Format: Number
+
+
+
+
+min_cooling_set_point_celsius Format: Number
+
+
+
+
+min_cooling_set_point_fahrenheit Format: Number
+
+
+
+
+min_heating_cooling_delta_celsius Format: Number
+
+
+
+
+min_heating_cooling_delta_fahrenheit Format: Number
+
+
+
+
+min_heating_set_point_celsius Format: Number
+
+
+
+
+min_heating_set_point_fahrenheit Format: Number
+
+
+
+
+relative_humidity Format: Number
+
+
+
+
+temperature_celsius Format: Number
+
+
+
+
+temperature_fahrenheit Format: Number
+
+
+
+
+temperature_threshold Format: Object
+
+
+
+
+temperature_threshold.lower_limit_celsius Format: Number
+
+
+
+
+temperature_threshold.lower_limit_fahrenheit Format: Number
+
+
+
+
+temperature_threshold.upper_limit_celsius Format: Number
+
+
+
+
+temperature_threshold.upper_limit_fahrenheit Format: Number
+
+
+
+
+thermostat_daily_programs Format: List Item format: Object
+
+- created_at Format: Datetime
+
+ Date and time at which the thermostat daily program was created.
+
+
+- device_id Format: UUID
+
+ ID of the desired thermostat device.
+
+
+- name Format: String
+
+ User-friendly name to identify the thermostat daily program.
+
+
+- periods Format: List Item format: Object
+
+ Array of thermostat daily program periods.
+
+- climate_preset_key Format: String
+
+ Key of the [climate preset](../../capability-guides/thermostats/creating-and-managing-climate-presets/README.md) to activate at the starts_at_time.
+
+
+- starts_at_time Format: String
+
+ Time at which the thermostat daily program entry starts, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format.
+
+
+
+- thermostat_daily_program_id Format: UUID
+
+ ID of the thermostat daily program.
+
+
+
+
+
+thermostat_weekly_program Format: Object
+
+
+
+
+thermostat_weekly_program.created_at Format: Datetime
+
+Date and time at which the thermostat weekly program was created.
+
+
+
+
+thermostat_weekly_program.device_id Format: UUID
+
+ID of the thermostat device the weekly program is for.
+
+
+
+
+thermostat_weekly_program.friday_program_id Format: UUID
+
+ID of the thermostat daily program to run on Fridays.
+
+
+
+
+thermostat_weekly_program.monday_program_id Format: UUID
+
+ID of the thermostat daily program to run on Mondays.
+
+
+
+
+thermostat_weekly_program.saturday_program_id Format: UUID
+
+ID of the thermostat daily program to run on Saturdays.
+
+
+
+
+thermostat_weekly_program.sunday_program_id Format: UUID
+
+ID of the thermostat daily program to run on Sundays.
+
+
+
+
+thermostat_weekly_program.thursday_program_id Format: UUID
+
+ID of the thermostat daily program to run on Thursdays.
+
+
+
+
+thermostat_weekly_program.tuesday_program_id Format: UUID
+
+ID of the thermostat daily program to run on Tuesdays.
+
+
+
+
+thermostat_weekly_program.wednesday_program_id Format: UUID
+
+ID of the thermostat daily program to run on Wednesdays.
+
+
+---
+
+### [`warnings`](./#warnings-1)
+
+Format: `List`
+
+Item format: `Object`
+
+Array of warnings associated with the device. Each warning object within the array contains two fields: "warning_code" and "message." "warning_code" is a string that uniquely identifies the type of warning, enabling quick recognition and categorization of the issue. "message" provides a more detailed description of the warning, offering insights into the issue and potentially how to rectify it.
+
+The specific structure of each object in this list depends on the value of its `warning_code` field.
+
+Variants:
+
+partial_backup_access_code_pool
+
+Backup access code unhealthy.
+
+**`created_at`**
+Format: `Datetime`
+
+
+---
+
+**`message`**
+Format: `String`
+
+
+---
+
+**`warning_code`**
+Format: `Enum`
+
+
+Unique identifier of the type of warning. Enables quick recognition and categorization of the issue.
+
+Possible enum values:
+- `partial_backup_access_code_pool`
+
+
+
+many_active_backup_codes
+
+Too many backup codes.
+
+**`created_at`**
+Format: `Datetime`
+
+
+---
+
+**`message`**
+Format: `String`
+
+
+---
+
+**`warning_code`**
+Format: `Enum`
+
+
+Unique identifier of the type of warning. Enables quick recognition and categorization of the issue.
+
+Possible enum values:
+- `many_active_backup_codes`
+
+
+
+wyze_device_missing_gateway
+
+Wyze Lock is not connected to a gateway.
+
+**`created_at`**
+Format: `Datetime`
+
+
+---
+
+**`message`**
+Format: `String`
+
+
+---
+
+**`warning_code`**
+Format: `Enum`
+
+
+Unique identifier of the type of warning. Enables quick recognition and categorization of the issue.
+
+Possible enum values:
+- `wyze_device_missing_gateway`
+
+
+
+functional_offline_device
+
+Device is offline, but has some functionality available.
+
+**`created_at`**
+Format: `Datetime`
+
+
+---
+
+**`message`**
+Format: `String`
+
+
+---
+
+**`warning_code`**
+Format: `Enum`
+
+
+Unique identifier of the type of warning. Enables quick recognition and categorization of the issue.
+
+Possible enum values:
+- `functional_offline_device`
+
+
+
+third_party_integration_detected
+
+Third-party integration detected.
+
+**`created_at`**
+Format: `Datetime`
+
+
+---
+
+**`message`**
+Format: `String`
+
+
+---
+
+**`warning_code`**
+Format: `Enum`
+
+
+Unique identifier of the type of warning. Enables quick recognition and categorization of the issue.
+
+Possible enum values:
+- `third_party_integration_detected`
+
+
+
+nest_thermostat_in_manual_eco_mode
+
+Nest thermostat in manual eco mode.
+
+**`created_at`**
+Format: `Datetime`
+
+
+---
+
+**`message`**
+Format: `String`
+
+
+---
+
+**`warning_code`**
+Format: `Enum`
+
+
+Unique identifier of the type of warning. Enables quick recognition and categorization of the issue.
+
+Possible enum values:
+- `nest_thermostat_in_manual_eco_mode`
+
+
+
+ttlock_lock_gateway_unlocking_not_enabled
+
+Remote Unlock feature not enabled in settings.
+
+**`created_at`**
+Format: `Datetime`
+
+
+---
+
+**`message`**
+Format: `String`
+
+
+---
+
+**`warning_code`**
+Format: `Enum`
+
+
+Unique identifier of the type of warning. Enables quick recognition and categorization of the issue.
+
+Possible enum values:
+- `ttlock_lock_gateway_unlocking_not_enabled`
+
+
+
+ttlock_weak_gateway_signal
+
+Gateway signal is weak.
+
+**`created_at`**
+Format: `Datetime`
+
+
+---
+
+**`message`**
+Format: `String`
+
+
+---
+
+**`warning_code`**
+Format: `Enum`
+
+
+Unique identifier of the type of warning. Enables quick recognition and categorization of the issue.
+
+Possible enum values:
+- `ttlock_weak_gateway_signal`
+
+
+
+temperature_threshold_exceeded
+
+Temperature threshold exceeded.
+
+**`created_at`**
+Format: `Datetime`
+
+
+---
+
+**`message`**
+Format: `String`
+
+
+---
+
+**`warning_code`**
+Format: `Enum`
+
+
+Unique identifier of the type of warning. Enables quick recognition and categorization of the issue.
+
+Possible enum values:
+- `temperature_threshold_exceeded`
+
+
+
+device_communication_degraded
+
+Device appears to be unresponsive.
+
+**`created_at`**
+Format: `Datetime`
+
+
+---
+
+**`message`**
+Format: `String`
+
+
+---
+
+**`warning_code`**
+Format: `Enum`
+
+
+Unique identifier of the type of warning. Enables quick recognition and categorization of the issue.
+
+Possible enum values:
+- `device_communication_degraded`
+
+
+
+scheduled_maintenance_window
+
+Scheduled maintenance window detected.
+
+**`created_at`**
+Format: `Datetime`
+
+
+---
+
+**`message`**
+Format: `String`
+
+
+---
+
+**`warning_code`**
+Format: `Enum`
+
+
+Unique identifier of the type of warning. Enables quick recognition and categorization of the issue.
+
+Possible enum values:
+- `scheduled_maintenance_window`
+
+
+
+device_has_flaky_connection
+
+Device has flaky connection.
+
+**`created_at`**
+Format: `Datetime`
+
+
+---
+
+**`message`**
+Format: `String`
+
+
+---
+
+**`warning_code`**
+Format: `Enum`
+
+
+Unique identifier of the type of warning. Enables quick recognition and categorization of the issue.
+
+Possible enum values:
+- `device_has_flaky_connection`
+
+
+
+salto_ks_office_mode
+
+Lock is in Office Mode. Access Codes will not unlock doors.
+
+**`created_at`**
+Format: `Datetime`
+
+
+---
+
+**`message`**
+Format: `String`
+
+
+---
+
+**`warning_code`**
+Format: `Enum`
+
+
+Unique identifier of the type of warning. Enables quick recognition and categorization of the issue.
+
+Possible enum values:
+- `salto_ks_office_mode`
+
+
+
+salto_ks_privacy_mode
+
+Lock is in Privacy Mode. Access Codes will not unlock doors.
+
+**`created_at`**
+Format: `Datetime`
+
+
+---
+
+**`message`**
+Format: `String`
+
+
+---
+
+**`warning_code`**
+Format: `Enum`
+
+
+Unique identifier of the type of warning. Enables quick recognition and categorization of the issue.
+
+Possible enum values:
+- `salto_ks_privacy_mode`
+
+
+
+salto_ks_subscription_limit_almost_reached
+
+Indicates that the Salto KS site has exceeded 80% of the maximum number of allowed users. Please increase your subscription limit, or delete some users from your site to rectify this.
+
+**`created_at`**
+Format: `Datetime`
+
+
+---
+
+**`message`**
+Format: `String`
+
+
+---
+
+**`warning_code`**
+Format: `Enum`
+
+
+Unique identifier of the type of warning. Enables quick recognition and categorization of the issue.
+
+Possible enum values:
+- `salto_ks_subscription_limit_almost_reached`
+
+
+
+unknown_issue_with_phone
+
+An unknown issue occurred while syncing the state of this phone with the provider. This issue may affect the proper functioning of this phone.
+
+**`created_at`**
+Format: `Datetime`
+
+
+---
+
+**`message`**
+Format: `String`
+
+
+---
+
+**`warning_code`**
+Format: `Enum`
+
+
+Unique identifier of the type of warning. Enables quick recognition and categorization of the issue.
+
+Possible enum values:
+- `unknown_issue_with_phone`
+
+
+
+lockly_time_zone_not_configured
+
+We detected that this device does not have a time zone configured. Time bound codes may not work as expected.
+
+**`created_at`**
+Format: `Datetime`
+
+
+---
+
+**`message`**
+Format: `String`
+
+
+---
+
+**`warning_code`**
+Format: `Enum`
+
+
+Unique identifier of the type of warning. Enables quick recognition and categorization of the issue.
+
+Possible enum values:
+- `lockly_time_zone_not_configured`
+
+
+
+---
+
+### `workspace_id`
+
+Format: `UUID`
+
+Unique identifier for the Seam workspace associated with the device.
+
+---
+
+## Errors
+
+### `account_disconnected`
+
+Account is disconnected
+
+---
+
+### `salto_ks_subscription_limit_exceeded`
+
+Salto site user limit reached.
+
+---
+
+### `device_offline`
+
+Device is offline
+
+---
+
+### `device_removed`
+
+Device has been removed
+
+---
+
+### `hub_disconnected`
+
+Hub is disconnected
+
+---
+
+### `device_disconnected`
+
+Device is disconnected
+
+---
+
+### `empty_backup_access_code_pool`
+
+The backup access code pool is empty.
+
+---
+
+### `august_lock_not_authorized`
+
+User is not authorized to use the August Lock.
+
+---
+
+### `august_lock_missing_bridge`
+
+Lock is not connected to the Seam Bridge.
+
+---
+
+### `ttlock_lock_not_paired_to_gateway`
+
+Lock is not paired with a Gateway.
+
+---
+
+### `missing_device_credentials`
+
+Missing device credentials.
+
+---
+
+### `auxiliary_heat_running`
+
+The auxiliary heat is running.
+
+---
+
+### `subscription_required`
+
+Subscription required to connect.
+
+---
+
+### `invalid_credentials`
+
+Credentials provided were invalid.
+
+---
+
+### `bridge_disconnected`
+
+Indicates that the Seam API cannot communicate with [Seam Bridge](../../capability-guides/seam-bridge.md), for example, if Seam Bridge executable has stopped or if the computer running the Seam Bridge executable is offline.
+ See also [Troubleshooting Your Access Control System](../../capability-guides/access-systems/troubleshooting-your-access-control-system.md#acs_system.errors.seam_bridge_disconnected).
+
+---
+
+## Warnings
+
+### `partial_backup_access_code_pool`
+
+Backup access code unhealthy.
+
+---
+
+### `many_active_backup_codes`
+
+Too many backup codes.
+
+---
+
+### `wyze_device_missing_gateway`
+
+Wyze Lock is not connected to a gateway.
+
+---
+
+### `functional_offline_device`
+
+Device is offline, but has some functionality available.
+
+---
+
+### `third_party_integration_detected`
+
+Third-party integration detected.
+
+---
+
+### `nest_thermostat_in_manual_eco_mode`
+
+Nest thermostat in manual eco mode.
+
+---
+
+### `ttlock_lock_gateway_unlocking_not_enabled`
+
+Remote Unlock feature not enabled in settings.
+
+---
+
+### `ttlock_weak_gateway_signal`
+
+Gateway signal is weak.
+
+---
+
+### `temperature_threshold_exceeded`
+
+Temperature threshold exceeded.
+
+---
+
+### `device_communication_degraded`
+
+Device appears to be unresponsive.
+
+---
+
+### `scheduled_maintenance_window`
+
+Scheduled maintenance window detected.
+
+---
+
+### `device_has_flaky_connection`
+
+Device has flaky connection.
+
+---
+
+### `salto_ks_office_mode`
+
+Lock is in Office Mode. Access Codes will not unlock doors.
+
+---
+
+### `salto_ks_privacy_mode`
+
+Lock is in Privacy Mode. Access Codes will not unlock doors.
+
+---
+
+### `salto_ks_subscription_limit_almost_reached`
+
+Indicates that the Salto KS site has exceeded 80% of the maximum number of allowed users. Please increase your subscription limit, or delete some users from your site to rectify this.
+
+---
+
+### `unknown_issue_with_phone`
+
+An unknown issue occurred while syncing the state of this phone with the provider. This issue may affect the proper functioning of this phone.
+
+---
+
+### `lockly_time_zone_not_configured`
+
+We detected that this device does not have a time zone configured. Time bound codes may not work as expected.
+
+---
+
+## Endpoints
+
+### [`/devices/list`](./list.md)
+
+Returns a list of all [devices](../../core-concepts/devices/README.md).
+
+---
+
+## Events
+
+### `device.connected`
+
+The status of a [device](../../core-concepts/devices/README.md) changed from offline to online. That is, the `device.properties.online` property changed from `false` to `true`. Note that some devices operate entirely in offline mode, so Seam never emits a `device.connected` event for these devices.
+
+
+
+connected_account_id Format: UUID
+
+ID of the [connected account](../../core-concepts/connected-accounts/README.md).
+
+
+
+created_at Format: Datetime
+
+Date and time at which the event was created.
+
+
+
+device_id Format: UUID
+
+ID of the device.
+
+
+
+event_id Format: UUID
+
+ID of the event.
+
+
+
+event_type Format: Enum
+
+Value: `device.connected`
+
+
+
+occurred_at Format: Datetime
+
+Date and time at which the event occurred.
+
+
+
+workspace_id Format: UUID
+
+ID of the [workspace](../../core-concepts/workspaces/README.md).
+
+---
+
+### `device.added`
+
+A [device](../../core-concepts/devices/README.md) was added to Seam or was re-added to Seam after having been removed.
+
+
+
+connected_account_id Format: UUID
+
+ID of the [connected account](../../core-concepts/connected-accounts/README.md).
+
+
+
+created_at Format: Datetime
+
+Date and time at which the event was created.
+
+
+
+device_id Format: UUID
+
+ID of the device.
+
+
+
+event_id Format: UUID
+
+ID of the event.
+
+
+
+event_type Format: Enum
+
+Value: `device.added`
+
+
+
+occurred_at Format: Datetime
+
+Date and time at which the event occurred.
+
+
+
+workspace_id Format: UUID
+
+ID of the [workspace](../../core-concepts/workspaces/README.md).
+
+---
+
+### `device.converted_to_unmanaged`
+
+A managed device was successfully converted to an [unmanaged device](../../core-concepts/devices/managed-and-unmanaged-devices.md).
+
+
+
+connected_account_id Format: UUID
+
+ID of the [connected account](../../core-concepts/connected-accounts/README.md).
+
+
+
+created_at Format: Datetime
+
+Date and time at which the event was created.
+
+
+
+device_id Format: UUID
+
+ID of the device.
+
+
+
+event_id Format: UUID
+
+ID of the event.
+
+
+
+event_type Format: Enum
+
+Value: `device.converted_to_unmanaged`
+
+
+
+occurred_at Format: Datetime
+
+Date and time at which the event occurred.
+
+
+
+workspace_id Format: UUID
+
+ID of the [workspace](../../core-concepts/workspaces/README.md).
+
+---
+
+### `device.unmanaged.converted_to_managed`
+
+An [unmanaged device](../../core-concepts/devices/managed-and-unmanaged-devices.md) was successfully converted to a managed device.
+
+
+
+connected_account_id Format: UUID
+
+ID of the [connected account](../../core-concepts/connected-accounts/README.md).
+
+
+
+created_at Format: Datetime
+
+Date and time at which the event was created.
+
+
+
+device_id Format: UUID
+
+ID of the device.
+
+
+
+event_id Format: UUID
+
+ID of the event.
+
+
+
+event_type Format: Enum
+
+Value: `device.unmanaged.converted_to_managed`
+
+
+
+occurred_at Format: Datetime
+
+Date and time at which the event occurred.
+
+
+
+workspace_id Format: UUID
+
+ID of the [workspace](../../core-concepts/workspaces/README.md).
+
+---
+
+### `device.unmanaged.connected`
+
+The status of an [unmanaged device](../../core-concepts/devices/managed-and-unmanaged-devices.md) changed from offline to online. That is, the `device.properties.online` property changed from `false` to `true`.
+
+
+
+connected_account_id Format: UUID
+
+ID of the [connected account](../../core-concepts/connected-accounts/README.md).
+
+
+
+created_at Format: Datetime
+
+Date and time at which the event was created.
+
+
+
+device_id Format: UUID
+
+ID of the device.
+
+
+
+event_id Format: UUID
+
+ID of the event.
+
+
+
+event_type Format: Enum
+
+Value: `device.unmanaged.connected`
+
+
+
+occurred_at Format: Datetime
+
+Date and time at which the event occurred.
+
+
+
+workspace_id Format: UUID
+
+ID of the [workspace](../../core-concepts/workspaces/README.md).
+
+---
+
+### `device.disconnected`
+
+The status of a [device](../../core-concepts/devices/README.md) changed from online to offline. That is, the `device.properties.online` property changed from `true` to `false`.
+
+
+
+connected_account_id Format: UUID
+
+ID of the [connected account](../../core-concepts/connected-accounts/README.md).
+
+
+
+created_at Format: Datetime
+
+Date and time at which the event was created.
+
+
+
+device_id Format: UUID
+
+ID of the device.
+
+
+
+error_code Format: Enum
+
+Error code associated with the disconnection event, if any.
+
+Possible enum values:
+- `account_disconnected`
+- `hub_disconnected`
+- `device_disconnected`
+
+
+
+event_id Format: UUID
+
+ID of the event.
+
+
+
+event_type Format: Enum
+
+Value: `device.disconnected`
+
+
+
+occurred_at Format: Datetime
+
+Date and time at which the event occurred.
+
+
+
+workspace_id Format: UUID
+
+ID of the [workspace](../../core-concepts/workspaces/README.md).
+
+---
+
+### `device.unmanaged.disconnected`
+
+The status of an [unmanaged device](../../core-concepts/devices/managed-and-unmanaged-devices.md) changed from online to offline. That is, the `device.properties.online` property changed from `true` to `false`.
+
+
+
+connected_account_id Format: UUID
+
+ID of the [connected account](../../core-concepts/connected-accounts/README.md).
+
+
+
+created_at Format: Datetime
+
+Date and time at which the event was created.
+
+
+
+device_id Format: UUID
+
+ID of the device.
+
+
+
+error_code Format: Enum
+
+Error code associated with the disconnection event, if any.
+
+Possible enum values:
+- `account_disconnected`
+- `hub_disconnected`
+- `device_disconnected`
+
+
+
+event_id Format: UUID
+
+ID of the event.
+
+
+
+event_type Format: Enum
+
+Value: `device.unmanaged.disconnected`
+
+
+
+occurred_at Format: Datetime
+
+Date and time at which the event occurred.
+
+
+
+workspace_id Format: UUID
+
+ID of the [workspace](../../core-concepts/workspaces/README.md).
+
+---
+
+### `device.tampered`
+
+A [device](../../core-concepts/devices/README.md) detected that it was tampered with, for example, opened or moved.
+
+
+
+connected_account_id Format: UUID
+
+ID of the [connected account](../../core-concepts/connected-accounts/README.md).
+
+
+
+created_at Format: Datetime
+
+Date and time at which the event was created.
+
+
+
+device_id Format: UUID
+
+ID of the device.
+
+
+
+event_id Format: UUID
+
+ID of the event.
+
+
+
+event_type Format: Enum
+
+Value: `device.tampered`
+
+
+
+occurred_at Format: Datetime
+
+Date and time at which the event occurred.
+
+
+
+workspace_id Format: UUID
+
+ID of the [workspace](../../core-concepts/workspaces/README.md).
+
+---
+
+### `device.low_battery`
+
+A [device](../../core-concepts/devices/README.md) battery level dropped below the low threshold.
+
+
+
+battery_level Format: Number
+
+Number in the range 0 to 1.0 indicating the amount of battery in the device, as reported by the device.
+
+
+
+connected_account_id Format: UUID
+
+ID of the [connected account](../../core-concepts/connected-accounts/README.md).
+
+
+
+created_at Format: Datetime
+
+Date and time at which the event was created.
+
+
+
+device_id Format: UUID
+
+ID of the device.
+
+
+
+event_id Format: UUID
+
+ID of the event.
+
+
+
+event_type Format: Enum
+
+Value: `device.low_battery`
+
+
+
+occurred_at Format: Datetime
+
+Date and time at which the event occurred.
+
+
+
+workspace_id Format: UUID
+
+ID of the [workspace](../../core-concepts/workspaces/README.md).
+
+---
+
+### `device.battery_status_changed`
+
+A [device](../../core-concepts/devices/README.md) battery status changed since the last `battery_status_changed` event.
+
+
+
+battery_level Format: Number
+
+Number in the range 0 to 1.0 indicating the amount of battery in the device, as reported by the device.
+
+
+
+battery_status Format: Enum
+
+Battery status of the device, calculated from the numeric `battery_level` value.
+
+Possible enum values:
+- `critical`
+- `low`
+- `good`
+- `full`
+
+
+
+connected_account_id Format: UUID
+
+ID of the [connected account](../../core-concepts/connected-accounts/README.md).
+
+
+
+created_at Format: Datetime
+
+Date and time at which the event was created.
+
+
+
+device_id Format: UUID
+
+ID of the device.
+
+
+
+event_id Format: UUID
+
+ID of the event.
+
+
+
+event_type Format: Enum
+
+Value: `device.battery_status_changed`
+
+
+
+occurred_at Format: Datetime
+
+Date and time at which the event occurred.
+
+
+
+workspace_id Format: UUID
+
+ID of the [workspace](../../core-concepts/workspaces/README.md).
+
+---
+
+### `device.removed`
+
+A [device](../../core-concepts/devices/README.md) was removed externally from the [connected account](../../core-concepts/connected-accounts/README.md).
+
+
+
+connected_account_id Format: UUID
+
+ID of the [connected account](../../core-concepts/connected-accounts/README.md).
+
+
+
+created_at Format: Datetime
+
+Date and time at which the event was created.
+
+
+
+device_id Format: UUID
+
+ID of the device.
+
+
+
+event_id Format: UUID
+
+ID of the event.
+
+
+
+event_type Format: Enum
+
+Value: `device.removed`
+
+
+
+occurred_at Format: Datetime
+
+Date and time at which the event occurred.
+
+
+
+workspace_id Format: UUID
+
+ID of the [workspace](../../core-concepts/workspaces/README.md).
+
+---
+
+### `device.deleted`
+
+A [device](../../core-concepts/devices/README.md) was deleted.
+
+
+
+connected_account_id Format: UUID
+
+ID of the [connected account](../../core-concepts/connected-accounts/README.md).
+
+
+
+created_at Format: Datetime
+
+Date and time at which the event was created.
+
+
+
+device_id Format: UUID
+
+ID of the device.
+
+
+
+event_id Format: UUID
+
+ID of the event.
+
+
+
+event_type Format: Enum
+
+Value: `device.deleted`
+
+
+
+occurred_at Format: Datetime
+
+Date and time at which the event occurred.
+
+
+
+workspace_id Format: UUID
+
+ID of the [workspace](../../core-concepts/workspaces/README.md).
+
+---
+
+### `device.third_party_integration_detected`
+
+Seam detected that a [device](../../core-concepts/devices/README.md) is using a third-party integration that will interfere with Seam device management.
+
+
+
+connected_account_id Format: UUID
+
+ID of the [connected account](../../core-concepts/connected-accounts/README.md).
+
+
+
+created_at Format: Datetime
+
+Date and time at which the event was created.
+
+
+
+device_id Format: UUID
+
+ID of the device.
+
+
+
+event_id Format: UUID
+
+ID of the event.
+
+
+
+event_type Format: Enum
+
+Value: `device.third_party_integration_detected`
+
+
+
+occurred_at Format: Datetime
+
+Date and time at which the event occurred.
+
+
+
+workspace_id Format: UUID
+
+ID of the [workspace](../../core-concepts/workspaces/README.md).
+
+---
+
+### `device.third_party_integration_no_longer_detected`
+
+Seam detected that a [device](../../core-concepts/devices/README.md) is no longer using a third-party integration that was interfering with Seam device management.
+
+
+
+connected_account_id Format: UUID
+
+ID of the [connected account](../../core-concepts/connected-accounts/README.md).
+
+
+
+created_at Format: Datetime
+
+Date and time at which the event was created.
+
+
+
+device_id Format: UUID
+
+ID of the device.
+
+
+
+event_id Format: UUID
+
+ID of the event.
+
+
+
+event_type Format: Enum
+
+Value: `device.third_party_integration_no_longer_detected`
+
+
+
+occurred_at Format: Datetime
+
+Date and time at which the event occurred.
+
+
+
+workspace_id Format: UUID
+
+ID of the [workspace](../../core-concepts/workspaces/README.md).
+
+---
+
+### `device.salto.privacy_mode_activated`
+
+A [Salto device](https://docs.seam.co/latest/device-and-system-integration-guides/salto-locks) activated privacy mode.
+
+
+
+connected_account_id Format: UUID
+
+ID of the [connected account](../../core-concepts/connected-accounts/README.md).
+
+
+
+created_at Format: Datetime
+
+Date and time at which the event was created.
+
+
+
+device_id Format: UUID
+
+ID of the device.
+
+
+
+event_id Format: UUID
+
+ID of the event.
+
+
+
+event_type Format: Enum
+
+Value: `device.salto.privacy_mode_activated`
+
+
+
+occurred_at Format: Datetime
+
+Date and time at which the event occurred.
+
+
+
+workspace_id Format: UUID
+
+ID of the [workspace](../../core-concepts/workspaces/README.md).
+
+---
+
+### `device.salto.privacy_mode_deactivated`
+
+A [Salto device](https://docs.seam.co/latest/device-and-system-integration-guides/salto-locks) deactivated privacy mode.
+
+
+
+connected_account_id Format: UUID
+
+ID of the [connected account](../../core-concepts/connected-accounts/README.md).
+
+
+
+created_at Format: Datetime
+
+Date and time at which the event was created.
+
+
+
+device_id Format: UUID
+
+ID of the device.
+
+
+
+event_id Format: UUID
+
+ID of the event.
+
+
+
+event_type Format: Enum
+
+Value: `device.salto.privacy_mode_deactivated`
+
+
+
+occurred_at Format: Datetime
+
+Date and time at which the event occurred.
+
+
+
+workspace_id Format: UUID
+
+ID of the [workspace](../../core-concepts/workspaces/README.md).
+
+---
+
+### `device.connection_became_flaky`
+
+Seam detected a flaky [device](../../core-concepts/devices/README.md) connection.
+
+
+
+connected_account_id Format: UUID
+
+ID of the [connected account](../../core-concepts/connected-accounts/README.md).
+
+
+
+created_at Format: Datetime
+
+Date and time at which the event was created.
+
+
+
+device_id Format: UUID
+
+ID of the device.
+
+
+
+event_id Format: UUID
+
+ID of the event.
+
+
+
+event_type Format: Enum
+
+Value: `device.connection_became_flaky`
+
+
+
+occurred_at Format: Datetime
+
+Date and time at which the event occurred.
+
+
+
+workspace_id Format: UUID
+
+ID of the [workspace](../../core-concepts/workspaces/README.md).
+
+---
+
+### `device.connection_stabilized`
+
+Seam detected that a previously-flaky [device](../../core-concepts/devices/README.md) connection stabilized.
+
+
+
+connected_account_id Format: UUID
+
+ID of the [connected account](../../core-concepts/connected-accounts/README.md).
+
+
+
+created_at Format: Datetime
+
+Date and time at which the event was created.
+
+
+
+device_id Format: UUID
+
+ID of the device.
+
+
+
+event_id Format: UUID
+
+ID of the event.
+
+
+
+event_type Format: Enum
+
+Value: `device.connection_stabilized`
+
+
+
+occurred_at Format: Datetime
+
+Date and time at which the event occurred.
+
+
+
+workspace_id Format: UUID
+
+ID of the [workspace](../../core-concepts/workspaces/README.md).
+
+---
+
+### `device.error.subscription_required`
+
+A third-party subscription is required to use all [device](../../core-concepts/devices/README.md) features.
+
+
+
+connected_account_id Format: UUID
+
+ID of the [connected account](../../core-concepts/connected-accounts/README.md).
+
+
+
+created_at Format: Datetime
+
+Date and time at which the event was created.
+
+
+
+device_id Format: UUID
+
+ID of the device.
+
+
+
+event_id Format: UUID
+
+ID of the event.
+
+
+
+event_type Format: Enum
+
+Value: `device.error.subscription_required`
+
+
+
+occurred_at Format: Datetime
+
+Date and time at which the event occurred.
+
+
+
+workspace_id Format: UUID
+
+ID of the [workspace](../../core-concepts/workspaces/README.md).
+
+---
+
+### `device.error.subscription_required.resolved`
+
+A third-party subscription is active or no longer required to use all [device](../../core-concepts/devices/README.md) features.
+
+
+
+connected_account_id Format: UUID
+
+ID of the [connected account](../../core-concepts/connected-accounts/README.md).
+
+
+
+created_at Format: Datetime
+
+Date and time at which the event was created.
+
+
+
+device_id Format: UUID
+
+ID of the device.
+
+
+
+event_id Format: UUID
+
+ID of the event.
+
+
+
+event_type Format: Enum
+
+Value: `device.error.subscription_required.resolved`
+
+
+
+occurred_at Format: Datetime
+
+Date and time at which the event occurred.
+
+
+
+workspace_id Format: UUID
+
+ID of the [workspace](../../core-concepts/workspaces/README.md).
+
+---
+
+### `device.accessory_keypad_connected`
+
+An accessory keypad was connected to a [device](../../core-concepts/devices/README.md).
+
+
+
+connected_account_id Format: UUID
+
+ID of the [connected account](../../core-concepts/connected-accounts/README.md).
+
+
+
+created_at Format: Datetime
+
+Date and time at which the event was created.
+
+
+
+device_id Format: UUID
+
+ID of the device.
+
+
+
+event_id Format: UUID
+
+ID of the event.
+
+
+
+event_type Format: Enum
+
+Value: `device.accessory_keypad_connected`
+
+
+
+occurred_at Format: Datetime
+
+Date and time at which the event occurred.
+
+
+
+workspace_id Format: UUID
+
+ID of the [workspace](../../core-concepts/workspaces/README.md).
+
+---
+
+### `device.accessory_keypad_disconnected`
+
+An accessory keypad was disconnected from a [device](../../core-concepts/devices/README.md).
+
+
+
+connected_account_id Format: UUID
+
+ID of the [connected account](../../core-concepts/connected-accounts/README.md).
+
+
+
+created_at Format: Datetime
+
+Date and time at which the event was created.
+
+
+
+device_id Format: UUID
+
+ID of the device.
+
+
+
+event_id Format: UUID
+
+ID of the event.
+
+
+
+event_type Format: Enum
+
+Value: `device.accessory_keypad_disconnected`
+
+
+
+occurred_at Format: Datetime
+
+Date and time at which the event occurred.
+
+
+
+workspace_id Format: UUID
+
+ID of the [workspace](../../core-concepts/workspaces/README.md).
+
+---
+
+### `device.name_changed`
+
+The name of a [device](../../core-concepts/devices/README.md) was changed.
+
+
+
+connected_account_id Format: UUID
+
+ID of the [connected account](../../core-concepts/connected-accounts/README.md).
+
+
+
+created_at Format: Datetime
+
+Date and time at which the event was created.
+
+
+
+device_id Format: UUID
+
+ID of the device.
+
+
+
+device_name Format: String
+
+The new name of the device.
+
+
+
+event_id Format: UUID
+
+ID of the event.
+
+
+
+event_type Format: Enum
+
+Value: `device.name_changed`
+
+
+
+occurred_at Format: Datetime
+
+Date and time at which the event occurred.
+
+
+
+workspace_id Format: UUID
+
+ID of the [workspace](../../core-concepts/workspaces/README.md).
+
+---
+
diff --git a/docs/api/devices/list.md b/docs/api/devices/list.md
new file mode 100644
index 000000000..85f09f91e
--- /dev/null
+++ b/docs/api/devices/list.md
@@ -0,0 +1,246 @@
+# List Devices
+
+```
+POST /devices/list ⇒ { devices: [device, …] }
+```
+
+Returns a list of all [devices](../../core-concepts/devices/README.md).
+
+## Authentication Methods
+
+- API key
+- Client session token
+- Personal access token
+
Must also include the `seam-workspace` header in the request.
+
+## Request Parameters
+
+### `connect_webview_id`
+
+Format: `UUID`
+Required: No
+
+ID of the Connect Webview by which to filter devices.
+
+***
+
+### `connected_account_id`
+
+Format: `UUID`
+Required: No
+
+ID of the connected account by which to filter.
+
+***
+
+### `connected_account_ids`
+
+Format: `List`
+Item format: `UUID`
+Required: No
+
+Array of IDs of the connected accounts by which to filter devices.
+
+***
+
+### `created_before`
+
+Format: `Datetime`
+Required: No
+
+Date threshold for devices to return. If specified, returns only devices created before the specified date.
+
+***
+
+### `custom_metadata_has`
+
+Format: `Record`
+Required: No
+
+Set of key:value [custom metadata](../../core-concepts/devices/adding-custom-metadata-to-a-device.md) pairs by which you want to filter devices.
+
+***
+
+### `device_ids`
+
+Format: `List`
+Item format: `UUID`
+Required: No
+
+Array of device IDs by which to filter devices.
+
+***
+
+### `device_type`
+
+Format: `Enum`
+Required: No
+
+Device type by which to filter devices.
+
+Possible enum values:
+- `akuvox_lock`
+- `august_lock`
+- `brivo_access_point`
+- `butterflymx_panel`
+- `avigilon_alta_entry`
+- `doorking_lock`
+- `genie_door`
+- `igloo_lock`
+- `linear_lock`
+- `lockly_lock`
+- `kwikset_lock`
+- `nuki_lock`
+- `salto_lock`
+- `schlage_lock`
+- `seam_relay`
+- `smartthings_lock`
+- `wyze_lock`
+- `yale_lock`
+- `two_n_intercom`
+- `controlbyweb_device`
+- `ttlock_lock`
+- `igloohome_lock`
+- `hubitat_lock`
+- `four_suites_door`
+- `dormakaba_oracode_door`
+- `tedee_lock`
+- `akiles_lock`
+- `noiseaware_activity_zone`
+- `minut_sensor`
+- `ecobee_thermostat`
+- `nest_thermostat`
+- `honeywell_resideo_thermostat`
+- `tado_thermostat`
+- `sensi_thermostat`
+- `ios_phone`
+- `android_phone`
+
+***
+
+### `device_types`
+
+Format: `List`
+Item format: `Enum`
+Required: No
+
+Array of device types by which to filter devices.
+
+Possible enum values:
+- `akuvox_lock`
+- `august_lock`
+- `brivo_access_point`
+- `butterflymx_panel`
+- `avigilon_alta_entry`
+- `doorking_lock`
+- `genie_door`
+- `igloo_lock`
+- `linear_lock`
+- `lockly_lock`
+- `kwikset_lock`
+- `nuki_lock`
+- `salto_lock`
+- `schlage_lock`
+- `seam_relay`
+- `smartthings_lock`
+- `wyze_lock`
+- `yale_lock`
+- `two_n_intercom`
+- `controlbyweb_device`
+- `ttlock_lock`
+- `igloohome_lock`
+- `hubitat_lock`
+- `four_suites_door`
+- `dormakaba_oracode_door`
+- `tedee_lock`
+- `akiles_lock`
+- `noiseaware_activity_zone`
+- `minut_sensor`
+- `ecobee_thermostat`
+- `nest_thermostat`
+- `honeywell_resideo_thermostat`
+- `tado_thermostat`
+- `sensi_thermostat`
+- `ios_phone`
+- `android_phone`
+
+***
+
+### `limit`
+
+Format: `Number`
+Required: No
+
+Numerical limit on the number of devices to return.
+
+***
+
+### `manufacturer`
+
+Format: `Enum`
+Required: No
+
+Manufacturer by which to filter devices.
+
+Possible enum values:
+- `akuvox`
+- `august`
+- `avigilon_alta`
+- `brivo`
+- `butterflymx`
+- `doorking`
+- `four_suites`
+- `genie`
+- `igloo`
+- `keywe`
+- `kwikset`
+- `linear`
+- `lockly`
+- `nuki`
+- `philia`
+- `salto`
+- `samsung`
+- `schlage`
+- `seam`
+- `unknown`
+- `wyze`
+- `yale`
+- `minut`
+- `two_n`
+- `ttlock`
+- `nest`
+- `igloohome`
+- `ecobee`
+- `hubitat`
+- `controlbyweb`
+- `smartthings`
+- `dormakaba_oracode`
+- `tedee`
+- `honeywell_resideo`
+- `akiles`
+- `tado`
+- `sensi`
+
+***
+
+### `page_cursor`
+
+Format: `String`
+Required: No
+
+Identifies the specific page of results to return, obtained from the previous page's `next_page_cursor`.
+
+***
+
+### `user_identifier_key`
+
+Format: `String`
+Required: No
+
+Your own internal user ID for the user by which to filter devices.
+
+***
+
+## Return Type
+
+Array<[device](./)>
diff --git a/docs/api/devices/simulate/README.md b/docs/api/devices/simulate/README.md
new file mode 100644
index 000000000..99e3f8c51
--- /dev/null
+++ b/docs/api/devices/simulate/README.md
@@ -0,0 +1,4 @@
+# Device Simulations
+
+## Endpoints
+
diff --git a/docs/api/devices/unmanaged/README.md b/docs/api/devices/unmanaged/README.md
new file mode 100644
index 000000000..a1dd2c6a6
--- /dev/null
+++ b/docs/api/devices/unmanaged/README.md
@@ -0,0 +1,1567 @@
+# Unmanage Devices
+
+## `unmanaged_device`
+
+### `can_hvac_cool`
+
+Format: `Boolean`
+
+---
+
+### `can_hvac_heat`
+
+Format: `Boolean`
+
+---
+
+### `can_hvac_heat_cool`
+
+Format: `Boolean`
+
+---
+
+### `can_program_offline_access_codes`
+
+Format: `Boolean`
+
+---
+
+### `can_program_online_access_codes`
+
+Format: `Boolean`
+
+---
+
+### `can_remotely_lock`
+
+Format: `Boolean`
+
+---
+
+### `can_remotely_unlock`
+
+Format: `Boolean`
+
+---
+
+### `can_simulate_connection`
+
+Format: `Boolean`
+
+---
+
+### `can_simulate_disconnection`
+
+Format: `Boolean`
+
+---
+
+### `can_simulate_removal`
+
+Format: `Boolean`
+
+---
+
+### `can_turn_off_hvac`
+
+Format: `Boolean`
+
+---
+
+### `capabilities_supported`
+
+Format: `List`
+
+Item format: `Enum`
+
+Collection of capabilities that the device supports when connected to Seam. Values are "access_code," which indicates that the device can manage and utilize digital PIN codes for secure access; "lock," which indicates that the device controls a door locking mechanism, enabling the remote opening and closing of doors and other entry points; "noise_detection," which indicates that the device supports monitoring and responding to ambient noise levels; "thermostat," which indicates that the device can regulate and adjust indoor temperatures; and "battery," which indicates that the device can manage battery life and health.
+
+---
+
+### `connected_account_id`
+
+Format: `UUID`
+
+Unique identifier for the account associated with the device.
+
+---
+
+### `created_at`
+
+Format: `Datetime`
+
+Date and time at which the device object was created.
+
+---
+
+### `device_id`
+
+Format: `UUID`
+
+Unique identifier for the device.
+
+---
+
+### `device_type`
+
+Format: `Enum`
+
+Type of the device.
+
+Possible enum values:
+- `akuvox_lock`
+- `august_lock`
+- `brivo_access_point`
+- `butterflymx_panel`
+- `avigilon_alta_entry`
+- `doorking_lock`
+- `genie_door`
+- `igloo_lock`
+- `linear_lock`
+- `lockly_lock`
+- `kwikset_lock`
+- `nuki_lock`
+- `salto_lock`
+- `schlage_lock`
+- `seam_relay`
+- `smartthings_lock`
+- `wyze_lock`
+- `yale_lock`
+- `two_n_intercom`
+- `controlbyweb_device`
+- `ttlock_lock`
+- `igloohome_lock`
+- `hubitat_lock`
+- `four_suites_door`
+- `dormakaba_oracode_door`
+- `tedee_lock`
+- `akiles_lock`
+- `noiseaware_activity_zone`
+- `minut_sensor`
+- `ecobee_thermostat`
+- `nest_thermostat`
+- `honeywell_resideo_thermostat`
+- `tado_thermostat`
+- `sensi_thermostat`
+- `ios_phone`
+- `android_phone`
+
+---
+
+### [`errors`](./#errors-1)
+
+Format: `List`
+
+Item format: `Object`
+
+Array of errors associated with the device. Each error object within the array contains two fields: "error_code" and "message." "error_code" is a string that uniquely identifies the type of error, enabling quick recognition and categorization of the issue. "message" provides a more detailed description of the error, offering insights into the issue and potentially how to rectify it.
+
+The specific structure of each object in this list depends on the value of its `error_code` field.
+
+Variants:
+
+account_disconnected
+
+Account is disconnected
+
+**`created_at`**
+Format: `Datetime`
+
+
+---
+
+**`error_code`**
+Format: `Enum`
+
+
+Unique identifier of the type of error. Enables quick recognition and categorization of the issue.
+
+Possible enum values:
+- `account_disconnected`
+
+---
+
+**`is_connected_account_error`**
+Format: `Boolean`
+
+
+---
+
+**`is_device_error`**
+Format: `Boolean`
+
+
+---
+
+**`message`**
+Format: `String`
+
+
+
+
+salto_ks_subscription_limit_exceeded
+
+Salto site user limit reached.
+
+**`created_at`**
+Format: `Datetime`
+
+
+---
+
+**`error_code`**
+Format: `Enum`
+
+
+Unique identifier of the type of error. Enables quick recognition and categorization of the issue.
+
+Possible enum values:
+- `salto_ks_subscription_limit_exceeded`
+
+---
+
+**`is_connected_account_error`**
+Format: `Boolean`
+
+
+---
+
+**`is_device_error`**
+Format: `Boolean`
+
+
+---
+
+**`message`**
+Format: `String`
+
+
+
+
+device_offline
+
+Device is offline
+
+**`created_at`**
+Format: `Datetime`
+
+
+---
+
+**`error_code`**
+Format: `Enum`
+
+
+Unique identifier of the type of error. Enables quick recognition and categorization of the issue.
+
+Possible enum values:
+- `device_offline`
+
+---
+
+**`is_device_error`**
+Format: `Boolean`
+
+
+---
+
+**`message`**
+Format: `String`
+
+
+
+
+device_removed
+
+Device has been removed
+
+**`created_at`**
+Format: `Datetime`
+
+
+---
+
+**`error_code`**
+Format: `Enum`
+
+
+Unique identifier of the type of error. Enables quick recognition and categorization of the issue.
+
+Possible enum values:
+- `device_removed`
+
+---
+
+**`is_device_error`**
+Format: `Boolean`
+
+
+---
+
+**`message`**
+Format: `String`
+
+
+
+
+hub_disconnected
+
+Hub is disconnected
+
+**`created_at`**
+Format: `Datetime`
+
+
+---
+
+**`error_code`**
+Format: `Enum`
+
+
+Unique identifier of the type of error. Enables quick recognition and categorization of the issue.
+
+Possible enum values:
+- `hub_disconnected`
+
+---
+
+**`is_device_error`**
+Format: `Boolean`
+
+
+---
+
+**`message`**
+Format: `String`
+
+
+
+
+device_disconnected
+
+Device is disconnected
+
+**`created_at`**
+Format: `Datetime`
+
+
+---
+
+**`error_code`**
+Format: `Enum`
+
+
+Unique identifier of the type of error. Enables quick recognition and categorization of the issue.
+
+Possible enum values:
+- `device_disconnected`
+
+---
+
+**`is_device_error`**
+Format: `Boolean`
+
+
+---
+
+**`message`**
+Format: `String`
+
+
+
+
+empty_backup_access_code_pool
+
+The backup access code pool is empty.
+
+**`created_at`**
+Format: `Datetime`
+
+
+---
+
+**`error_code`**
+Format: `Enum`
+
+
+Unique identifier of the type of error. Enables quick recognition and categorization of the issue.
+
+Possible enum values:
+- `empty_backup_access_code_pool`
+
+---
+
+**`is_device_error`**
+Format: `Boolean`
+
+
+---
+
+**`message`**
+Format: `String`
+
+
+
+
+august_lock_not_authorized
+
+User is not authorized to use the August Lock.
+
+**`created_at`**
+Format: `Datetime`
+
+
+---
+
+**`error_code`**
+Format: `Enum`
+
+
+Unique identifier of the type of error. Enables quick recognition and categorization of the issue.
+
+Possible enum values:
+- `august_lock_not_authorized`
+
+---
+
+**`is_device_error`**
+Format: `Boolean`
+
+
+---
+
+**`message`**
+Format: `String`
+
+
+
+
+august_lock_missing_bridge
+
+Lock is not connected to the Seam Bridge.
+
+**`created_at`**
+Format: `Datetime`
+
+
+---
+
+**`error_code`**
+Format: `Enum`
+
+
+Unique identifier of the type of error. Enables quick recognition and categorization of the issue.
+
+Possible enum values:
+- `august_lock_missing_bridge`
+
+---
+
+**`is_device_error`**
+Format: `Boolean`
+
+
+---
+
+**`message`**
+Format: `String`
+
+
+
+
+ttlock_lock_not_paired_to_gateway
+
+Lock is not paired with a Gateway.
+
+**`created_at`**
+Format: `Datetime`
+
+
+---
+
+**`error_code`**
+Format: `Enum`
+
+
+Unique identifier of the type of error. Enables quick recognition and categorization of the issue.
+
+Possible enum values:
+- `ttlock_lock_not_paired_to_gateway`
+
+---
+
+**`is_device_error`**
+Format: `Boolean`
+
+
+---
+
+**`message`**
+Format: `String`
+
+
+
+
+missing_device_credentials
+
+Missing device credentials.
+
+**`created_at`**
+Format: `Datetime`
+
+
+---
+
+**`error_code`**
+Format: `Enum`
+
+
+Unique identifier of the type of error. Enables quick recognition and categorization of the issue.
+
+Possible enum values:
+- `missing_device_credentials`
+
+---
+
+**`is_device_error`**
+Format: `Boolean`
+
+
+---
+
+**`message`**
+Format: `String`
+
+
+
+
+auxiliary_heat_running
+
+The auxiliary heat is running.
+
+**`created_at`**
+Format: `Datetime`
+
+
+---
+
+**`error_code`**
+Format: `Enum`
+
+
+Unique identifier of the type of error. Enables quick recognition and categorization of the issue.
+
+Possible enum values:
+- `auxiliary_heat_running`
+
+---
+
+**`is_device_error`**
+Format: `Boolean`
+
+
+---
+
+**`message`**
+Format: `String`
+
+
+
+
+subscription_required
+
+Subscription required to connect.
+
+**`created_at`**
+Format: `Datetime`
+
+
+---
+
+**`error_code`**
+Format: `Enum`
+
+
+Unique identifier of the type of error. Enables quick recognition and categorization of the issue.
+
+Possible enum values:
+- `subscription_required`
+
+---
+
+**`is_device_error`**
+Format: `Boolean`
+
+
+---
+
+**`message`**
+Format: `String`
+
+
+
+
+invalid_credentials
+
+Credentials provided were invalid.
+
+**`created_at`**
+Format: `Datetime`
+
+
+Date and time at which Seam created the error.
+
+---
+
+**`error_code`**
+Format: `Enum`
+
+
+Unique identifier of the type of error. Enables quick recognition and categorization of the issue.
+
+Possible enum values:
+- `invalid_credentials`
+
+---
+
+**`is_bridge_error`**
+Format: `Boolean`
+
+
+---
+
+**`is_connected_account_error`**
+Format: `Boolean`
+
+
+---
+
+**`message`**
+Format: `String`
+
+
+
+
+bridge_disconnected
+
+Indicates that the Seam API cannot communicate with [Seam Bridge](../../../capability-guides/seam-bridge.md), for example, if Seam Bridge executable has stopped or if the computer running the Seam Bridge executable is offline.
+ See also [Troubleshooting Your Access Control System](../../../capability-guides/access-systems/troubleshooting-your-access-control-system.md#acs_system.errors.seam_bridge_disconnected).
+
+**`created_at`**
+Format: `Datetime`
+
+
+Date and time at which Seam created the error.
+
+---
+
+**`error_code`**
+Format: `Enum`
+
+
+Unique identifier of the type of error. Enables quick recognition and categorization of the issue.
+
+Possible enum values:
+- `bridge_disconnected`
+
+---
+
+**`is_bridge_error`**
+Format: `Boolean`
+
+
+---
+
+**`is_connected_account_error`**
+Format: `Boolean`
+
+
+---
+
+**`message`**
+Format: `String`
+
+
+
+
+---
+
+### `is_managed`
+
+Format: `Boolean`
+
+---
+
+### `location`
+
+Format: `Object`
+
+Location information for the device.
+
+
+
+location_name Format: String
+
+Name of the device location.
+
+
+
+
+timezone Format: String
+
+Time zone of the device location.
+
+
+---
+
+### `properties`
+
+Format: `Object`
+
+
+
+accessory_keypad Format: Object
+
+Represents the accessory keypad state.
+
+
+
+
+accessory_keypad.battery Format: Object
+
+Indicates if the keypad battery properties.
+
+
+
+
+accessory_keypad.battery.level Format: Number
+
+
+
+
+accessory_keypad.is_connected Format: Boolean
+
+Indicates if the accessory_keypad is connected to the device.
+
+
+
+
+battery Format: Object
+
+Represents the current status of the battery charge level. Values are "critical," which indicates an extremely low level, suggesting imminent shutdown or an urgent need for charging; "low," which signifies that the battery is under the preferred threshold and should be charged soon; "good," which denotes a satisfactory charge level, adequate for normal use without the immediate need for recharging; and "full," which represents a battery that is fully charged, providing the maximum duration of usage.
+
+
+
+
+battery.level Format: Number
+
+
+
+
+battery.status Format: Enum
+
+Possible enum values:
+- `critical`
+- `low`
+- `good`
+- `full`
+
+
+
+
+battery_level Format: Number
+
+Indicates the battery level of the device as a decimal value between 0 and 1, inclusive.
+
+
+
+
+image_alt_text Format: String
+
+Alt text for the device image.
+
+
+
+
+image_url Format: String
+
+Image URL for the device.
+
+
+
+
+manufacturer Format: String
+
+Manufacturer of the device.
+
+
+
+
+model Format: Object
+
+
+
+
+model.accessory_keypad_supported Format: Boolean
+
+{% hint style="warning" %}
+**Deprecated**. use device.properties.model.can_connect_accessory_keypad
+{% endhint %}
+
+
+
+
+model.can_connect_accessory_keypad Format: Boolean
+
+Indicates whether the device can connect a accessory keypad.
+
+
+
+
+model.display_name Format: String
+
+Display name of the device model.
+
+
+
+
+model.has_built_in_keypad Format: Boolean
+
+Indicates whether the device has a built in accessory keypad.
+
+
+
+
+model.manufacturer_display_name Format: String
+
+Display name that corresponds to the manufacturer-specific terminology for the device.
+
+
+
+
+model.offline_access_codes_supported Format: Boolean
+
+Indicates whether the device supports offline access codes.
+
+
+
+
+model.online_access_codes_supported Format: Boolean
+
+Indicates whether the device supports online access codes.
+
+
+
+
+name Format: String
+
+{% hint style="warning" %}
+**Deprecated**. use device.display_name instead
+{% endhint %}
+
+Name of the device.
+
+
+
+
+offline_access_codes_enabled Format: Boolean
+
+Indicates whether it is currently possible to use offline access codes for the device.
+
+
+
+
+online Format: Boolean
+
+Indicates whether the device is online.
+
+
+
+
+online_access_codes_enabled Format: Boolean
+
+Indicates whether it is currently possible to use online access codes for the device.
+
+
+---
+
+### [`warnings`](./#warnings-1)
+
+Format: `List`
+
+Item format: `Object`
+
+Array of warnings associated with the device. Each warning object within the array contains two fields: "warning_code" and "message." "warning_code" is a string that uniquely identifies the type of warning, enabling quick recognition and categorization of the issue. "message" provides a more detailed description of the warning, offering insights into the issue and potentially how to rectify it.
+
+The specific structure of each object in this list depends on the value of its `warning_code` field.
+
+Variants:
+
+partial_backup_access_code_pool
+
+Backup access code unhealthy.
+
+**`created_at`**
+Format: `Datetime`
+
+
+---
+
+**`message`**
+Format: `String`
+
+
+---
+
+**`warning_code`**
+Format: `Enum`
+
+
+Unique identifier of the type of warning. Enables quick recognition and categorization of the issue.
+
+Possible enum values:
+- `partial_backup_access_code_pool`
+
+
+
+many_active_backup_codes
+
+Too many backup codes.
+
+**`created_at`**
+Format: `Datetime`
+
+
+---
+
+**`message`**
+Format: `String`
+
+
+---
+
+**`warning_code`**
+Format: `Enum`
+
+
+Unique identifier of the type of warning. Enables quick recognition and categorization of the issue.
+
+Possible enum values:
+- `many_active_backup_codes`
+
+
+
+wyze_device_missing_gateway
+
+Wyze Lock is not connected to a gateway.
+
+**`created_at`**
+Format: `Datetime`
+
+
+---
+
+**`message`**
+Format: `String`
+
+
+---
+
+**`warning_code`**
+Format: `Enum`
+
+
+Unique identifier of the type of warning. Enables quick recognition and categorization of the issue.
+
+Possible enum values:
+- `wyze_device_missing_gateway`
+
+
+
+functional_offline_device
+
+Device is offline, but has some functionality available.
+
+**`created_at`**
+Format: `Datetime`
+
+
+---
+
+**`message`**
+Format: `String`
+
+
+---
+
+**`warning_code`**
+Format: `Enum`
+
+
+Unique identifier of the type of warning. Enables quick recognition and categorization of the issue.
+
+Possible enum values:
+- `functional_offline_device`
+
+
+
+third_party_integration_detected
+
+Third-party integration detected.
+
+**`created_at`**
+Format: `Datetime`
+
+
+---
+
+**`message`**
+Format: `String`
+
+
+---
+
+**`warning_code`**
+Format: `Enum`
+
+
+Unique identifier of the type of warning. Enables quick recognition and categorization of the issue.
+
+Possible enum values:
+- `third_party_integration_detected`
+
+
+
+nest_thermostat_in_manual_eco_mode
+
+Nest thermostat in manual eco mode.
+
+**`created_at`**
+Format: `Datetime`
+
+
+---
+
+**`message`**
+Format: `String`
+
+
+---
+
+**`warning_code`**
+Format: `Enum`
+
+
+Unique identifier of the type of warning. Enables quick recognition and categorization of the issue.
+
+Possible enum values:
+- `nest_thermostat_in_manual_eco_mode`
+
+
+
+ttlock_lock_gateway_unlocking_not_enabled
+
+Remote Unlock feature not enabled in settings.
+
+**`created_at`**
+Format: `Datetime`
+
+
+---
+
+**`message`**
+Format: `String`
+
+
+---
+
+**`warning_code`**
+Format: `Enum`
+
+
+Unique identifier of the type of warning. Enables quick recognition and categorization of the issue.
+
+Possible enum values:
+- `ttlock_lock_gateway_unlocking_not_enabled`
+
+
+
+ttlock_weak_gateway_signal
+
+Gateway signal is weak.
+
+**`created_at`**
+Format: `Datetime`
+
+
+---
+
+**`message`**
+Format: `String`
+
+
+---
+
+**`warning_code`**
+Format: `Enum`
+
+
+Unique identifier of the type of warning. Enables quick recognition and categorization of the issue.
+
+Possible enum values:
+- `ttlock_weak_gateway_signal`
+
+
+
+temperature_threshold_exceeded
+
+Temperature threshold exceeded.
+
+**`created_at`**
+Format: `Datetime`
+
+
+---
+
+**`message`**
+Format: `String`
+
+
+---
+
+**`warning_code`**
+Format: `Enum`
+
+
+Unique identifier of the type of warning. Enables quick recognition and categorization of the issue.
+
+Possible enum values:
+- `temperature_threshold_exceeded`
+
+
+
+device_communication_degraded
+
+Device appears to be unresponsive.
+
+**`created_at`**
+Format: `Datetime`
+
+
+---
+
+**`message`**
+Format: `String`
+
+
+---
+
+**`warning_code`**
+Format: `Enum`
+
+
+Unique identifier of the type of warning. Enables quick recognition and categorization of the issue.
+
+Possible enum values:
+- `device_communication_degraded`
+
+
+
+scheduled_maintenance_window
+
+Scheduled maintenance window detected.
+
+**`created_at`**
+Format: `Datetime`
+
+
+---
+
+**`message`**
+Format: `String`
+
+
+---
+
+**`warning_code`**
+Format: `Enum`
+
+
+Unique identifier of the type of warning. Enables quick recognition and categorization of the issue.
+
+Possible enum values:
+- `scheduled_maintenance_window`
+
+
+
+device_has_flaky_connection
+
+Device has flaky connection.
+
+**`created_at`**
+Format: `Datetime`
+
+
+---
+
+**`message`**
+Format: `String`
+
+
+---
+
+**`warning_code`**
+Format: `Enum`
+
+
+Unique identifier of the type of warning. Enables quick recognition and categorization of the issue.
+
+Possible enum values:
+- `device_has_flaky_connection`
+
+
+
+salto_ks_office_mode
+
+Lock is in Office Mode. Access Codes will not unlock doors.
+
+**`created_at`**
+Format: `Datetime`
+
+
+---
+
+**`message`**
+Format: `String`
+
+
+---
+
+**`warning_code`**
+Format: `Enum`
+
+
+Unique identifier of the type of warning. Enables quick recognition and categorization of the issue.
+
+Possible enum values:
+- `salto_ks_office_mode`
+
+
+
+salto_ks_privacy_mode
+
+Lock is in Privacy Mode. Access Codes will not unlock doors.
+
+**`created_at`**
+Format: `Datetime`
+
+
+---
+
+**`message`**
+Format: `String`
+
+
+---
+
+**`warning_code`**
+Format: `Enum`
+
+
+Unique identifier of the type of warning. Enables quick recognition and categorization of the issue.
+
+Possible enum values:
+- `salto_ks_privacy_mode`
+
+
+
+salto_ks_subscription_limit_almost_reached
+
+Indicates that the Salto KS site has exceeded 80% of the maximum number of allowed users. Please increase your subscription limit, or delete some users from your site to rectify this.
+
+**`created_at`**
+Format: `Datetime`
+
+
+---
+
+**`message`**
+Format: `String`
+
+
+---
+
+**`warning_code`**
+Format: `Enum`
+
+
+Unique identifier of the type of warning. Enables quick recognition and categorization of the issue.
+
+Possible enum values:
+- `salto_ks_subscription_limit_almost_reached`
+
+
+
+unknown_issue_with_phone
+
+An unknown issue occurred while syncing the state of this phone with the provider. This issue may affect the proper functioning of this phone.
+
+**`created_at`**
+Format: `Datetime`
+
+
+---
+
+**`message`**
+Format: `String`
+
+
+---
+
+**`warning_code`**
+Format: `Enum`
+
+
+Unique identifier of the type of warning. Enables quick recognition and categorization of the issue.
+
+Possible enum values:
+- `unknown_issue_with_phone`
+
+
+
+lockly_time_zone_not_configured
+
+We detected that this device does not have a time zone configured. Time bound codes may not work as expected.
+
+**`created_at`**
+Format: `Datetime`
+
+
+---
+
+**`message`**
+Format: `String`
+
+
+---
+
+**`warning_code`**
+Format: `Enum`
+
+
+Unique identifier of the type of warning. Enables quick recognition and categorization of the issue.
+
+Possible enum values:
+- `lockly_time_zone_not_configured`
+
+
+
+---
+
+### `workspace_id`
+
+Format: `UUID`
+
+Unique identifier for the Seam workspace associated with the device.
+
+---
+
+## Errors
+
+### `account_disconnected`
+
+Account is disconnected
+
+---
+
+### `salto_ks_subscription_limit_exceeded`
+
+Salto site user limit reached.
+
+---
+
+### `device_offline`
+
+Device is offline
+
+---
+
+### `device_removed`
+
+Device has been removed
+
+---
+
+### `hub_disconnected`
+
+Hub is disconnected
+
+---
+
+### `device_disconnected`
+
+Device is disconnected
+
+---
+
+### `empty_backup_access_code_pool`
+
+The backup access code pool is empty.
+
+---
+
+### `august_lock_not_authorized`
+
+User is not authorized to use the August Lock.
+
+---
+
+### `august_lock_missing_bridge`
+
+Lock is not connected to the Seam Bridge.
+
+---
+
+### `ttlock_lock_not_paired_to_gateway`
+
+Lock is not paired with a Gateway.
+
+---
+
+### `missing_device_credentials`
+
+Missing device credentials.
+
+---
+
+### `auxiliary_heat_running`
+
+The auxiliary heat is running.
+
+---
+
+### `subscription_required`
+
+Subscription required to connect.
+
+---
+
+### `invalid_credentials`
+
+Credentials provided were invalid.
+
+---
+
+### `bridge_disconnected`
+
+Indicates that the Seam API cannot communicate with [Seam Bridge](../../../capability-guides/seam-bridge.md), for example, if Seam Bridge executable has stopped or if the computer running the Seam Bridge executable is offline.
+ See also [Troubleshooting Your Access Control System](../../../capability-guides/access-systems/troubleshooting-your-access-control-system.md#acs_system.errors.seam_bridge_disconnected).
+
+---
+
+## Warnings
+
+### `partial_backup_access_code_pool`
+
+Backup access code unhealthy.
+
+---
+
+### `many_active_backup_codes`
+
+Too many backup codes.
+
+---
+
+### `wyze_device_missing_gateway`
+
+Wyze Lock is not connected to a gateway.
+
+---
+
+### `functional_offline_device`
+
+Device is offline, but has some functionality available.
+
+---
+
+### `third_party_integration_detected`
+
+Third-party integration detected.
+
+---
+
+### `nest_thermostat_in_manual_eco_mode`
+
+Nest thermostat in manual eco mode.
+
+---
+
+### `ttlock_lock_gateway_unlocking_not_enabled`
+
+Remote Unlock feature not enabled in settings.
+
+---
+
+### `ttlock_weak_gateway_signal`
+
+Gateway signal is weak.
+
+---
+
+### `temperature_threshold_exceeded`
+
+Temperature threshold exceeded.
+
+---
+
+### `device_communication_degraded`
+
+Device appears to be unresponsive.
+
+---
+
+### `scheduled_maintenance_window`
+
+Scheduled maintenance window detected.
+
+---
+
+### `device_has_flaky_connection`
+
+Device has flaky connection.
+
+---
+
+### `salto_ks_office_mode`
+
+Lock is in Office Mode. Access Codes will not unlock doors.
+
+---
+
+### `salto_ks_privacy_mode`
+
+Lock is in Privacy Mode. Access Codes will not unlock doors.
+
+---
+
+### `salto_ks_subscription_limit_almost_reached`
+
+Indicates that the Salto KS site has exceeded 80% of the maximum number of allowed users. Please increase your subscription limit, or delete some users from your site to rectify this.
+
+---
+
+### `unknown_issue_with_phone`
+
+An unknown issue occurred while syncing the state of this phone with the provider. This issue may affect the proper functioning of this phone.
+
+---
+
+### `lockly_time_zone_not_configured`
+
+We detected that this device does not have a time zone configured. Time bound codes may not work as expected.
+
+---
+
+## Endpoints
+
diff --git a/src/data/paths.yaml b/src/data/paths.yaml
index 4b9238aaa..e8ed56a36 100644
--- a/src/data/paths.yaml
+++ b/src/data/paths.yaml
@@ -80,3 +80,17 @@
title: Enrollment Automations
resources:
- enrollment_automation
+
+/devices:
+ title: Devices
+ resources:
+ - device
+
+/devices/simulate:
+ title: Device Simulations
+ resources: []
+
+/devices/unmanaged:
+ title: Unmanage Devices
+ resources:
+ - unmanaged_device
diff --git a/src/lib/reference.ts b/src/lib/reference.ts
index adae39a57..94717762d 100644
--- a/src/lib/reference.ts
+++ b/src/lib/reference.ts
@@ -57,7 +57,8 @@ export const reference = (
!route.path.startsWith('/acs') &&
!route.path.startsWith('/thermostats') &&
!route.path.startsWith('/phones') &&
- !route.path.startsWith('/user_identities')
+ !route.path.startsWith('/user_identities') &&
+ !route.path.startsWith('/devices')
) {
continue
}