> ## Documentation Index
> Fetch the complete documentation index at: https://docs.seam.co/llms.txt
> Use this file to discover all available pages before exploring further.

# The Device Object

> Learn how the device object represents a smart lock, thermostat, sensor, or other device connected to Seam, including its properties and events.

## The device Object

Represents a [device](https://docs.seam.co/core-concepts/devices) that has been connected to Seam.

<ResponseExample>
  ```json Lock Device theme={null}
  {
    "can_program_online_access_codes": true,
    "can_remotely_lock": true,
    "can_remotely_unlock": true,
    "capabilities_supported": [
      "access_code",
      "lock"
    ],
    "connected_account_id": "8e3a4f1b-2c7d-4a9e-8b5f-3d2c1a0b9e8f",
    "created_at": "2025-03-27T02:08:16.418Z",
    "space_ids": [],
    "custom_metadata": {
      "id": "internalId1"
    },
    "device_id": "a69569e1-133b-4a9d-b883-018641bfe543",
    "device_type": "schlage_lock",
    "display_name": "FRONT DOOR",
    "errors": [],
    "is_managed": true,
    "location": {
      "location_name": "Front Door",
      "timezone": "America/New_York"
    },
    "nickname": "Front Door",
    "properties": {
      "appearance": {
        "name": "FRONT DOOR"
      },
      "battery": {
        "level": 0.48,
        "status": "good"
      },
      "battery_level": 0.48,
      "code_constraints": [
        {
          "constraint_type": "name_length",
          "max_length": 9
        }
      ],
      "has_native_entry_events": true,
      "image_alt_text": "Schlage Sense Smart Deadbolt with Camelot Trim, Front",
      "image_url": "https://connect.getseam.com/_next/image?url=https://connect.getseam.com/assets/images/devices/schlage_sense-smart-deadbolt-with-camelot-trim_front.png&q=75&w=128",
      "locked": false,
      "manufacturer": "schlage",
      "model": {
        "accessory_keypad_supported": false,
        "can_connect_accessory_keypad": false,
        "display_name": "Encode",
        "has_built_in_keypad": true,
        "manufacturer_display_name": "Schlage",
        "offline_access_codes_supported": false,
        "online_access_codes_supported": true
      },
      "name": "FRONT DOOR",
      "offline_access_codes_enabled": false,
      "online": true,
      "online_access_codes_enabled": true,
      "schlage_metadata": {
        "device_id": "a69569e1-133b-4a9d-b883-018641bfe543",
        "device_name": "FRONT DOOR",
        "model": "Encode"
      },
      "serial_number": "34000000000531e0",
      "supported_code_lengths": [
        4,
        5,
        6,
        7,
        8
      ],
      "supports_backup_access_code_pool": true,
      "supports_offline_access_codes": false
    },
    "warnings": [],
    "workspace_id": "5d7f2e1a-9c8b-4f3e-8d2c-1a0b9e8f7c6d"
  }
  ```

  ```json Noise Sensor Device theme={null}
  {
    "capabilities_supported": [
      "noise_detection"
    ],
    "connected_account_id": "9a8b7c6d-5e4f-3a2b-1c0d-9e8f7a6b5c4d",
    "created_at": "2025-05-16T16:54:17.946049Z",
    "custom_metadata": {
      "id": "internalId1"
    },
    "device_id": "f1e2d3c4-b5a6-4d7c-8e9f-0a1b2c3d4e5f",
    "device_type": "minut_sensor",
    "display_name": "Living Room",
    "errors": [],
    "is_managed": true,
    "space_ids": [],
    "location": {
      "location_name": "Jane's Test Home",
      "timezone": "America/Los_Angeles"
    },
    "nickname": "Living Room",
    "properties": {
      "appearance": {
        "name": "Living Room"
      },
      "battery": {
        "level": 1,
        "status": "full"
      },
      "battery_level": 1,
      "currently_triggering_noise_threshold_ids": [],
      "image_alt_text": "Minut Sensor",
      "image_url": "https://connect.getseam.com/_next/image?url=https://connect.getseam.com/assets/images/devices/minut_gen-3_front.png&q=75&w=128",
      "manufacturer": "minut",
      "minut_metadata": {
        "device_id": "770cd3153deca3dee0fe0614",
        "device_location": {
          "latitude": 0,
          "longitude": 0
        },
        "device_name": "Living Room",
        "home_address": {
          "city": "San Francisco",
          "country": "US",
          "notes": "string",
          "post_code": "44210",
          "region": "San Francisco County",
          "street_name1": "2258 24th Street",
          "street_name2": ""
        },
        "home_id": "2978b6d5dba395ec08300e46",
        "home_location": {
          "latitude": 0,
          "longitude": 0
        },
        "home_name": "Jane's Test Home",
        "latest_sensor_values": {
          "accelerometer_z": {
            "time": "2025-06-16T16:54:17.946049Z",
            "value": -1.00390625
          },
          "humidity": {
            "time": "2025-06-16T16:54:17.946049Z",
            "value": 31.110000610351562
          },
          "pressure": {
            "time": "2025-06-16T16:54:17.946049Z",
            "value": 101923
          },
          "sound": {
            "time": "2025-06-16T16:54:17.946049Z",
            "value": 47.7117919921875
          },
          "temperature": {
            "time": "2025-06-16T16:54:17.946049Z",
            "value": 21.270000457763672
          }
        }
      },
      "model": {
        "display_name": "Noise Sensor",
        "manufacturer_display_name": "Minut"
      },
      "name": "Living Room",
      "noise_level_decibels": 47.7117919921875,
      "online": true
    },
    "warnings": [],
    "workspace_id": "1a2b3c4d-5e6f-7a8b-9c0d-1e2f3a4b5c6d"
  }
  ```

  ```json Thermostat Device theme={null}
  {
    "can_hvac_cool": true,
    "can_hvac_heat": true,
    "can_hvac_heat_cool": true,
    "can_turn_off_hvac": true,
    "capabilities_supported": [
      "thermostat"
    ],
    "connected_account_id": "a0b1c2d3-e4f5-6a7b-8c9d-0e1f2a3b4c5d",
    "created_at": "2024-10-03T22:12:15.666Z",
    "custom_metadata": {
      "id": "internalId1"
    },
    "device_id": "a1b2c3d4-e5f6-7890-1234-56789abcdef0",
    "device_type": "ecobee_thermostat",
    "display_name": "Living Room",
    "errors": [],
    "is_managed": true,
    "space_ids": [],
    "location": {
      "location_name": "2948 20th St, San Francisco, CA, 94110, US",
      "timezone": "America/Los_Angeles"
    },
    "nickname": "Living Room",
    "properties": {
      "active_climate_preset": {
        "can_delete": true,
        "can_edit": true,
        "climate_preset_key": "sleep",
        "cooling_set_point_celsius": 23.88888888888889,
        "display_name": "Sleep",
        "fan_mode_setting": "auto",
        "heating_set_point_celsius": 17.77777777777778,
        "hvac_mode_setting": "heat_cool",
        "manual_override_allowed": true
      },
      "appearance": {
        "name": "Living Room"
      },
      "available_climate_presets": [
        {
          "climate_preset_key": "sleep",
          "can_edit": true,
          "can_delete": true,
          "can_use_with_thermostat_daily_programs": false,
          "name": "Sleep",
          "display_name": "Sleep",
          "fan_mode_setting": "auto",
          "hvac_mode_setting": "heat_cool",
          "manual_override_allowed": true,
          "cooling_set_point_celsius": 23.88888888888889,
          "heating_set_point_celsius": 17.77777777777778,
          "cooling_set_point_fahrenheit": 75,
          "heating_set_point_fahrenheit": 64
        },
        {
          "climate_preset_key": "home",
          "can_edit": true,
          "can_delete": true,
          "can_use_with_thermostat_daily_programs": false,
          "name": "Home",
          "display_name": "Home",
          "fan_mode_setting": "auto",
          "hvac_mode_setting": "heat_cool",
          "manual_override_allowed": false,
          "cooling_set_point_celsius": 23.88888888888889,
          "heating_set_point_celsius": 17.77777777777778,
          "cooling_set_point_fahrenheit": 75,
          "heating_set_point_fahrenheit": 64
        },
        {
          "climate_preset_key": "work",
          "can_edit": true,
          "can_delete": true,
          "can_use_with_thermostat_daily_programs": false,
          "name": "Work",
          "display_name": "Work",
          "fan_mode_setting": "auto",
          "hvac_mode_setting": "heat_cool",
          "manual_override_allowed": false,
          "cooling_set_point_celsius": 23.88888888888889,
          "heating_set_point_celsius": 17.77777777777778,
          "cooling_set_point_fahrenheit": 75,
          "heating_set_point_fahrenheit": 64
        }
      ],
      "available_fan_mode_settings": [
        "auto",
        "on"
      ],
      "available_hvac_mode_settings": [
        "cool",
        "heat",
        "heat_cool",
        "off"
      ],
      "current_climate_setting": {
        "display_name": "Manual Setting",
        "fan_mode_setting": "auto",
        "heating_set_point_celsius": 25,
        "heating_set_point_fahrenheit": 77,
        "hvac_mode_setting": "heat",
        "manual_override_allowed": true
      },
      "ecobee_metadata": {
        "device_name": "Living Room",
        "ecobee_device_id": "a1b2c3d4-e5f6-7890-1234-56789abcdef0"
      },
      "fallback_climate_preset_key": "eco",
      "fan_mode_setting": "auto",
      "has_direct_power": true,
      "image_alt_text": "Ecobee 3 Lite Thermostat",
      "image_url": "https://connect.getseam.com/_next/image?url=https://connect.getseam.com/assets/images/devices/ecobee_3-lite_front.png&q=75&w=128",
      "is_cooling": false,
      "is_fan_running": false,
      "is_heating": false,
      "is_temporary_manual_override_active": false,
      "manufacturer": "ecobee",
      "max_cooling_set_point_celsius": 33.333333333333336,
      "max_cooling_set_point_fahrenheit": 92,
      "max_heating_set_point_celsius": 26.11111111111111,
      "max_heating_set_point_fahrenheit": 79,
      "min_cooling_set_point_celsius": 18.333333333333336,
      "min_cooling_set_point_fahrenheit": 65,
      "min_heating_cooling_delta_celsius": 2.7777777777777777,
      "min_heating_cooling_delta_fahrenheit": 5,
      "min_heating_set_point_celsius": 7.222222222222222,
      "min_heating_set_point_fahrenheit": 45,
      "model": {
        "display_name": "Thermostat",
        "manufacturer_display_name": "Ecobee"
      },
      "name": "Living Room",
      "online": true,
      "relative_humidity": 0.36,
      "temperature_celsius": 21.11111111111111,
      "temperature_fahrenheit": 70,
      "temperature_threshold": {
        "lower_limit_celsius": 16.66666666666667,
        "lower_limit_fahrenheit": 62,
        "upper_limit_celsius": 26.66666666666667,
        "upper_limit_fahrenheit": 80
      },
      "thermostat_daily_programs": [
        {
          "thermostat_daily_program_id": "1a2b3c4d-5e6f-7890-1234-56789abcdef1",
          "device_id": "a1b2c3d4-e5f6-7890-1234-56789abcdef0",
          "name": "Weekday Program",
          "periods": [
            {
              "starts_at_time": "00:00:00",
              "climate_preset_key": "sleep"
            },
            {
              "starts_at_time": "07:00:00",
              "climate_preset_key": "home"
            },
            {
              "starts_at_time": "09:00:00",
              "climate_preset_key": "work"
            },
            {
              "starts_at_time": "18:00:00",
              "climate_preset_key": "home"
            },
            {
              "starts_at_time": "22:00:00",
              "climate_preset_key": "sleep"
            }
          ],
          "workspace_id": "9f8e7d6c-5b4a-3c2d-1e0f-9876543210ab",
          "created_at": "2025-05-30T04:01:25.455Z"
        },
        {
          "thermostat_daily_program_id": "d4e5f6a7-8b9c-0d1e-2f3a-4b5c6d7e8f90",
          "device_id": "a1b2c3d4-e5f6-7890-1234-56789abcdef0",
          "name": "Weekend Program",
          "periods": [
            {
              "starts_at_time": "00:00:00",
              "climate_preset_key": "sleep"
            },
            {
              "starts_at_time": "08:00:00",
              "climate_preset_key": "home"
            },
            {
              "starts_at_time": "23:00:00",
              "climate_preset_key": "sleep"
            }
          ],
          "workspace_id": "9f8e7d6c-5b4a-3c2d-1e0f-9876543210ab",
          "created_at": "2025-05-30T04:02:19.952Z"
        }
      ],
      "thermostat_weekly_program": null
    },
    "warnings": [],
    "workspace_id": "9f8e7d6c-5b4a-3c2d-1e0f-9876543210ab"
  }
  ```
</ResponseExample>

***

## Properties

<ResponseField name="can_configure_auto_lock" type="Boolean">
  The can configure auto lock.
</ResponseField>

<ResponseField name="can_hvac_cool" type="Boolean">
  The can hvac cool.
</ResponseField>

<ResponseField name="can_hvac_heat" type="Boolean">
  The can hvac heat.
</ResponseField>

<ResponseField name="can_hvac_heat_cool" type="Boolean">
  The can hvac heat cool.
</ResponseField>

<ResponseField name="can_program_offline_access_codes" type="Boolean">
  The can program offline access codes.
</ResponseField>

<ResponseField name="can_program_online_access_codes" type="Boolean">
  The can program online access codes.
</ResponseField>

<ResponseField name="can_program_thermostat_programs_as_different_each_day" type="Boolean">
  The can program thermostat programs as different each day.
</ResponseField>

<ResponseField name="can_program_thermostat_programs_as_same_each_day" type="Boolean">
  The can program thermostat programs as same each day.
</ResponseField>

<ResponseField name="can_program_thermostat_programs_as_weekday_weekend" type="Boolean">
  The can program thermostat programs as weekday weekend.
</ResponseField>

<ResponseField name="can_remotely_lock" type="Boolean">
  The can remotely lock.
</ResponseField>

<ResponseField name="can_remotely_unlock" type="Boolean">
  The can remotely unlock.
</ResponseField>

<ResponseField name="can_run_thermostat_programs" type="Boolean">
  The can run thermostat programs.
</ResponseField>

<ResponseField name="can_simulate_connection" type="Boolean">
  The can simulate connection.
</ResponseField>

<ResponseField name="can_simulate_disconnection" type="Boolean">
  The can simulate disconnection.
</ResponseField>

<ResponseField name="can_simulate_hub_connection" type="Boolean">
  The can simulate hub connection.
</ResponseField>

<ResponseField name="can_simulate_hub_disconnection" type="Boolean">
  The can simulate hub disconnection.
</ResponseField>

<ResponseField name="can_simulate_paid_subscription" type="Boolean">
  The can simulate paid subscription.
</ResponseField>

<ResponseField name="can_simulate_removal" type="Boolean">
  The can simulate removal.
</ResponseField>

<ResponseField name="can_turn_off_hvac" type="Boolean">
  The can turn off hvac.
</ResponseField>

<ResponseField name="can_unlock_with_code" type="Boolean">
  The can unlock with code.
</ResponseField>

<ResponseField name="capabilities_supported" type="Array">
  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; `battery`, which indicates that the device can manage battery life and health; and `phone`, which indicates that the device is a mobile device, such as a smartphone. **Important:** Superseded by [capability flags](https://docs.seam.co/capability-guides/device-and-system-capabilities#capability-flags).
</ResponseField>

<ResponseField name="connected_account_id" type="String (UUID)">
  Unique identifier for the account associated with the device.
</ResponseField>

<ResponseField name="created_at" type="String (ISO 8601)">
  Date and time at which the device object was created.
</ResponseField>

<ResponseField name="custom_metadata" type="object">
  Set of key:value pairs. Adding custom metadata to a resource, such as a [Connect Webview](https://docs.seam.co/core-concepts/connect-webviews/attaching-custom-data-to-the-connect-webview), [connected account](https://docs.seam.co/core-concepts/connected-accounts/adding-custom-metadata-to-a-connected-account), or [device](https://docs.seam.co/core-concepts/devices/adding-custom-metadata-to-a-device), enables you to store custom information, like customer details or internal IDs from your application.
</ResponseField>

<ResponseField name="device_id" type="String (UUID)">
  ID of the device.
</ResponseField>

<ResponseField name="device_type" type="Enum (String)">
  Type of the device.
</ResponseField>

<ResponseField name="display_name" type="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.
</ResponseField>

<ResponseField name="errors" type="Array">
  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.
</ResponseField>

<ResponseField name="is_managed" type="Boolean">
  Indicates whether Seam manages the device. See also [Managed and Unmanaged Devices](https://docs.seam.co/core-concepts/devices/managed-and-unmanaged-devices).
</ResponseField>

<ResponseField name="nickname" type="String">
  Optional nickname to describe the device, settable through Seam.
</ResponseField>

<ResponseField name="properties" type="Object">
  Properties of the device.

  <Expandable title="properties">
    <ResponseField name="accessory_keypad" type="Object">
      Accessory keypad properties and state.

      <Expandable title="properties">
        <ResponseField name="battery" type="Object">
          Keypad battery properties.

          <Expandable title="properties">
            <ResponseField name="level" type="number">
              The level.
            </ResponseField>
          </Expandable>
        </ResponseField>

        <ResponseField name="is_connected" type="Boolean">
          Indicates if an accessory keypad is connected to the device.
        </ResponseField>
      </Expandable>
    </ResponseField>

    <ResponseField name="appearance" type="Object">
      Appearance-related properties, as reported by the device.

      <Expandable title="properties">
        <ResponseField name="name" type="String">
          Name of the device as seen from the provider API and application, not settable through Seam.
        </ResponseField>
      </Expandable>
    </ResponseField>

    <ResponseField name="battery" type="Object">
      Represents the current status of the battery charge level.

      <Expandable title="properties">
        <ResponseField name="level" type="number">
          Battery charge level as a value between 0 and 1, inclusive.
        </ResponseField>

        <ResponseField name="status" type="Enum (String)">
          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.
        </ResponseField>
      </Expandable>
    </ResponseField>

    <ResponseField name="battery_level" type="number">
      Indicates the battery level of the device as a decimal value between 0 and 1, inclusive.
    </ResponseField>

    <ResponseField name="currently_triggering_noise_threshold_ids" type="Array">
      Array of noise threshold IDs that are currently triggering.
    </ResponseField>

    <ResponseField name="has_direct_power" type="Boolean">
      Indicates whether the device has direct power.
    </ResponseField>

    <ResponseField name="image_alt_text" type="String">
      Alt text for the device image.
    </ResponseField>

    <ResponseField name="image_url" type="String">
      Image URL for the device.
    </ResponseField>

    <ResponseField name="manufacturer" type="String">
      Manufacturer of the device. When a device, such as a smart lock, is connected through a smart hub, the manufacturer of the device might be different from that of the smart hub.
    </ResponseField>

    <ResponseField name="model" type="Object">
      Device model-related properties.

      <Expandable title="properties">
        <ResponseField name="accessory_keypad_supported" type="Boolean" deprecated>
          The accessory keypad supported.
        </ResponseField>

        <ResponseField name="can_connect_accessory_keypad" type="Boolean">
          Indicates whether the device can connect a accessory keypad.
        </ResponseField>

        <ResponseField name="display_name" type="String">
          Display name of the device model.
        </ResponseField>

        <ResponseField name="has_built_in_keypad" type="Boolean">
          Indicates whether the device has a built in accessory keypad.
        </ResponseField>

        <ResponseField name="manufacturer_display_name" type="String">
          Display name that corresponds to the manufacturer-specific terminology for the device.
        </ResponseField>

        <ResponseField name="offline_access_codes_supported" type="Boolean" deprecated>
          The offline access codes supported.
        </ResponseField>

        <ResponseField name="online_access_codes_supported" type="Boolean" deprecated>
          The online access codes supported.
        </ResponseField>
      </Expandable>
    </ResponseField>

    <ResponseField name="name" type="String" deprecated>
      Name of the device.
    </ResponseField>

    <ResponseField name="noise_level_decibels" type="number">
      Indicates current noise level in decibels, if the device supports noise detection.
    </ResponseField>

    <ResponseField name="offline_access_codes_enabled" type="Boolean" deprecated>
      Indicates whether it is currently possible to use offline access codes for the device.
    </ResponseField>

    <ResponseField name="online" type="Boolean">
      Indicates whether the device is online.
    </ResponseField>

    <ResponseField name="online_access_codes_enabled" type="Boolean" deprecated>
      Indicates whether it is currently possible to use online access codes for the device.
    </ResponseField>

    <ResponseField name="serial_number" type="String">
      Serial number of the device.
    </ResponseField>

    <ResponseField name="supports_accessory_keypad" type="Boolean" deprecated>
      The supports accessory keypad.
    </ResponseField>

    <ResponseField name="supports_offline_access_codes" type="Boolean" deprecated>
      The supports offline access codes.
    </ResponseField>

    <ResponseField name="assa_abloy_credential_service_metadata" type="Object">
      ASSA ABLOY Credential Service metadata for the phone.

      <Expandable title="properties">
        <ResponseField name="endpoints" type="Array">
          Endpoints associated with the phone.
        </ResponseField>

        <ResponseField name="has_active_endpoint" type="Boolean">
          Indicates whether the credential service has active endpoints associated with the phone.
        </ResponseField>
      </Expandable>
    </ResponseField>

    <ResponseField name="salto_space_credential_service_metadata" type="Object">
      Salto Space credential service metadata for the phone.

      <Expandable title="properties">
        <ResponseField name="has_active_phone" type="Boolean">
          Indicates whether the credential service has an active associated phone.
        </ResponseField>
      </Expandable>
    </ResponseField>

    <ResponseField name="akiles_metadata" type="Object">
      Metadata for an Akiles device.

      <Expandable title="properties">
        <ResponseField name="_member_group_id" type="String">
          Group ID to which to add users for an Akiles device.
        </ResponseField>

        <ResponseField name="gadget_id" type="String">
          Gadget ID for an Akiles device.
        </ResponseField>

        <ResponseField name="gadget_name" type="String">
          Gadget name for an Akiles device.
        </ResponseField>

        <ResponseField name="product_name" type="String">
          Product name for an Akiles device.
        </ResponseField>
      </Expandable>
    </ResponseField>

    <ResponseField name="assa_abloy_vostio_metadata" type="Object">
      Metadata for an ASSA ABLOY Vostio system.

      <Expandable title="properties">
        <ResponseField name="encoder_name" type="String">
          Encoder name for an ASSA ABLOY Vostio system.
        </ResponseField>
      </Expandable>
    </ResponseField>

    <ResponseField name="august_metadata" type="Object">
      Metadata for an August device.

      <Expandable title="properties">
        <ResponseField name="has_keypad" type="Boolean">
          Indicates whether an August device has a keypad.
        </ResponseField>

        <ResponseField name="house_id" type="String">
          House ID for an August device.
        </ResponseField>

        <ResponseField name="house_name" type="String">
          House name for an August device.
        </ResponseField>

        <ResponseField name="keypad_battery_level" type="String">
          Keypad battery level for an August device.
        </ResponseField>

        <ResponseField name="lock_id" type="String">
          Lock ID for an August device.
        </ResponseField>

        <ResponseField name="lock_name" type="String">
          Lock name for an August device.
        </ResponseField>

        <ResponseField name="model" type="String">
          Model for an August device.
        </ResponseField>
      </Expandable>
    </ResponseField>

    <ResponseField name="avigilon_alta_metadata" type="Object">
      Metadata for an Avigilon Alta system.

      <Expandable title="properties">
        <ResponseField name="entry_name" type="String">
          Entry name for an Avigilon Alta system.
        </ResponseField>

        <ResponseField name="entry_relays_total_count" type="number">
          Total count of entry relays for an Avigilon Alta system.
        </ResponseField>

        <ResponseField name="org_name" type="String">
          Organization name for an Avigilon Alta system.
        </ResponseField>

        <ResponseField name="site_id" type="number">
          Site ID for an Avigilon Alta system.
        </ResponseField>

        <ResponseField name="site_name" type="String">
          Site name for an Avigilon Alta system.
        </ResponseField>

        <ResponseField name="zone_id" type="number">
          Zone ID for an Avigilon Alta system.
        </ResponseField>

        <ResponseField name="zone_name" type="String">
          Zone name for an Avigilon Alta system.
        </ResponseField>
      </Expandable>
    </ResponseField>

    <ResponseField name="brivo_metadata" type="Object">
      Metadata for a Brivo device.

      <Expandable title="properties">
        <ResponseField name="activation_enabled" type="Boolean">
          Indicates whether the Brivo access point has activation (remote unlock) enabled.
        </ResponseField>

        <ResponseField name="device_name" type="String">
          Device name for a Brivo device.
        </ResponseField>
      </Expandable>
    </ResponseField>

    <ResponseField name="controlbyweb_metadata" type="Object">
      Metadata for a ControlByWeb device.

      <Expandable title="properties">
        <ResponseField name="device_id" type="String">
          Device ID for a ControlByWeb device.
        </ResponseField>

        <ResponseField name="device_name" type="String">
          Device name for a ControlByWeb device.
        </ResponseField>

        <ResponseField name="relay_name" type="String">
          Relay name for a ControlByWeb device.
        </ResponseField>
      </Expandable>
    </ResponseField>

    <ResponseField name="dormakaba_oracode_metadata" type="Object">
      Metadata for a dormakaba Oracode device.

      <Expandable title="properties">
        <ResponseField name="device_id" type="Object">
          Device ID for a dormakaba Oracode device.
        </ResponseField>

        <ResponseField name="door_id" type="number">
          Door ID for a dormakaba Oracode device.
        </ResponseField>

        <ResponseField name="door_is_wireless" type="Boolean">
          Indicates whether a door is wireless for a dormakaba Oracode device.
        </ResponseField>

        <ResponseField name="door_name" type="String">
          Door name for a dormakaba Oracode device.
        </ResponseField>

        <ResponseField name="iana_timezone" type="String">
          IANA time zone for a dormakaba Oracode device.
        </ResponseField>

        <ResponseField name="predefined_time_slots" type="Array">
          Predefined time slots for a dormakaba Oracode device.
        </ResponseField>

        <ResponseField name="site_id" type="number" deprecated>
          Site ID for a dormakaba Oracode device.
        </ResponseField>

        <ResponseField name="site_name" type="String">
          Site name for a dormakaba Oracode device.
        </ResponseField>
      </Expandable>
    </ResponseField>

    <ResponseField name="ecobee_metadata" type="Object">
      Metadata for an ecobee device.

      <Expandable title="properties">
        <ResponseField name="device_name" type="String">
          Device name for an ecobee device.
        </ResponseField>

        <ResponseField name="ecobee_device_id" type="String">
          Device ID for an ecobee device.
        </ResponseField>
      </Expandable>
    </ResponseField>

    <ResponseField name="four_suites_metadata" type="Object">
      Metadata for a 4SUITES device.

      <Expandable title="properties">
        <ResponseField name="device_id" type="number">
          Device ID for a 4SUITES device.
        </ResponseField>

        <ResponseField name="device_name" type="String">
          Device name for a 4SUITES device.
        </ResponseField>

        <ResponseField name="reclose_delay_in_seconds" type="number">
          Reclose delay, in seconds, for a 4SUITES device.
        </ResponseField>
      </Expandable>
    </ResponseField>

    <ResponseField name="genie_metadata" type="Object">
      Metadata for a Genie device.

      <Expandable title="properties">
        <ResponseField name="device_name" type="String">
          Lock name for a Genie device.
        </ResponseField>

        <ResponseField name="door_name" type="String">
          Door name for a Genie device.
        </ResponseField>
      </Expandable>
    </ResponseField>

    <ResponseField name="honeywell_resideo_metadata" type="Object">
      Metadata for a Honeywell Resideo device.

      <Expandable title="properties">
        <ResponseField name="device_name" type="String">
          Device name for a Honeywell Resideo device.
        </ResponseField>

        <ResponseField name="honeywell_resideo_device_id" type="String">
          Device ID for a Honeywell Resideo device.
        </ResponseField>
      </Expandable>
    </ResponseField>

    <ResponseField name="igloo_metadata" type="Object">
      Metadata for an igloo device.

      <Expandable title="properties">
        <ResponseField name="bridge_id" type="String">
          Bridge ID for an igloo device.
        </ResponseField>

        <ResponseField name="device_id" type="String">
          Device ID for an igloo device.
        </ResponseField>

        <ResponseField name="model" type="String">
          Model for an igloo device.
        </ResponseField>
      </Expandable>
    </ResponseField>

    <ResponseField name="igloohome_metadata" type="Object">
      Metadata for an igloohome device.

      <Expandable title="properties">
        <ResponseField name="bridge_id" type="String">
          Bridge ID for an igloohome device.
        </ResponseField>

        <ResponseField name="bridge_name" type="String">
          Bridge name for an igloohome device.
        </ResponseField>

        <ResponseField name="device_id" type="String">
          Device ID for an igloohome device.
        </ResponseField>

        <ResponseField name="device_name" type="String">
          Device name for an igloohome device.
        </ResponseField>

        <ResponseField name="is_accessory_keypad_linked_to_bridge" type="Boolean">
          Indicates whether a keypad is linked to a bridge for an igloohome device.
        </ResponseField>

        <ResponseField name="keypad_id" type="String">
          Keypad ID for an igloohome device.
        </ResponseField>
      </Expandable>
    </ResponseField>

    <ResponseField name="keynest_metadata" type="Object">
      Metadata for a KeyNest device.

      <Expandable title="properties">
        <ResponseField name="address" type="String">
          Address for a KeyNest device.
        </ResponseField>

        <ResponseField name="current_or_last_store_id" type="number">
          Current or last store ID for a KeyNest device.
        </ResponseField>

        <ResponseField name="current_status" type="String">
          Current status for a KeyNest device.
        </ResponseField>

        <ResponseField name="current_user_company" type="String">
          Current user company for a KeyNest device.
        </ResponseField>

        <ResponseField name="current_user_email" type="String">
          Current user email for a KeyNest device.
        </ResponseField>

        <ResponseField name="current_user_name" type="String">
          Current user name for a KeyNest device.
        </ResponseField>

        <ResponseField name="current_user_phone_number" type="String">
          Current user phone number for a KeyNest device.
        </ResponseField>

        <ResponseField name="default_office_id" type="number">
          Default office ID for a KeyNest device.
        </ResponseField>

        <ResponseField name="device_name" type="String">
          Device name for a KeyNest device.
        </ResponseField>

        <ResponseField name="fob_id" type="number">
          Fob ID for a KeyNest device.
        </ResponseField>

        <ResponseField name="handover_method" type="String">
          Handover method for a KeyNest device.
        </ResponseField>

        <ResponseField name="has_photo" type="Boolean">
          Whether the KeyNest device has a photo.
        </ResponseField>

        <ResponseField name="is_quadient_locker" type="Boolean">
          Whether the key is in a locker that does not support the access codes API.
        </ResponseField>

        <ResponseField name="key_id" type="String">
          Key ID for a KeyNest device.
        </ResponseField>

        <ResponseField name="key_notes" type="String">
          Key notes for a KeyNest device.
        </ResponseField>

        <ResponseField name="keynest_app_user" type="String">
          KeyNest app user for a KeyNest device.
        </ResponseField>

        <ResponseField name="last_movement" type="String">
          Last movement timestamp for a KeyNest device.
        </ResponseField>

        <ResponseField name="property_id" type="String">
          Property ID for a KeyNest device.
        </ResponseField>

        <ResponseField name="property_postcode" type="String">
          Property postcode for a KeyNest device.
        </ResponseField>

        <ResponseField name="status_type" type="String">
          Status type for a KeyNest device.
        </ResponseField>

        <ResponseField name="subscription_plan" type="String">
          Subscription plan for a KeyNest device.
        </ResponseField>
      </Expandable>
    </ResponseField>

    <ResponseField name="korelock_metadata" type="Object">
      Metadata for a Korelock device.

      <Expandable title="properties">
        <ResponseField name="device_id" type="String">
          Device ID for a Korelock device.
        </ResponseField>

        <ResponseField name="device_name" type="String">
          Device name for a Korelock device.
        </ResponseField>

        <ResponseField name="firmware_version" type="String">
          Firmware version for a Korelock device.
        </ResponseField>

        <ResponseField name="location_id" type="String">
          Location ID for a Korelock device. Required for timebound access codes.
        </ResponseField>

        <ResponseField name="model_code" type="String">
          Model code for a Korelock device.
        </ResponseField>

        <ResponseField name="serial_number" type="String">
          Serial number for a Korelock device.
        </ResponseField>

        <ResponseField name="wifi_signal_strength" type="number">
          WiFi signal strength (0-1) for a Korelock device.
        </ResponseField>
      </Expandable>
    </ResponseField>

    <ResponseField name="kwikset_metadata" type="Object">
      Metadata for a Kwikset device.

      <Expandable title="properties">
        <ResponseField name="device_id" type="String">
          Device ID for a Kwikset device.
        </ResponseField>

        <ResponseField name="device_name" type="String">
          Device name for a Kwikset device.
        </ResponseField>

        <ResponseField name="model_number" type="String">
          Model number for a Kwikset device.
        </ResponseField>
      </Expandable>
    </ResponseField>

    <ResponseField name="lockly_metadata" type="Object">
      Metadata for a Lockly device.

      <Expandable title="properties">
        <ResponseField name="device_id" type="String">
          Device ID for a Lockly device.
        </ResponseField>

        <ResponseField name="device_name" type="String">
          Device name for a Lockly device.
        </ResponseField>

        <ResponseField name="model" type="String">
          Model for a Lockly device.
        </ResponseField>
      </Expandable>
    </ResponseField>

    <ResponseField name="minut_metadata" type="Object">
      Metadata for a Minut device.

      <Expandable title="properties">
        <ResponseField name="device_id" type="String">
          Device ID for a Minut device.
        </ResponseField>

        <ResponseField name="device_name" type="String">
          Device name for a Minut device.
        </ResponseField>

        <ResponseField name="latest_sensor_values" type="Object">
          Latest sensor values for a Minut device.

          <Expandable title="properties">
            <ResponseField name="accelerometer_z" type="Object">
              Latest accelerometer Z-axis reading for a Minut device.

              <Expandable title="properties">
                <ResponseField name="time" type="String">
                  Time of latest accelerometer Z-axis reading for a Minut device.
                </ResponseField>

                <ResponseField name="value" type="number">
                  Value of latest accelerometer Z-axis reading for a Minut device.
                </ResponseField>
              </Expandable>
            </ResponseField>

            <ResponseField name="humidity" type="Object">
              Latest humidity reading for a Minut device.

              <Expandable title="properties">
                <ResponseField name="time" type="String">
                  Time of latest humidity reading for a Minut device.
                </ResponseField>

                <ResponseField name="value" type="number">
                  Value of latest humidity reading for a Minut device.
                </ResponseField>
              </Expandable>
            </ResponseField>

            <ResponseField name="pressure" type="Object">
              Latest pressure reading for a Minut device.

              <Expandable title="properties">
                <ResponseField name="time" type="String">
                  Time of latest pressure reading for a Minut device.
                </ResponseField>

                <ResponseField name="value" type="number">
                  Value of latest pressure reading for a Minut device.
                </ResponseField>
              </Expandable>
            </ResponseField>

            <ResponseField name="sound" type="Object">
              Latest sound reading for a Minut device.

              <Expandable title="properties">
                <ResponseField name="time" type="String">
                  Time of latest sound reading for a Minut device.
                </ResponseField>

                <ResponseField name="value" type="number">
                  Value of latest sound reading for a Minut device.
                </ResponseField>
              </Expandable>
            </ResponseField>

            <ResponseField name="temperature" type="Object">
              Latest temperature reading for a Minut device.

              <Expandable title="properties">
                <ResponseField name="time" type="String">
                  Time of latest temperature reading for a Minut device.
                </ResponseField>

                <ResponseField name="value" type="number">
                  Value of latest temperature reading for a Minut device.
                </ResponseField>
              </Expandable>
            </ResponseField>
          </Expandable>
        </ResponseField>
      </Expandable>
    </ResponseField>

    <ResponseField name="nest_metadata" type="Object">
      Metadata for a Google Nest device.

      <Expandable title="properties">
        <ResponseField name="device_custom_name" type="String">
          Custom device name for a Google Nest device. The device owner sets this value.
        </ResponseField>

        <ResponseField name="device_name" type="String">
          Device name for a Google Nest device. Google sets this value.
        </ResponseField>

        <ResponseField name="display_name" type="String">
          Display name for a Google Nest device.
        </ResponseField>

        <ResponseField name="nest_device_id" type="String">
          Device ID for a Google Nest device.
        </ResponseField>
      </Expandable>
    </ResponseField>

    <ResponseField name="noiseaware_metadata" type="Object">
      Metadata for a NoiseAware device.

      <Expandable title="properties">
        <ResponseField name="device_id" type="String">
          Device ID for a NoiseAware device.
        </ResponseField>

        <ResponseField name="device_model" type="Enum (String)">
          Device model for a NoiseAware device.
        </ResponseField>

        <ResponseField name="device_name" type="String">
          Device name for a NoiseAware device.
        </ResponseField>

        <ResponseField name="noise_level_decibel" type="number">
          Noise level, in decibels, for a NoiseAware device.
        </ResponseField>

        <ResponseField name="noise_level_nrs" type="number">
          Noise level, expressed as a Noise Risk Score (NRS), for a NoiseAware device.
        </ResponseField>
      </Expandable>
    </ResponseField>

    <ResponseField name="nuki_metadata" type="Object">
      Metadata for a Nuki device.

      <Expandable title="properties">
        <ResponseField name="device_id" type="String">
          Device ID for a Nuki device.
        </ResponseField>

        <ResponseField name="device_name" type="String">
          Device name for a Nuki device.
        </ResponseField>

        <ResponseField name="keypad_2_paired" type="Boolean">
          Indicates whether keypad 2 is paired for a Nuki device.
        </ResponseField>

        <ResponseField name="keypad_battery_critical" type="Boolean">
          Indicates whether the keypad battery is in a critical state for a Nuki device.
        </ResponseField>

        <ResponseField name="keypad_paired" type="Boolean">
          Indicates whether the keypad is paired for a Nuki device.
        </ResponseField>
      </Expandable>
    </ResponseField>

    <ResponseField name="omnitec_metadata" type="Object">
      Metadata for an Omnitec device.

      <Expandable title="properties">
        <ResponseField name="has_gateway" type="Boolean">
          Whether the Omnitec lock has a connected gateway for remote operations.
        </ResponseField>

        <ResponseField name="lock_id" type="number">
          Lock ID for an Omnitec device.
        </ResponseField>

        <ResponseField name="lock_mac" type="String">
          Bluetooth MAC address for an Omnitec device.
        </ResponseField>

        <ResponseField name="lock_name" type="String">
          Lock name for an Omnitec device.
        </ResponseField>

        <ResponseField name="timezone_raw_offset_ms" type="number">
          Static UTC offset of the Omnitec lock in milliseconds. Does not account for DST.
        </ResponseField>
      </Expandable>
    </ResponseField>

    <ResponseField name="ring_metadata" type="Object">
      Metadata for a Ring device.

      <Expandable title="properties">
        <ResponseField name="device_id" type="String">
          Device ID for a Ring device.
        </ResponseField>

        <ResponseField name="device_name" type="String">
          Device name for a Ring device.
        </ResponseField>
      </Expandable>
    </ResponseField>

    <ResponseField name="salto_ks_metadata" type="Object">
      Metadata for a Salto KS device.

      <Expandable title="properties">
        <ResponseField name="battery_level" type="String">
          Battery level for a Salto KS device.
        </ResponseField>

        <ResponseField name="customer_reference" type="String">
          Customer reference for a Salto KS device.
        </ResponseField>

        <ResponseField name="has_custom_pin_subscription" type="Boolean">
          Indicates whether the site has a Salto KS subscription that supports custom PINs.
        </ResponseField>

        <ResponseField name="lock_id" type="String">
          Lock ID for a Salto KS device.
        </ResponseField>

        <ResponseField name="lock_type" type="String">
          Lock type for a Salto KS device.
        </ResponseField>

        <ResponseField name="locked_state" type="String">
          Locked state for a Salto KS device.
        </ResponseField>

        <ResponseField name="model" type="String">
          Model for a Salto KS device.
        </ResponseField>

        <ResponseField name="site_id" type="String">
          Site ID for the Salto KS site to which the device belongs.
        </ResponseField>

        <ResponseField name="site_name" type="String">
          Site name for the Salto KS site to which the device belongs.
        </ResponseField>
      </Expandable>
    </ResponseField>

    <ResponseField name="salto_metadata" type="Object" deprecated>
      Metada for a Salto device.

      <Expandable title="properties">
        <ResponseField name="battery_level" type="String">
          Battery level for a Salto device.
        </ResponseField>

        <ResponseField name="customer_reference" type="String">
          Customer reference for a Salto device.
        </ResponseField>

        <ResponseField name="lock_id" type="String">
          Lock ID for a Salto device.
        </ResponseField>

        <ResponseField name="lock_type" type="String">
          Lock type for a Salto device.
        </ResponseField>

        <ResponseField name="locked_state" type="String">
          Locked state for a Salto device.
        </ResponseField>

        <ResponseField name="model" type="String">
          Model for a Salto device.
        </ResponseField>

        <ResponseField name="site_id" type="String">
          Site ID for the Salto KS site to which the device belongs.
        </ResponseField>

        <ResponseField name="site_name" type="String">
          Site name for the Salto KS site to which the device belongs.
        </ResponseField>
      </Expandable>
    </ResponseField>

    <ResponseField name="schlage_metadata" type="Object">
      Metadata for a Schlage device.

      <Expandable title="properties">
        <ResponseField name="device_id" type="String">
          Device ID for a Schlage device.
        </ResponseField>

        <ResponseField name="device_name" type="String">
          Device name for a Schlage device.
        </ResponseField>

        <ResponseField name="model" type="String">
          Model for a Schlage device.
        </ResponseField>
      </Expandable>
    </ResponseField>

    <ResponseField name="seam_bridge_metadata" type="Object">
      Metadata for Seam Bridge.

      <Expandable title="properties">
        <ResponseField name="device_num" type="number">
          Device number for Seam Bridge.
        </ResponseField>

        <ResponseField name="name" type="String">
          Name for Seam Bridge.
        </ResponseField>

        <ResponseField name="unlock_method" type="Enum (String)">
          Unlock method for Seam Bridge.
        </ResponseField>
      </Expandable>
    </ResponseField>

    <ResponseField name="sensi_metadata" type="Object">
      Metadata for a Sensi device.

      <Expandable title="properties">
        <ResponseField name="device_id" type="String">
          Device ID for a Sensi device.
        </ResponseField>

        <ResponseField name="device_name" type="String">
          Device name for a Sensi device.
        </ResponseField>

        <ResponseField name="dual_setpoints_not_supported" type="Boolean">
          Set to true when the device does not support the /dual-setpoints API endpoint.
        </ResponseField>

        <ResponseField name="product_type" type="String">
          Product type for a Sensi device.
        </ResponseField>
      </Expandable>
    </ResponseField>

    <ResponseField name="smartthings_metadata" type="Object">
      Metadata for a SmartThings device.

      <Expandable title="properties">
        <ResponseField name="device_id" type="String">
          Device ID for a SmartThings device.
        </ResponseField>

        <ResponseField name="device_name" type="String">
          Device name for a SmartThings device.
        </ResponseField>

        <ResponseField name="location_id" type="String">
          Location ID for a SmartThings device.
        </ResponseField>

        <ResponseField name="model" type="String">
          Model for a SmartThings device.
        </ResponseField>
      </Expandable>
    </ResponseField>

    <ResponseField name="tado_metadata" type="Object">
      Metadata for a tado° device.

      <Expandable title="properties">
        <ResponseField name="device_type" type="String">
          Device type for a tado° device.
        </ResponseField>

        <ResponseField name="serial_no" type="String">
          Serial number for a tado° device.
        </ResponseField>
      </Expandable>
    </ResponseField>

    <ResponseField name="tedee_metadata" type="Object">
      Metadata for a Tedee device.

      <Expandable title="properties">
        <ResponseField name="bridge_id" type="number">
          Bridge ID for a Tedee device.
        </ResponseField>

        <ResponseField name="bridge_name" type="String">
          Bridge name for a Tedee device.
        </ResponseField>

        <ResponseField name="device_id" type="number">
          Device ID for a Tedee device.
        </ResponseField>

        <ResponseField name="device_model" type="String">
          Device model for a Tedee device.
        </ResponseField>

        <ResponseField name="device_name" type="String">
          Device name for a Tedee device.
        </ResponseField>

        <ResponseField name="keypad_id" type="number">
          Keypad ID for a Tedee device.
        </ResponseField>

        <ResponseField name="serial_number" type="String">
          Serial number for a Tedee device.
        </ResponseField>
      </Expandable>
    </ResponseField>

    <ResponseField name="ttlock_metadata" type="Object">
      Metadata for a TTLock device.

      <Expandable title="properties">
        <ResponseField name="feature_value" type="String">
          Feature value for a TTLock device.
        </ResponseField>

        <ResponseField name="features" type="Object">
          Features for a TTLock device.

          <Expandable title="properties">
            <ResponseField name="auto_lock_time_config" type="Boolean">
              Indicates whether a TTLock device supports auto-lock time configuration.
            </ResponseField>

            <ResponseField name="incomplete_keyboard_passcode" type="Boolean">
              Indicates whether a TTLock device supports an incomplete keyboard passcode.
            </ResponseField>

            <ResponseField name="lock_command" type="Boolean">
              Indicates whether a TTLock device supports the lock command.
            </ResponseField>

            <ResponseField name="passcode" type="Boolean">
              Indicates whether a TTLock device supports a passcode.
            </ResponseField>

            <ResponseField name="passcode_management" type="Boolean">
              Indicates whether a TTLock device supports passcode management.
            </ResponseField>

            <ResponseField name="unlock_via_gateway" type="Boolean">
              Indicates whether a TTLock device supports unlock via gateway.
            </ResponseField>

            <ResponseField name="wifi" type="Boolean">
              Indicates whether a TTLock device supports Wi-Fi.
            </ResponseField>
          </Expandable>
        </ResponseField>

        <ResponseField name="has_gateway" type="Boolean">
          Indicates whether a TTLock device has a gateway.
        </ResponseField>

        <ResponseField name="lock_alias" type="String">
          Lock alias for a TTLock device.
        </ResponseField>

        <ResponseField name="lock_id" type="number">
          Lock ID for a TTLock device.
        </ResponseField>

        <ResponseField name="timezone_raw_offset_ms" type="number">
          Lock-side timezone offset in milliseconds east of UTC, as configured in the TTLock app. Source of truth for the lock's wall-clock interpretation of access code start/end times — a misconfigured value here is the typical cause of customer "codes offset by N hours" reports. Diagnostic only; Seam does not convert times based on this value.
        </ResponseField>

        <ResponseField name="wireless_keypads" type="Array">
          Wireless keypads for a TTLock device.
        </ResponseField>
      </Expandable>
    </ResponseField>

    <ResponseField name="two_n_metadata" type="Object">
      Metadata for a 2N device.

      <Expandable title="properties">
        <ResponseField name="device_id" type="number">
          Device ID for a 2N device.
        </ResponseField>

        <ResponseField name="device_name" type="String">
          Device name for a 2N device.
        </ResponseField>
      </Expandable>
    </ResponseField>

    <ResponseField name="ultraloq_metadata" type="Object">
      Metadata for an Ultraloq device.

      <Expandable title="properties">
        <ResponseField name="device_id" type="String">
          Device ID for an Ultraloq device.
        </ResponseField>

        <ResponseField name="device_name" type="String">
          Device name for an Ultraloq device.
        </ResponseField>

        <ResponseField name="device_type" type="String">
          Device type for an Ultraloq device.
        </ResponseField>

        <ResponseField name="time_zone" type="String">
          IANA timezone for the Ultraloq device.
        </ResponseField>
      </Expandable>
    </ResponseField>

    <ResponseField name="visionline_metadata" type="Object">
      Metadata for an ASSA ABLOY Visionline system.

      <Expandable title="properties">
        <ResponseField name="encoder_id" type="String">
          Encoder ID for an ASSA ABLOY Visionline system.
        </ResponseField>
      </Expandable>
    </ResponseField>

    <ResponseField name="wyze_metadata" type="Object">
      Metadata for a Wyze device.

      <Expandable title="properties">
        <ResponseField name="device_id" type="String">
          Device ID for a Wyze device.
        </ResponseField>

        <ResponseField name="device_info_model" type="String">
          Device information model for a Wyze device.
        </ResponseField>

        <ResponseField name="device_name" type="String">
          Device name for a Wyze device.
        </ResponseField>

        <ResponseField name="keypad_uuid" type="String">
          Keypad UUID for a Wyze device.
        </ResponseField>

        <ResponseField name="locker_status_hardlock" type="number">
          Locker status (hardlock) for a Wyze device.
        </ResponseField>

        <ResponseField name="product_model" type="String">
          Product model for a Wyze device.
        </ResponseField>

        <ResponseField name="product_name" type="String">
          Product name for a Wyze device.
        </ResponseField>

        <ResponseField name="product_type" type="String">
          Product type for a Wyze device.
        </ResponseField>
      </Expandable>
    </ResponseField>

    <ResponseField name="auto_lock_delay_seconds" type="number">
      The delay in seconds before the lock automatically locks after being unlocked.
    </ResponseField>

    <ResponseField name="auto_lock_enabled" type="Boolean">
      Indicates whether automatic locking is enabled.
    </ResponseField>

    <ResponseField name="code_constraints" type="Array">
      Constraints on access codes for the device. Seam represents each constraint as an object with a `constraint_type` property. Depending on the constraint type, there may also be additional properties. Note that some constraints are manufacturer- or device-specific.
    </ResponseField>

    <ResponseField name="door_open" type="Boolean">
      Indicates whether the door is open.
    </ResponseField>

    <ResponseField name="has_native_entry_events" type="Boolean">
      Indicates whether the device supports native entry events.
    </ResponseField>

    <ResponseField name="keypad_battery" type="Object">
      Keypad battery status.

      <Expandable title="properties">
        <ResponseField name="level" type="number">
          Keypad battery charge level.
        </ResponseField>
      </Expandable>
    </ResponseField>

    <ResponseField name="locked" type="Boolean">
      Indicates whether the lock is locked.
    </ResponseField>

    <ResponseField name="max_active_codes_supported" type="number">
      Maximum number of active access codes that the device supports.
    </ResponseField>

    <ResponseField name="supported_code_lengths" type="Array">
      Supported code lengths for access codes.
    </ResponseField>

    <ResponseField name="supports_backup_access_code_pool" type="Boolean">
      Indicates whether the device supports a [backup access code pool](https://docs.seam.co/low-level-apis/smart-locks/access-codes/backup-access-codes).
    </ResponseField>

    <ResponseField name="active_thermostat_schedule" type="Object" deprecated>
      Active [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules).

      <Expandable title="properties">
        <ResponseField name="climate_preset_key" type="String">
          Key of the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) to use for the [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules).
        </ResponseField>

        <ResponseField name="created_at" type="String (ISO 8601)">
          Date and time at which the [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules) was created.
        </ResponseField>

        <ResponseField name="device_id" type="String (UUID)">
          ID of the desired [thermostat](https://docs.seam.co/capability-guides/thermostats) device.
        </ResponseField>

        <ResponseField name="ends_at" type="String (ISO 8601)">
          Date and time at which the [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules) ends, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format.
        </ResponseField>

        <ResponseField name="errors" type="Array">
          Errors associated with the [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules).
        </ResponseField>

        <ResponseField name="is_override_allowed" type="Boolean">
          Indicates whether a person at the thermostat can change the thermostat's settings after the [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules) starts.
        </ResponseField>

        <ResponseField name="max_override_period_minutes" type="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](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets). See also [Specifying Manual Override Permissions](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules#specifying-manual-override-permissions).
        </ResponseField>

        <ResponseField name="name" type="String">
          User-friendly name to identify the [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules).
        </ResponseField>

        <ResponseField name="starts_at" type="String (ISO 8601)">
          Date and time at which the [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules) starts, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format.
        </ResponseField>

        <ResponseField name="thermostat_schedule_id" type="String (UUID)">
          ID of the [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules).
        </ResponseField>

        <ResponseField name="workspace_id" type="String (UUID)">
          ID of the [workspace](https://docs.seam.co/core-concepts/workspaces) that contains the thermostat schedule.
        </ResponseField>
      </Expandable>
    </ResponseField>

    <ResponseField name="active_thermostat_schedule_id" type="String (UUID)">
      ID of the active [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules).
    </ResponseField>

    <ResponseField name="available_climate_preset_modes" type="Array">
      Climate preset modes that the thermostat supports, such as "home", "away", "wake", "sleep", "occupied", and "unoccupied".
    </ResponseField>

    <ResponseField name="available_climate_presets" type="Array">
      Available [climate presets](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) for the thermostat.
    </ResponseField>

    <ResponseField name="available_fan_mode_settings" type="Array">
      Fan mode settings that the thermostat supports.
    </ResponseField>

    <ResponseField name="available_hvac_mode_settings" type="Array">
      HVAC mode settings that the thermostat supports.
    </ResponseField>

    <ResponseField name="current_climate_setting" type="Object">
      Current climate setting.

      <Expandable title="properties">
        <ResponseField name="can_delete" type="Boolean">
          Indicates whether the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) key can be deleted.
        </ResponseField>

        <ResponseField name="can_edit" type="Boolean">
          Indicates whether the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) key can be edited.
        </ResponseField>

        <ResponseField name="can_use_with_thermostat_daily_programs" type="Boolean">
          Indicates whether the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) key can be programmed in a thermostat daily program.
        </ResponseField>

        <ResponseField name="climate_preset_key" type="String">
          Unique key to identify the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets).
        </ResponseField>

        <ResponseField name="climate_preset_mode" type="Enum (String)">
          The climate preset mode for the thermostat, based on the available climate preset modes reported by the device.
        </ResponseField>

        <ResponseField name="cooling_set_point_celsius" type="number">
          Temperature to which the thermostat should cool (in °C). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points).
        </ResponseField>

        <ResponseField name="cooling_set_point_fahrenheit" type="number">
          Temperature to which the thermostat should cool (in °F). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points).
        </ResponseField>

        <ResponseField name="display_name" type="String">
          Display name for the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets).
        </ResponseField>

        <ResponseField name="ecobee_metadata" type="Object">
          Metadata specific to the Ecobee climate, if applicable.

          <Expandable title="properties">
            <ResponseField name="climate_ref" type="String">
              Reference to the Ecobee climate, if applicable.
            </ResponseField>

            <ResponseField name="is_optimized" type="Boolean">
              Indicates if the climate preset is optimized by Ecobee.
            </ResponseField>

            <ResponseField name="owner" type="Enum (String)">
              Indicates whether the climate preset is owned by the user or the system.
            </ResponseField>
          </Expandable>
        </ResponseField>

        <ResponseField name="fan_mode_setting" type="Enum (String)">
          Desired [fan mode setting](https://docs.seam.co/capability-guides/thermostats/configure-current-climate-settings#fan-mode-settings), such as `on`, `auto`, or `circulate`.
        </ResponseField>

        <ResponseField name="heating_set_point_celsius" type="number">
          Temperature to which the thermostat should heat (in °C). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points).
        </ResponseField>

        <ResponseField name="heating_set_point_fahrenheit" type="number">
          Temperature to which the thermostat should heat (in °F). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points).
        </ResponseField>

        <ResponseField name="hvac_mode_setting" type="Enum (String)">
          Desired [HVAC mode](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/hvac-mode) setting, such as `heat`, `cool`, `heat_cool`, or `off`.
        </ResponseField>

        <ResponseField name="manual_override_allowed" type="Boolean" deprecated>
          Indicates whether a person at the thermostat can change the thermostat's settings. See [Specifying Manual Override Permissions](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules#specifying-manual-override-permissions).
        </ResponseField>

        <ResponseField name="name" type="String">
          User-friendly name to identify the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets).
        </ResponseField>
      </Expandable>
    </ResponseField>

    <ResponseField name="default_climate_setting" type="Object" deprecated>
      The default climate setting.

      <Expandable title="properties">
        <ResponseField name="can_delete" type="Boolean">
          Indicates whether the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) key can be deleted.
        </ResponseField>

        <ResponseField name="can_edit" type="Boolean">
          Indicates whether the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) key can be edited.
        </ResponseField>

        <ResponseField name="can_use_with_thermostat_daily_programs" type="Boolean">
          Indicates whether the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) key can be programmed in a thermostat daily program.
        </ResponseField>

        <ResponseField name="climate_preset_key" type="String">
          Unique key to identify the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets).
        </ResponseField>

        <ResponseField name="climate_preset_mode" type="Enum (String)">
          The climate preset mode for the thermostat, based on the available climate preset modes reported by the device.
        </ResponseField>

        <ResponseField name="cooling_set_point_celsius" type="number">
          Temperature to which the thermostat should cool (in °C). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points).
        </ResponseField>

        <ResponseField name="cooling_set_point_fahrenheit" type="number">
          Temperature to which the thermostat should cool (in °F). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points).
        </ResponseField>

        <ResponseField name="display_name" type="String">
          Display name for the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets).
        </ResponseField>

        <ResponseField name="ecobee_metadata" type="Object">
          Metadata specific to the Ecobee climate, if applicable.

          <Expandable title="properties">
            <ResponseField name="climate_ref" type="String">
              Reference to the Ecobee climate, if applicable.
            </ResponseField>

            <ResponseField name="is_optimized" type="Boolean">
              Indicates if the climate preset is optimized by Ecobee.
            </ResponseField>

            <ResponseField name="owner" type="Enum (String)">
              Indicates whether the climate preset is owned by the user or the system.
            </ResponseField>
          </Expandable>
        </ResponseField>

        <ResponseField name="fan_mode_setting" type="Enum (String)">
          Desired [fan mode setting](https://docs.seam.co/capability-guides/thermostats/configure-current-climate-settings#fan-mode-settings), such as `on`, `auto`, or `circulate`.
        </ResponseField>

        <ResponseField name="heating_set_point_celsius" type="number">
          Temperature to which the thermostat should heat (in °C). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points).
        </ResponseField>

        <ResponseField name="heating_set_point_fahrenheit" type="number">
          Temperature to which the thermostat should heat (in °F). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points).
        </ResponseField>

        <ResponseField name="hvac_mode_setting" type="Enum (String)">
          Desired [HVAC mode](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/hvac-mode) setting, such as `heat`, `cool`, `heat_cool`, or `off`.
        </ResponseField>

        <ResponseField name="manual_override_allowed" type="Boolean" deprecated>
          Indicates whether a person at the thermostat can change the thermostat's settings. See [Specifying Manual Override Permissions](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules#specifying-manual-override-permissions).
        </ResponseField>

        <ResponseField name="name" type="String">
          User-friendly name to identify the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets).
        </ResponseField>
      </Expandable>
    </ResponseField>

    <ResponseField name="fallback_climate_preset_key" type="String">
      Key of the [fallback climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets/setting-the-fallback-climate-preset) for the thermostat.
    </ResponseField>

    <ResponseField name="fan_mode_setting" type="Enum (String)" deprecated>
      The fan mode setting.
    </ResponseField>

    <ResponseField name="is_cooling" type="Boolean">
      Indicates whether the connected HVAC system is currently cooling, as reported by the thermostat.
    </ResponseField>

    <ResponseField name="is_fan_running" type="Boolean">
      Indicates whether the fan in the connected HVAC system is currently running, as reported by the thermostat.
    </ResponseField>

    <ResponseField name="is_heating" type="Boolean">
      Indicates whether the connected HVAC system is currently heating, as reported by the thermostat.
    </ResponseField>

    <ResponseField name="is_temporary_manual_override_active" type="Boolean">
      Indicates whether the current thermostat settings differ from the most recent active program or schedule that Seam activated. For this condition to occur, `current_climate_setting.manual_override_allowed` must also be `true`.
    </ResponseField>

    <ResponseField name="max_cooling_set_point_celsius" type="number">
      Maximum [cooling set point](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points#cooling-set-point) in °C.
    </ResponseField>

    <ResponseField name="max_cooling_set_point_fahrenheit" type="number">
      Maximum [cooling set point](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points#cooling-set-point) in °F.
    </ResponseField>

    <ResponseField name="max_heating_set_point_celsius" type="number">
      Maximum [heating set point](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points#heating-set-point) in °C.
    </ResponseField>

    <ResponseField name="max_heating_set_point_fahrenheit" type="number">
      Maximum [heating set point](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points#heating-set-point) in °F.
    </ResponseField>

    <ResponseField name="max_thermostat_daily_program_periods_per_day" type="number">
      Maximum number of periods that the thermostat can support per day. For example, if the thermostat supports 4 periods per day, this value is 4.
    </ResponseField>

    <ResponseField name="max_unique_climate_presets_per_thermostat_weekly_program" type="number">
      Maximum number of climate presets that the thermostat can support for weekly programming.
    </ResponseField>

    <ResponseField name="min_cooling_set_point_celsius" type="number">
      Minimum [cooling set point](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points#cooling-set-point) in °C.
    </ResponseField>

    <ResponseField name="min_cooling_set_point_fahrenheit" type="number">
      Minimum [cooling set point](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points#cooling-set-point) in °F.
    </ResponseField>

    <ResponseField name="min_heating_cooling_delta_celsius" type="number">
      Minimum [temperature difference](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points#minimum-heating-cooling-temperature-delta) in °C between the cooling and heating set points when in heat-cool (auto) mode.
    </ResponseField>

    <ResponseField name="min_heating_cooling_delta_fahrenheit" type="number">
      Minimum [temperature difference](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points#minimum-heating-cooling-temperature-delta) in °F between the cooling and heating set points when in heat-cool (auto) mode.
    </ResponseField>

    <ResponseField name="min_heating_set_point_celsius" type="number">
      Minimum [heating set point](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points#heating-set-point) in °C.
    </ResponseField>

    <ResponseField name="min_heating_set_point_fahrenheit" type="number">
      Minimum [heating set point](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points#heating-set-point) in °F.
    </ResponseField>

    <ResponseField name="relative_humidity" type="number">
      Reported relative humidity, as a value between 0 and 1, inclusive.
    </ResponseField>

    <ResponseField name="temperature_celsius" type="number">
      Reported temperature in °C.
    </ResponseField>

    <ResponseField name="temperature_fahrenheit" type="number">
      Reported temperature in °F.
    </ResponseField>

    <ResponseField name="temperature_threshold" type="Object">
      Current [temperature threshold](https://docs.seam.co/capability-guides/thermostats/setting-and-monitoring-temperature-thresholds) set for the thermostat.

      <Expandable title="properties">
        <ResponseField name="lower_limit_celsius" type="number">
          Lower limit in °C within the current [temperature threshold](https://docs.seam.co/capability-guides/thermostats/setting-and-monitoring-temperature-thresholds) set for the thermostat.
        </ResponseField>

        <ResponseField name="lower_limit_fahrenheit" type="number">
          Lower limit in °F within the current [temperature threshold](https://docs.seam.co/capability-guides/thermostats/setting-and-monitoring-temperature-thresholds) set for the thermostat.
        </ResponseField>

        <ResponseField name="upper_limit_celsius" type="number">
          Upper limit in °C within the current [temperature threshold](https://docs.seam.co/capability-guides/thermostats/setting-and-monitoring-temperature-thresholds) set for the thermostat.
        </ResponseField>

        <ResponseField name="upper_limit_fahrenheit" type="number">
          Upper limit in °F within the current [temperature threshold](https://docs.seam.co/capability-guides/thermostats/setting-and-monitoring-temperature-thresholds) set for the thermostat.
        </ResponseField>
      </Expandable>
    </ResponseField>

    <ResponseField name="thermostat_daily_program_period_precision_minutes" type="number">
      Precision of the thermostat's period in minutes. For example, if the thermostat supports 15-minute periods, this value is 15. All values are relative to the top of the hour, so for 15 minutes, the periods would be 0, 15, 30, and 45 minutes past the hour.
    </ResponseField>

    <ResponseField name="thermostat_daily_programs" type="Array">
      Configured [daily programs](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-programs) for the thermostat.
    </ResponseField>

    <ResponseField name="thermostat_weekly_program" type="Object">
      Current [weekly program](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-programs) for the thermostat.

      <Expandable title="properties">
        <ResponseField name="created_at" type="String (ISO 8601)">
          Date and time at which the thermostat weekly program was created.
        </ResponseField>

        <ResponseField name="friday_program_id" type="String (UUID)">
          ID of the thermostat daily program to run on Fridays.
        </ResponseField>

        <ResponseField name="monday_program_id" type="String (UUID)">
          ID of the thermostat daily program to run on Mondays.
        </ResponseField>

        <ResponseField name="saturday_program_id" type="String (UUID)">
          ID of the thermostat daily program to run on Saturdays.
        </ResponseField>

        <ResponseField name="sunday_program_id" type="String (UUID)">
          ID of the thermostat daily program to run on Sundays.
        </ResponseField>

        <ResponseField name="thursday_program_id" type="String (UUID)">
          ID of the thermostat daily program to run on Thursdays.
        </ResponseField>

        <ResponseField name="tuesday_program_id" type="String (UUID)">
          ID of the thermostat daily program to run on Tuesdays.
        </ResponseField>

        <ResponseField name="wednesday_program_id" type="String (UUID)">
          ID of the thermostat daily program to run on Wednesdays.
        </ResponseField>
      </Expandable>
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="space_ids" type="Array">
  IDs of the spaces the device is in.
</ResponseField>

<ResponseField name="warnings" type="Array">
  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.
</ResponseField>

<ResponseField name="workspace_id" type="String (UUID)">
  Unique identifier for the Seam workspace associated with the device.
</ResponseField>

<ResponseField name="device_manufacturer" type="Object">
  Manufacturer of the device. Represents the hardware brand, which may differ from the provider.

  <Expandable title="properties">
    <ResponseField name="display_name" type="String">
      Display name for the manufacturer, such as `August`, `Yale`, `Salto`, and so on.
    </ResponseField>

    <ResponseField name="image_url" type="String">
      Image URL for the manufacturer logo.
    </ResponseField>

    <ResponseField name="manufacturer" type="String">
      Manufacturer identifier, such as `august`, `yale`, `salto`, and so on.
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="device_provider" type="Object">
  Provider of the device. Represents the third-party service through which the device is controlled.

  <Expandable title="properties">
    <ResponseField name="device_provider_name" type="String">
      Device provider name. Corresponds to the integration type, such as `august`, `schlage`, `yale_access`, and so on.
    </ResponseField>

    <ResponseField name="display_name" type="String">
      Display name for the device provider type.
    </ResponseField>

    <ResponseField name="image_url" type="String">
      Image URL for the device provider.
    </ResponseField>

    <ResponseField name="provider_category" type="String">
      Provider category. Indicates the third-party provider type, such as `stable`, for stable integrations, or `internal`, for internal integrations.
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="location" type="Object">
  Location information for the device.

  <Expandable title="properties">
    <ResponseField name="location_name" type="String">
      Name of the device location.
    </ResponseField>

    <ResponseField name="time_zone" type="String">
      Time zone of the device location.
    </ResponseField>

    <ResponseField name="timezone" type="String" deprecated>
      Time zone of the device location.
    </ResponseField>
  </Expandable>
</ResponseField>

## Access Codes

<ResponseField name="offline_access_codes_enabled" type="Boolean" deprecated>
  Indicates whether it is currently possible to use offline access codes for the device.
</ResponseField>

<ResponseField name="online_access_codes_enabled" type="Boolean" deprecated>
  Indicates whether it is currently possible to use online access codes for the device.
</ResponseField>

<ResponseField name="supports_accessory_keypad" type="Boolean" deprecated>
  The supports accessory keypad.
</ResponseField>

<ResponseField name="supports_offline_access_codes" type="Boolean" deprecated>
  The supports offline access codes.
</ResponseField>

<ResponseField name="code_constraints" type="Array">
  Constraints on access codes for the device. Seam represents each constraint as an object with a `constraint_type` property. Depending on the constraint type, there may also be additional properties. Note that some constraints are manufacturer- or device-specific.
</ResponseField>

<ResponseField name="has_native_entry_events" type="Boolean">
  Indicates whether the device supports native entry events.
</ResponseField>

<ResponseField name="keypad_battery" type="Object">
  Keypad battery status.

  <Expandable title="properties">
    <ResponseField name="level" type="number">
      Keypad battery charge level.
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="max_active_codes_supported" type="number">
  Maximum number of active access codes that the device supports.
</ResponseField>

<ResponseField name="supported_code_lengths" type="Array">
  Supported code lengths for access codes.
</ResponseField>

<ResponseField name="supports_backup_access_code_pool" type="Boolean">
  Indicates whether the device supports a [backup access code pool](https://docs.seam.co/low-level-apis/smart-locks/access-codes/backup-access-codes).
</ResponseField>

## Hardware

<ResponseField name="accessory_keypad" type="Object">
  Accessory keypad properties and state.

  <Expandable title="properties">
    <ResponseField name="battery" type="Object">
      Keypad battery properties.

      <Expandable title="properties">
        <ResponseField name="level" type="number">
          The level.
        </ResponseField>
      </Expandable>
    </ResponseField>

    <ResponseField name="is_connected" type="Boolean">
      Indicates if an accessory keypad is connected to the device.
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="appearance" type="Object">
  Appearance-related properties, as reported by the device.

  <Expandable title="properties">
    <ResponseField name="name" type="String">
      Name of the device as seen from the provider API and application, not settable through Seam.
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="battery" type="Object">
  Represents the current status of the battery charge level.

  <Expandable title="properties">
    <ResponseField name="level" type="number">
      Battery charge level as a value between 0 and 1, inclusive.
    </ResponseField>

    <ResponseField name="status" type="Enum (String)">
      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.
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="battery_level" type="number">
  Indicates the battery level of the device as a decimal value between 0 and 1, inclusive.
</ResponseField>

<ResponseField name="has_direct_power" type="Boolean">
  Indicates whether the device has direct power.
</ResponseField>

<ResponseField name="image_alt_text" type="String">
  Alt text for the device image.
</ResponseField>

<ResponseField name="image_url" type="String">
  Image URL for the device.
</ResponseField>

<ResponseField name="manufacturer" type="String">
  Manufacturer of the device. When a device, such as a smart lock, is connected through a smart hub, the manufacturer of the device might be different from that of the smart hub.
</ResponseField>

<ResponseField name="serial_number" type="String">
  Serial number of the device.
</ResponseField>

## Locks

<ResponseField name="auto_lock_delay_seconds" type="number">
  The delay in seconds before the lock automatically locks after being unlocked.
</ResponseField>

<ResponseField name="auto_lock_enabled" type="Boolean">
  Indicates whether automatic locking is enabled.
</ResponseField>

<ResponseField name="door_open" type="Boolean">
  Indicates whether the door is open.
</ResponseField>

<ResponseField name="locked" type="Boolean">
  Indicates whether the lock is locked.
</ResponseField>

## Noise Sensors

<ResponseField name="currently_triggering_noise_threshold_ids" type="Array">
  Array of noise threshold IDs that are currently triggering.
</ResponseField>

<ResponseField name="noise_level_decibels" type="number">
  Indicates current noise level in decibels, if the device supports noise detection.
</ResponseField>

## Thermostats

<ResponseField name="active_thermostat_schedule" type="Object" deprecated>
  Active [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules).

  <Expandable title="properties">
    <ResponseField name="climate_preset_key" type="String">
      Key of the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) to use for the [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules).
    </ResponseField>

    <ResponseField name="created_at" type="String (ISO 8601)">
      Date and time at which the [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules) was created.
    </ResponseField>

    <ResponseField name="device_id" type="String (UUID)">
      ID of the desired [thermostat](https://docs.seam.co/capability-guides/thermostats) device.
    </ResponseField>

    <ResponseField name="ends_at" type="String (ISO 8601)">
      Date and time at which the [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules) ends, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format.
    </ResponseField>

    <ResponseField name="errors" type="Array">
      Errors associated with the [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules).
    </ResponseField>

    <ResponseField name="is_override_allowed" type="Boolean">
      Indicates whether a person at the thermostat can change the thermostat's settings after the [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules) starts.
    </ResponseField>

    <ResponseField name="max_override_period_minutes" type="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](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets). See also [Specifying Manual Override Permissions](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules#specifying-manual-override-permissions).
    </ResponseField>

    <ResponseField name="name" type="String">
      User-friendly name to identify the [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules).
    </ResponseField>

    <ResponseField name="starts_at" type="String (ISO 8601)">
      Date and time at which the [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules) starts, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format.
    </ResponseField>

    <ResponseField name="thermostat_schedule_id" type="String (UUID)">
      ID of the [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules).
    </ResponseField>

    <ResponseField name="workspace_id" type="String (UUID)">
      ID of the [workspace](https://docs.seam.co/core-concepts/workspaces) that contains the thermostat schedule.
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="active_thermostat_schedule_id" type="String (UUID)">
  ID of the active [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules).
</ResponseField>

<ResponseField name="available_climate_preset_modes" type="Array">
  Climate preset modes that the thermostat supports, such as "home", "away", "wake", "sleep", "occupied", and "unoccupied".
</ResponseField>

<ResponseField name="available_climate_presets" type="Array">
  Available [climate presets](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) for the thermostat.
</ResponseField>

<ResponseField name="available_fan_mode_settings" type="Array">
  Fan mode settings that the thermostat supports.
</ResponseField>

<ResponseField name="available_hvac_mode_settings" type="Array">
  HVAC mode settings that the thermostat supports.
</ResponseField>

<ResponseField name="current_climate_setting" type="Object">
  Current climate setting.

  <Expandable title="properties">
    <ResponseField name="can_delete" type="Boolean">
      Indicates whether the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) key can be deleted.
    </ResponseField>

    <ResponseField name="can_edit" type="Boolean">
      Indicates whether the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) key can be edited.
    </ResponseField>

    <ResponseField name="can_use_with_thermostat_daily_programs" type="Boolean">
      Indicates whether the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) key can be programmed in a thermostat daily program.
    </ResponseField>

    <ResponseField name="climate_preset_key" type="String">
      Unique key to identify the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets).
    </ResponseField>

    <ResponseField name="climate_preset_mode" type="Enum (String)">
      The climate preset mode for the thermostat, based on the available climate preset modes reported by the device.
    </ResponseField>

    <ResponseField name="cooling_set_point_celsius" type="number">
      Temperature to which the thermostat should cool (in °C). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points).
    </ResponseField>

    <ResponseField name="cooling_set_point_fahrenheit" type="number">
      Temperature to which the thermostat should cool (in °F). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points).
    </ResponseField>

    <ResponseField name="display_name" type="String">
      Display name for the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets).
    </ResponseField>

    <ResponseField name="ecobee_metadata" type="Object">
      Metadata specific to the Ecobee climate, if applicable.

      <Expandable title="properties">
        <ResponseField name="climate_ref" type="String">
          Reference to the Ecobee climate, if applicable.
        </ResponseField>

        <ResponseField name="is_optimized" type="Boolean">
          Indicates if the climate preset is optimized by Ecobee.
        </ResponseField>

        <ResponseField name="owner" type="Enum (String)">
          Indicates whether the climate preset is owned by the user or the system.
        </ResponseField>
      </Expandable>
    </ResponseField>

    <ResponseField name="fan_mode_setting" type="Enum (String)">
      Desired [fan mode setting](https://docs.seam.co/capability-guides/thermostats/configure-current-climate-settings#fan-mode-settings), such as `on`, `auto`, or `circulate`.
    </ResponseField>

    <ResponseField name="heating_set_point_celsius" type="number">
      Temperature to which the thermostat should heat (in °C). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points).
    </ResponseField>

    <ResponseField name="heating_set_point_fahrenheit" type="number">
      Temperature to which the thermostat should heat (in °F). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points).
    </ResponseField>

    <ResponseField name="hvac_mode_setting" type="Enum (String)">
      Desired [HVAC mode](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/hvac-mode) setting, such as `heat`, `cool`, `heat_cool`, or `off`.
    </ResponseField>

    <ResponseField name="manual_override_allowed" type="Boolean" deprecated>
      Indicates whether a person at the thermostat can change the thermostat's settings. See [Specifying Manual Override Permissions](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules#specifying-manual-override-permissions).
    </ResponseField>

    <ResponseField name="name" type="String">
      User-friendly name to identify the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets).
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="default_climate_setting" type="Object" deprecated>
  The default climate setting.

  <Expandable title="properties">
    <ResponseField name="can_delete" type="Boolean">
      Indicates whether the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) key can be deleted.
    </ResponseField>

    <ResponseField name="can_edit" type="Boolean">
      Indicates whether the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) key can be edited.
    </ResponseField>

    <ResponseField name="can_use_with_thermostat_daily_programs" type="Boolean">
      Indicates whether the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) key can be programmed in a thermostat daily program.
    </ResponseField>

    <ResponseField name="climate_preset_key" type="String">
      Unique key to identify the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets).
    </ResponseField>

    <ResponseField name="climate_preset_mode" type="Enum (String)">
      The climate preset mode for the thermostat, based on the available climate preset modes reported by the device.
    </ResponseField>

    <ResponseField name="cooling_set_point_celsius" type="number">
      Temperature to which the thermostat should cool (in °C). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points).
    </ResponseField>

    <ResponseField name="cooling_set_point_fahrenheit" type="number">
      Temperature to which the thermostat should cool (in °F). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points).
    </ResponseField>

    <ResponseField name="display_name" type="String">
      Display name for the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets).
    </ResponseField>

    <ResponseField name="ecobee_metadata" type="Object">
      Metadata specific to the Ecobee climate, if applicable.

      <Expandable title="properties">
        <ResponseField name="climate_ref" type="String">
          Reference to the Ecobee climate, if applicable.
        </ResponseField>

        <ResponseField name="is_optimized" type="Boolean">
          Indicates if the climate preset is optimized by Ecobee.
        </ResponseField>

        <ResponseField name="owner" type="Enum (String)">
          Indicates whether the climate preset is owned by the user or the system.
        </ResponseField>
      </Expandable>
    </ResponseField>

    <ResponseField name="fan_mode_setting" type="Enum (String)">
      Desired [fan mode setting](https://docs.seam.co/capability-guides/thermostats/configure-current-climate-settings#fan-mode-settings), such as `on`, `auto`, or `circulate`.
    </ResponseField>

    <ResponseField name="heating_set_point_celsius" type="number">
      Temperature to which the thermostat should heat (in °C). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points).
    </ResponseField>

    <ResponseField name="heating_set_point_fahrenheit" type="number">
      Temperature to which the thermostat should heat (in °F). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points).
    </ResponseField>

    <ResponseField name="hvac_mode_setting" type="Enum (String)">
      Desired [HVAC mode](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/hvac-mode) setting, such as `heat`, `cool`, `heat_cool`, or `off`.
    </ResponseField>

    <ResponseField name="manual_override_allowed" type="Boolean" deprecated>
      Indicates whether a person at the thermostat can change the thermostat's settings. See [Specifying Manual Override Permissions](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules#specifying-manual-override-permissions).
    </ResponseField>

    <ResponseField name="name" type="String">
      User-friendly name to identify the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets).
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="fallback_climate_preset_key" type="String">
  Key of the [fallback climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets/setting-the-fallback-climate-preset) for the thermostat.
</ResponseField>

<ResponseField name="fan_mode_setting" type="Enum (String)" deprecated>
  The fan mode setting.
</ResponseField>

<ResponseField name="is_cooling" type="Boolean">
  Indicates whether the connected HVAC system is currently cooling, as reported by the thermostat.
</ResponseField>

<ResponseField name="is_fan_running" type="Boolean">
  Indicates whether the fan in the connected HVAC system is currently running, as reported by the thermostat.
</ResponseField>

<ResponseField name="is_heating" type="Boolean">
  Indicates whether the connected HVAC system is currently heating, as reported by the thermostat.
</ResponseField>

<ResponseField name="is_temporary_manual_override_active" type="Boolean">
  Indicates whether the current thermostat settings differ from the most recent active program or schedule that Seam activated. For this condition to occur, `current_climate_setting.manual_override_allowed` must also be `true`.
</ResponseField>

<ResponseField name="max_cooling_set_point_celsius" type="number">
  Maximum [cooling set point](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points#cooling-set-point) in °C.
</ResponseField>

<ResponseField name="max_cooling_set_point_fahrenheit" type="number">
  Maximum [cooling set point](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points#cooling-set-point) in °F.
</ResponseField>

<ResponseField name="max_heating_set_point_celsius" type="number">
  Maximum [heating set point](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points#heating-set-point) in °C.
</ResponseField>

<ResponseField name="max_heating_set_point_fahrenheit" type="number">
  Maximum [heating set point](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points#heating-set-point) in °F.
</ResponseField>

<ResponseField name="max_thermostat_daily_program_periods_per_day" type="number">
  Maximum number of periods that the thermostat can support per day. For example, if the thermostat supports 4 periods per day, this value is 4.
</ResponseField>

<ResponseField name="max_unique_climate_presets_per_thermostat_weekly_program" type="number">
  Maximum number of climate presets that the thermostat can support for weekly programming.
</ResponseField>

<ResponseField name="min_cooling_set_point_celsius" type="number">
  Minimum [cooling set point](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points#cooling-set-point) in °C.
</ResponseField>

<ResponseField name="min_cooling_set_point_fahrenheit" type="number">
  Minimum [cooling set point](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points#cooling-set-point) in °F.
</ResponseField>

<ResponseField name="min_heating_cooling_delta_celsius" type="number">
  Minimum [temperature difference](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points#minimum-heating-cooling-temperature-delta) in °C between the cooling and heating set points when in heat-cool (auto) mode.
</ResponseField>

<ResponseField name="min_heating_cooling_delta_fahrenheit" type="number">
  Minimum [temperature difference](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points#minimum-heating-cooling-temperature-delta) in °F between the cooling and heating set points when in heat-cool (auto) mode.
</ResponseField>

<ResponseField name="min_heating_set_point_celsius" type="number">
  Minimum [heating set point](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points#heating-set-point) in °C.
</ResponseField>

<ResponseField name="min_heating_set_point_fahrenheit" type="number">
  Minimum [heating set point](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points#heating-set-point) in °F.
</ResponseField>

<ResponseField name="relative_humidity" type="number">
  Reported relative humidity, as a value between 0 and 1, inclusive.
</ResponseField>

<ResponseField name="temperature_celsius" type="number">
  Reported temperature in °C.
</ResponseField>

<ResponseField name="temperature_fahrenheit" type="number">
  Reported temperature in °F.
</ResponseField>

<ResponseField name="temperature_threshold" type="Object">
  Current [temperature threshold](https://docs.seam.co/capability-guides/thermostats/setting-and-monitoring-temperature-thresholds) set for the thermostat.

  <Expandable title="properties">
    <ResponseField name="lower_limit_celsius" type="number">
      Lower limit in °C within the current [temperature threshold](https://docs.seam.co/capability-guides/thermostats/setting-and-monitoring-temperature-thresholds) set for the thermostat.
    </ResponseField>

    <ResponseField name="lower_limit_fahrenheit" type="number">
      Lower limit in °F within the current [temperature threshold](https://docs.seam.co/capability-guides/thermostats/setting-and-monitoring-temperature-thresholds) set for the thermostat.
    </ResponseField>

    <ResponseField name="upper_limit_celsius" type="number">
      Upper limit in °C within the current [temperature threshold](https://docs.seam.co/capability-guides/thermostats/setting-and-monitoring-temperature-thresholds) set for the thermostat.
    </ResponseField>

    <ResponseField name="upper_limit_fahrenheit" type="number">
      Upper limit in °F within the current [temperature threshold](https://docs.seam.co/capability-guides/thermostats/setting-and-monitoring-temperature-thresholds) set for the thermostat.
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="thermostat_daily_program_period_precision_minutes" type="number">
  Precision of the thermostat's period in minutes. For example, if the thermostat supports 15-minute periods, this value is 15. All values are relative to the top of the hour, so for 15 minutes, the periods would be 0, 15, 30, and 45 minutes past the hour.
</ResponseField>

<ResponseField name="thermostat_daily_programs" type="Array">
  Configured [daily programs](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-programs) for the thermostat.
</ResponseField>

<ResponseField name="thermostat_weekly_program" type="Object">
  Current [weekly program](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-programs) for the thermostat.

  <Expandable title="properties">
    <ResponseField name="created_at" type="String (ISO 8601)">
      Date and time at which the thermostat weekly program was created.
    </ResponseField>

    <ResponseField name="friday_program_id" type="String (UUID)">
      ID of the thermostat daily program to run on Fridays.
    </ResponseField>

    <ResponseField name="monday_program_id" type="String (UUID)">
      ID of the thermostat daily program to run on Mondays.
    </ResponseField>

    <ResponseField name="saturday_program_id" type="String (UUID)">
      ID of the thermostat daily program to run on Saturdays.
    </ResponseField>

    <ResponseField name="sunday_program_id" type="String (UUID)">
      ID of the thermostat daily program to run on Sundays.
    </ResponseField>

    <ResponseField name="thursday_program_id" type="String (UUID)">
      ID of the thermostat daily program to run on Thursdays.
    </ResponseField>

    <ResponseField name="tuesday_program_id" type="String (UUID)">
      ID of the thermostat daily program to run on Tuesdays.
    </ResponseField>

    <ResponseField name="wednesday_program_id" type="String (UUID)">
      ID of the thermostat daily program to run on Wednesdays.
    </ResponseField>
  </Expandable>
</ResponseField>

## The device\_provider Object

<ResponseExample>
  ```json Device Provider theme={null}
  {
    "can_program_online_access_codes": true,
    "can_remotely_unlock": true,
    "device_provider_name": "akiles",
    "display_name": "Akiles",
    "image_url": "https://connect.getseam.com/_next/image?url=https://connect.getseam.com/assets/images/logos/akiles.png&q=75&w=128",
    "space_ids": [],
    "provider_categories": [
      "stable",
      "consumer_smartlocks"
    ]
  }
  ```
</ResponseExample>

***

## Properties

<ResponseField name="can_configure_auto_lock" type="Boolean">
  The can configure auto lock.
</ResponseField>

<ResponseField name="can_hvac_cool" type="Boolean">
  The can hvac cool.
</ResponseField>

<ResponseField name="can_hvac_heat" type="Boolean">
  The can hvac heat.
</ResponseField>

<ResponseField name="can_hvac_heat_cool" type="Boolean">
  The can hvac heat cool.
</ResponseField>

<ResponseField name="can_program_offline_access_codes" type="Boolean">
  The can program offline access codes.
</ResponseField>

<ResponseField name="can_program_online_access_codes" type="Boolean">
  The can program online access codes.
</ResponseField>

<ResponseField name="can_program_thermostat_programs_as_different_each_day" type="Boolean">
  The can program thermostat programs as different each day.
</ResponseField>

<ResponseField name="can_program_thermostat_programs_as_same_each_day" type="Boolean">
  The can program thermostat programs as same each day.
</ResponseField>

<ResponseField name="can_program_thermostat_programs_as_weekday_weekend" type="Boolean">
  The can program thermostat programs as weekday weekend.
</ResponseField>

<ResponseField name="can_remotely_lock" type="Boolean">
  The can remotely lock.
</ResponseField>

<ResponseField name="can_remotely_unlock" type="Boolean">
  The can remotely unlock.
</ResponseField>

<ResponseField name="can_run_thermostat_programs" type="Boolean">
  The can run thermostat programs.
</ResponseField>

<ResponseField name="can_simulate_connection" type="Boolean">
  The can simulate connection.
</ResponseField>

<ResponseField name="can_simulate_disconnection" type="Boolean">
  The can simulate disconnection.
</ResponseField>

<ResponseField name="can_simulate_hub_connection" type="Boolean">
  The can simulate hub connection.
</ResponseField>

<ResponseField name="can_simulate_hub_disconnection" type="Boolean">
  The can simulate hub disconnection.
</ResponseField>

<ResponseField name="can_simulate_paid_subscription" type="Boolean">
  The can simulate paid subscription.
</ResponseField>

<ResponseField name="can_simulate_removal" type="Boolean">
  The can simulate removal.
</ResponseField>

<ResponseField name="can_turn_off_hvac" type="Boolean">
  The can turn off hvac.
</ResponseField>

<ResponseField name="can_unlock_with_code" type="Boolean">
  The can unlock with code.
</ResponseField>

<ResponseField name="device_provider_name" type="Enum (String)">
  The device provider name.
</ResponseField>

<ResponseField name="display_name" type="String">
  The display name.
</ResponseField>

<ResponseField name="image_url" type="String">
  The image url.
</ResponseField>

<ResponseField name="provider_categories" type="Array">
  The provider categories.
</ResponseField>
