> ## 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.

# Unmanaged Devices

> Learn how the unmanaged_device object exposes a limited set of properties and events for a device you cannot control until you convert it to managed.

## The unmanaged\_device Object

Represents an [unmanaged device](https://docs.seam.co/core-concepts/devices/managed-and-unmanaged-devices). An unmanaged device has a limited set of visible properties and a subset of supported events. You cannot control an unmanaged device. Any [access codes](https://docs.seam.co/low-level-apis/smart-locks/access-codes/migrating-existing-access-codes) on an unmanaged device are unmanaged. To control an unmanaged device with Seam, [convert it to a managed device](https://docs.seam.co/core-concepts/devices/managed-and-unmanaged-devices#convert-an-unmanaged-device-to-managed).

<ResponseExample>
  ```json Unmanaged Device theme={null}
  {
    "can_program_offline_access_codes": false,
    "can_program_online_access_codes": true,
    "can_remotely_lock": true,
    "can_remotely_unlock": true,
    "can_simulate_connection": false,
    "can_simulate_disconnection": true,
    "can_simulate_removal": true,
    "capabilities_supported": [
      "access_code",
      "lock"
    ],
    "connected_account_id": "c1a3967f-24a1-4220-a9c7-7fa97c1d5603",
    "created_at": "2025-06-16T16:54:17.946342Z",
    "device_id": "f4f40e75-86fc-4896-b958-e1c7e092b2cf",
    "device_type": "schlage_lock",
    "errors": [],
    "is_managed": false,
    "location": {
      "location_name": "Front Door",
      "timezone": "America/New_York"
    },
    "custom_metadata": {
      "id": "internalId1"
    },
    "properties": {
      "accessory_keypad": {
        "battery": {
          "level": 1
        },
        "is_connected": true
      },
      "battery": {
        "level": 1,
        "status": "full"
      },
      "battery_level": 1,
      "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",
      "manufacturer": "schlage",
      "model": {
        "accessory_keypad_supported": true,
        "can_connect_accessory_keypad": true,
        "display_name": "Front Door",
        "has_built_in_keypad": false,
        "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
    },
    "warnings": [],
    "workspace_id": "3cd6ba1c-8a60-4c24-b487-07bf6c0b755b"
  }
  ```
</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="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">
  The is managed.
</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="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="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="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>
  </Expandable>
</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="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>

## 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="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="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>
