---
metadata:
  - name: generator
    content: Diplodoc Platform v5.66.0
alternate:
  - https://yandex.ru/dev/dialogs/smart-home/doc/en/reference/get-devices-jrpc.md
  - https://yandex.ru/dev/dialogs/smart-home/doc/ru/reference/get-devices-jrpc.md
  - href: https://yandex.ru/dev/dialogs/smart-home/doc/en/reference/get-devices-jrpc.md
    type: text/markdown
    title: Markdown version
  - href: https://yandex.ru/dev/dialogs/smart-home/doc/en/llms.txt?revision=r21995741
    rel: describedby
---
> **Documentation Index:** Fetch the complete configuration index at https://yandex.ru/dev/dialogs/smart-home/doc/en/llms.txt?revision=r21995741

# Information about user devices

Requests information about supported user devices.

The smart home platform sends the request to the provider on conditions that:

- The user's Yandex and provider accounts are [linked](https://yandex.ru/dev/dialogs/smart-home/doc/en/auth/when-to-use.md).
- The user opens the [![](../_images/smart-home-app.svg) Home with Alice](https://alice.yandex.ru/smart-home) app → ![Plus](../_images/plus.svg)&nbsp;→ **Устройство умного дома** (Smart home device) and taps **Обновить** (Update) next to the manufacturer's name.

{% note info %}

This request is also sent after the Yandex and provider accounts are linked.

{% endnote %}


In response to this request, the provider must return a list of all the supported user devices with a description of the available [capabilities](https://yandex.ru/dev/dialogs/smart-home/doc/en/concepts/capability-types.md) and [properties](https://yandex.ru/dev/dialogs/smart-home/doc/en/concepts/properties-types.md). The maximum number of user devices is 301.

If some devices are unavailable and the provider can't send information about them, Yandex Smart Home leaves such devices unchanged. Only the user can delete a device from the list.

## Smart home platform request format {#input}

The smart home platform sends a request to the provider's Endpoint URL (https://example.com/).


```bash translate=no
POST https://functions.yandexcloud.net/<function_id>?integration=raw
```

#### Request body format {#structure-in}

```json translate=no
{
  "headers": {
    "request_id": String,
    "authorization": String
  },
  "request_type": String,
  "api_version": Float
}
```

<!-- source: en/_includes/reference/struct-table-protocol/id-struct-table-protocol/get-devices-input.md -->
<!-- discovery -->
<!--  Query -->

#|
||
**Parameter**
|
**Type**
|
**Description**
|
**Required**
||

||
headers
|
[Object](*object)
|
<!-- source: en/_includes/reference/struct-table-protocol/id-struct-table-protocol/headers-ph.md -->
Object with additional request fields.
<!-- endsource: en/_includes/reference/struct-table-protocol/id-struct-table-protocol/headers-ph.md -->
|
Yes
||

||
request_type
|
[String](*string)
|
Request type. Acceptable values:
- discovery: Information about user devices.
|
Yes
||

||
<!-- source: en/_includes/reference/struct-table-protocol/id-struct-table-protocol/api_version-row-col-1.md -->
api_version
<!-- endsource: en/_includes/reference/struct-table-protocol/id-struct-table-protocol/api_version-row-col-1.md -->
|
<!-- source: en/_includes/reference/struct-table-protocol/id-struct-table-protocol/api_version-row-col-2.md -->
[Float](*float)
<!-- endsource: en/_includes/reference/struct-table-protocol/id-struct-table-protocol/api_version-row-col-2.md -->
|
<!-- source: en/_includes/reference/struct-table-protocol/id-struct-table-protocol/api_version-row-col-3.md -->
The protocol version of Yandex Smart Home.
<!-- endsource: en/_includes/reference/struct-table-protocol/id-struct-table-protocol/api_version-row-col-3.md -->
|
<!-- source: en/_includes/reference/struct-table-protocol/id-struct-table-protocol/api_version-row-col-4.md -->
Yes
<!-- endsource: en/_includes/reference/struct-table-protocol/id-struct-table-protocol/api_version-row-col-4.md -->
||
|#

<br>

<!-- source: en/_includes/reference/struct-table-protocol/id-struct-table-protocol/headers-tgroup.md -->
**`headers` object**

#|
||
**Parameter**
|
**Type**
|
**Description**
|
**Required**
||

||
request_id
|
[String](*string)
|
Request ID. Should be logged on the provider's side for investigating incidents and problems.
|
Yes
||

||
authorization
|
[String](*string)
|
User's authorization token.
|
Yes
||
|#
<!-- endsource: en/_includes/reference/struct-table-protocol/id-struct-table-protocol/headers-tgroup.md -->
<!-- endsource: en/_includes/reference/struct-table-protocol/id-struct-table-protocol/get-devices-input.md -->



## Provider response format {#output-structure}

The provider must use the correct format to respond to the request received from the smart home platform.

{% list tabs %}

- Response successful


  ```json translate=no
  {
    "request_id": String,
    "payload": {
        "user_id": String,
        "devices": [
          {
            "id": String,
            "name": String,
            "description": String,
            "room": String,
            "type": String,
            "custom_data": Object,
            "capabilities": [
              "<capability1>": Object,
              "<capability2>": Object,
              ...
            ],
            "properties": [
              "<property1>": Object,
              "<property2>": Object,
              ...
            ],
            "device_info": {
              "manufacturer": String,
              "model": String,
              "hw_version": String,
              "sw_version": String
            }
          },
          ...
        ]
    }
  }
  ```

  <!-- source: en/_includes/reference/struct-table-protocol/id-struct-table-protocol/get-devices-response-jrpc.md -->
  <!-- Response -->


  #|
  ||
  **Parameter**
  |
  **Type**
  |
  **Description**
  |
  **Required**
  ||

  ||
  <!-- source: en/_includes/reference/struct-table-protocol/id-struct-table-protocol/request_id-col-1.md -->
  request_id
  <!-- endsource: en/_includes/reference/struct-table-protocol/id-struct-table-protocol/request_id-col-1.md -->
  |
  <!-- source: en/_includes/reference/struct-table-protocol/id-struct-table-protocol/request_id-col-2.md -->
  [String](*string)
  <!-- endsource: en/_includes/reference/struct-table-protocol/id-struct-table-protocol/request_id-col-2.md -->
  |
  <!-- source: en/_includes/reference/struct-table-protocol/id-struct-table-protocol/request_id-col-3.md -->
  Request ID.
  <!-- endsource: en/_includes/reference/struct-table-protocol/id-struct-table-protocol/request_id-col-3.md -->
  |
  <!-- source: en/_includes/reference/struct-table-protocol/id-struct-table-protocol/request_id-col-4.md -->
  Yes
  <!-- endsource: en/_includes/reference/struct-table-protocol/id-struct-table-protocol/request_id-col-4.md -->
  ||

  ||
  <!-- source: en/_includes/reference/struct-table-protocol/id-struct-table-protocol/payload-col-1.md -->
  payload
  <!-- endsource: en/_includes/reference/struct-table-protocol/id-struct-table-protocol/payload-col-1.md -->
  |
  <!-- source: en/_includes/reference/struct-table-protocol/id-struct-table-protocol/payload-col-2.md -->
  [Object](*object)
  <!-- endsource: en/_includes/reference/struct-table-protocol/id-struct-table-protocol/payload-col-2.md -->
  |
  <!-- source: en/_includes/reference/struct-table-protocol/id-struct-table-protocol/payload-col-3.md -->
  Object with devices.
  <!-- endsource: en/_includes/reference/struct-table-protocol/id-struct-table-protocol/payload-col-3.md -->
  |
  <!-- source: en/_includes/reference/struct-table-protocol/id-struct-table-protocol/payload-col-4.md -->
  Yes
  <!-- endsource: en/_includes/reference/struct-table-protocol/id-struct-table-protocol/payload-col-4.md -->
  ||
  |#

  <br>

  **`payload` object**

  #|
  ||
  **Parameter**
  |
  **Type**
  |
  **Description**
  |
  **Required**
  ||

  ||
  <!-- source: en/_includes/reference/struct-table-protocol/id-struct-table-protocol/user_id-row-col-1.md -->
  user_id
  <!-- endsource: en/_includes/reference/struct-table-protocol/id-struct-table-protocol/user_id-row-col-1.md -->
  |
  <!-- source: en/_includes/reference/struct-table-protocol/id-struct-table-protocol/user_id-row-col-2.md -->
  [String](*string)
  <!-- endsource: en/_includes/reference/struct-table-protocol/id-struct-table-protocol/user_id-row-col-2.md -->
  |
  <!-- source: en/_includes/reference/struct-table-protocol/id-struct-table-protocol/user_id-row-col-3.md -->
  User ID.
  <!-- endsource: en/_includes/reference/struct-table-protocol/id-struct-table-protocol/user_id-row-col-3.md -->
  |
  <!-- source: en/_includes/reference/struct-table-protocol/id-struct-table-protocol/user_id-row-col-4.md -->
  Yes
  <!-- endsource: en/_includes/reference/struct-table-protocol/id-struct-table-protocol/user_id-row-col-4.md -->
  ||

  ||
  <!-- source: en/_includes/reference/struct-table-protocol/id-struct-table-protocol/devices-row-col-1.md -->
  devices
  <!-- endsource: en/_includes/reference/struct-table-protocol/id-struct-table-protocol/devices-row-col-1.md -->
  |
  <!-- source: en/_includes/reference/struct-table-protocol/id-struct-table-protocol/devices-row-col-2.md -->
  [Array](*array) of [objects](*object)
  <!-- endsource: en/_includes/reference/struct-table-protocol/id-struct-table-protocol/devices-row-col-2.md -->
  |
  <!-- source: en/_includes/reference/struct-table-protocol/id-struct-table-protocol/devices-row-col-3.md -->
  Array of the user's devices.
  <!-- endsource: en/_includes/reference/struct-table-protocol/id-struct-table-protocol/devices-row-col-3.md -->
  |
  <!-- source: en/_includes/reference/struct-table-protocol/id-struct-table-protocol/devices-row-col-4.md -->
  Yes
  <!-- endsource: en/_includes/reference/struct-table-protocol/id-struct-table-protocol/devices-row-col-4.md -->
  ||
  |#

  <br>

  **`devices` object**

  #|
  ||
  **Parameter**
  |
  **Type**
  |
  **Description**
  |
  **Required**
  ||

  ||
  <!-- source: en/_includes/reference/struct-table-protocol/id-struct-table-protocol/device-id-row-col-1.md -->
  id
  <!-- endsource: en/_includes/reference/struct-table-protocol/id-struct-table-protocol/device-id-row-col-1.md -->
  |
  <!-- source: en/_includes/reference/struct-table-protocol/id-struct-table-protocol/device-id-row-col-2.md -->
  [String](*string)
  <!-- endsource: en/_includes/reference/struct-table-protocol/id-struct-table-protocol/device-id-row-col-2.md -->
  |
  <!-- source: en/_includes/reference/struct-table-protocol/id-struct-table-protocol/device-id-row-col-3.md -->
  Device ID. It must be unique among all the manufacturer's devices.
  <!-- endsource: en/_includes/reference/struct-table-protocol/id-struct-table-protocol/device-id-row-col-3.md -->
  |
  <!-- source: en/_includes/reference/struct-table-protocol/id-struct-table-protocol/device-id-row-col-4.md -->
  Yes
  <!-- endsource: en/_includes/reference/struct-table-protocol/id-struct-table-protocol/device-id-row-col-4.md -->
  ||

  ||
  <!-- source: en/_includes/reference/struct-table-protocol/id-struct-table-protocol/name-row-col-1.md -->
  name
  <!-- endsource: en/_includes/reference/struct-table-protocol/id-struct-table-protocol/name-row-col-1.md -->
  |
  <!-- source: en/_includes/reference/struct-table-protocol/id-struct-table-protocol/name-row-col-2.md -->
  [String](*string)
  <!-- endsource: en/_includes/reference/struct-table-protocol/id-struct-table-protocol/name-row-col-2.md -->
  |
  <!-- source: en/_includes/reference/struct-table-protocol/id-struct-table-protocol/name-row-col-3.md -->
  Device name.
  <!-- endsource: en/_includes/reference/struct-table-protocol/id-struct-table-protocol/name-row-col-3.md -->
  |
  <!-- source: en/_includes/reference/struct-table-protocol/id-struct-table-protocol/name-row-col-4.md -->
  Yes
  <!-- endsource: en/_includes/reference/struct-table-protocol/id-struct-table-protocol/name-row-col-4.md -->
  ||

  ||
  <!-- source: en/_includes/reference/struct-table-protocol/id-struct-table-protocol/description-row-col-1.md -->
  description
  <!-- endsource: en/_includes/reference/struct-table-protocol/id-struct-table-protocol/description-row-col-1.md -->
  |
  <!-- source: en/_includes/reference/struct-table-protocol/id-struct-table-protocol/description-row-col-2.md -->
  [String](*string)
  <!-- endsource: en/_includes/reference/struct-table-protocol/id-struct-table-protocol/description-row-col-2.md -->
  |
  <!-- source: en/_includes/reference/struct-table-protocol/id-struct-table-protocol/description-row-col-3.md -->
  Device description.
  <!-- endsource: en/_includes/reference/struct-table-protocol/id-struct-table-protocol/description-row-col-3.md -->
  |
  <!-- source: en/_includes/reference/struct-table-protocol/id-struct-table-protocol/description-row-col-4.md -->
  No
  <!-- endsource: en/_includes/reference/struct-table-protocol/id-struct-table-protocol/description-row-col-4.md -->
  ||

  ||
  <!-- source: en/_includes/reference/struct-table-protocol/id-struct-table-protocol/room-row-col-1.md -->
  room
  <!-- endsource: en/_includes/reference/struct-table-protocol/id-struct-table-protocol/room-row-col-1.md -->
  |
  <!-- source: en/_includes/reference/struct-table-protocol/id-struct-table-protocol/room-row-col-2.md -->
  [String](*string)
  <!-- endsource: en/_includes/reference/struct-table-protocol/id-struct-table-protocol/room-row-col-2.md -->
  |
  <!-- source: en/_includes/reference/struct-table-protocol/id-struct-table-protocol/room-row-col-3.md -->
  Name of the room where the device is located.
  <!-- endsource: en/_includes/reference/struct-table-protocol/id-struct-table-protocol/room-row-col-3.md -->
  |
  <!-- source: en/_includes/reference/struct-table-protocol/id-struct-table-protocol/room-row-col-4.md -->
  No
  <!-- endsource: en/_includes/reference/struct-table-protocol/id-struct-table-protocol/room-row-col-4.md -->
  ||

  ||
  <!-- source: en/_includes/reference/struct-table-protocol/id-struct-table-protocol/type-row-col-1.md -->
  type
  <!-- endsource: en/_includes/reference/struct-table-protocol/id-struct-table-protocol/type-row-col-1.md -->
  |
  <!-- source: en/_includes/reference/struct-table-protocol/id-struct-table-protocol/type-row-col-2.md -->
  [String](*string)
  <!-- endsource: en/_includes/reference/struct-table-protocol/id-struct-table-protocol/type-row-col-2.md -->
  |
  <!-- source: en/_includes/reference/struct-table-protocol/id-struct-table-protocol/type-row-col-3.md -->
  Device type. See the list of device types in the [Device types](https://yandex.ru/dev/dialogs/smart-home/doc/en/concepts/device-types.md) section.
  <!-- endsource: en/_includes/reference/struct-table-protocol/id-struct-table-protocol/type-row-col-3.md -->
  |
  <!-- source: en/_includes/reference/struct-table-protocol/id-struct-table-protocol/type-row-col-4.md -->
  Yes
  <!-- endsource: en/_includes/reference/struct-table-protocol/id-struct-table-protocol/type-row-col-4.md -->
  ||

  ||
  custom_data
  |
  [Object](*object)
  |
  An object consisting of a set of `"key":"value"` pairs with any nesting level, providing additional information about the device. Object content size must not exceed 1024 bytes. The smart home platform will save this object and send it in requests
   [Information about the states of user devices](https://yandex.ru/dev/dialogs/smart-home/doc/en/reference/post-devices-query-jrpc.md), [Change device state](https://yandex.ru/dev/dialogs/smart-home/doc/en/reference/post-action-jrpc.md).
  |
  No
  ||

  ||
  <!-- source: en/_includes/reference/struct-table-protocol/id-struct-table-protocol/capabilities-row-col-1.md -->
  capabilities
  <!-- endsource: en/_includes/reference/struct-table-protocol/id-struct-table-protocol/capabilities-row-col-1.md -->
  |
  <!-- source: en/_includes/reference/struct-table-protocol/id-struct-table-protocol/capabilities-row-col-2.md -->
  [Array](*array) of [objects](*object)
  <!-- endsource: en/_includes/reference/struct-table-protocol/id-struct-table-protocol/capabilities-row-col-2.md -->
  |
  <!-- source: en/_includes/reference/struct-table-protocol/id-struct-table-protocol/capabilities-row-col-3.md -->
  Array with information about device [capabilities](https://yandex.ru/dev/dialogs/smart-home/doc/en/concepts/capability-types.md).
  <!-- endsource: en/_includes/reference/struct-table-protocol/id-struct-table-protocol/capabilities-row-col-3.md -->
  |
  <!-- source: en/_includes/reference/struct-table-protocol/id-struct-table-protocol/capabilities-row-col-4.md -->
  Yes, if the `properties` parameter is omitted
  <!-- endsource: en/_includes/reference/struct-table-protocol/id-struct-table-protocol/capabilities-row-col-4.md -->
  ||

  ||
  <!-- source: en/_includes/reference/struct-table-protocol/id-struct-table-protocol/properties-row-col-1.md -->
  properties
  <!-- endsource: en/_includes/reference/struct-table-protocol/id-struct-table-protocol/properties-row-col-1.md -->
  |
  <!-- source: en/_includes/reference/struct-table-protocol/id-struct-table-protocol/properties-row-col-2.md -->
  [Array](*array) of [objects](*object)
  <!-- endsource: en/_includes/reference/struct-table-protocol/id-struct-table-protocol/properties-row-col-2.md -->
  |
  <!-- source: en/_includes/reference/struct-table-protocol/id-struct-table-protocol/properties-row-col-3.md -->
  Array with information about the device [properties](https://yandex.ru/dev/dialogs/smart-home/doc/en/concepts/properties-types.md).
  <!-- endsource: en/_includes/reference/struct-table-protocol/id-struct-table-protocol/properties-row-col-3.md -->
  |
  <!-- source: en/_includes/reference/struct-table-protocol/id-struct-table-protocol/properties-row-col-4.md -->
  Yes, if the `capabilities` parameter is omitted
  <!-- endsource: en/_includes/reference/struct-table-protocol/id-struct-table-protocol/properties-row-col-4.md -->
  ||

  ||
  <!-- source: en/_includes/reference/struct-table-protocol/id-struct-table-protocol/device_info-row-col-1.md -->
  device_info
  <!-- endsource: en/_includes/reference/struct-table-protocol/id-struct-table-protocol/device_info-row-col-1.md -->
  |
  <!-- source: en/_includes/reference/struct-table-protocol/id-struct-table-protocol/device_info-row-col-2.md -->
  [Object](*object)
  <!-- endsource: en/_includes/reference/struct-table-protocol/id-struct-table-protocol/device_info-row-col-2.md -->
  |
  <!-- source: en/_includes/reference/struct-table-protocol/id-struct-table-protocol/device_info-row-col-3.md -->
  Additional technical information about the device. To view this information, select the device on the [![](../_images/smart-home-app.svg) Home with Alice](https://alice.yandex.ru/smart-home) app main screen. In the top right-hand corner, tap ![Gear icon](../_images/settings.svg) and choose **Об устройстве** (About the device). This data helps you quickly identify the device when the user contacts Yandex support or manufacturer's support.
  <!-- endsource: en/_includes/reference/struct-table-protocol/id-struct-table-protocol/device_info-row-col-3.md -->
  |
  <!-- source: en/_includes/reference/struct-table-protocol/id-struct-table-protocol/device_info-row-col-4.md -->
  Yes, for [official skills](https://yandex.ru/dev/dialogs/smart-home/doc/en/certification.md)
  <!-- endsource: en/_includes/reference/struct-table-protocol/id-struct-table-protocol/device_info-row-col-4.md -->
  ||
  |#

  <br>

  **`capabilities` object**

  #|
  ||
  **Parameter**
  |
  **Type**
  |
  **Description**
  |
  **Required**
  ||

  ||
  <!-- source: en/_includes/reference/struct-table-protocol/id-struct-table-protocol/capability1-row-col-1.md -->
  \<capability1>
  <!-- endsource: en/_includes/reference/struct-table-protocol/id-struct-table-protocol/capability1-row-col-1.md -->
  |
  <!-- source: en/_includes/reference/struct-table-protocol/id-struct-table-protocol/capability1-row-col-2.md -->
  [Object](*object)
  <!-- endsource: en/_includes/reference/struct-table-protocol/id-struct-table-protocol/capability1-row-col-2.md -->
  |
  <!-- source: en/_includes/reference/struct-table-protocol/id-struct-table-protocol/capability1-row-col-3.md -->
  Description of capability. For more information about the list of available capabilities and their parameters, see [About capabilities](https://yandex.ru/dev/dialogs/smart-home/doc/en/concepts/capability-types.md).
  <!-- endsource: en/_includes/reference/struct-table-protocol/id-struct-table-protocol/capability1-row-col-3.md -->
  |
  <!-- source: en/_includes/reference/struct-table-protocol/id-struct-table-protocol/capability1-row-col-4.md -->
  No
  <!-- endsource: en/_includes/reference/struct-table-protocol/id-struct-table-protocol/capability1-row-col-4.md -->
  ||

  ||
  <!-- source: en/_includes/reference/struct-table-protocol/id-struct-table-protocol/capability2-row-col-1.md -->
  \<capability1>
  <!-- endsource: en/_includes/reference/struct-table-protocol/id-struct-table-protocol/capability2-row-col-1.md -->
  |
  <!-- source: en/_includes/reference/struct-table-protocol/id-struct-table-protocol/capability2-row-col-2.md -->
  [Object](*object)
  <!-- endsource: en/_includes/reference/struct-table-protocol/id-struct-table-protocol/capability2-row-col-2.md -->
  |
  <!-- source: en/_includes/reference/struct-table-protocol/id-struct-table-protocol/capability2-row-col-3.md -->
  Description of capability. For more information about the list of available capabilities and their parameters, see [About capabilities](https://yandex.ru/dev/dialogs/smart-home/doc/en/concepts/capability-types.md).
  <!-- endsource: en/_includes/reference/struct-table-protocol/id-struct-table-protocol/capability2-row-col-3.md -->
  |
  <!-- source: en/_includes/reference/struct-table-protocol/id-struct-table-protocol/capability2-row-col-4.md -->
  No
  <!-- endsource: en/_includes/reference/struct-table-protocol/id-struct-table-protocol/capability2-row-col-4.md -->
  ||
  |#

  <br>

  **`properties` object**

  #|
  ||
  **Parameter**
  |
  **Type**
  |
  **Description**
  |
  **Required**
  ||

  ||
  <!-- source: en/_includes/reference/struct-table-protocol/id-struct-table-protocol/property1-row-col-1.md -->
  \<property1>
  <!-- endsource: en/_includes/reference/struct-table-protocol/id-struct-table-protocol/property1-row-col-1.md -->
  |
  <!-- source: en/_includes/reference/struct-table-protocol/id-struct-table-protocol/property1-row-col-2.md -->
  [Object](*object)
  <!-- endsource: en/_includes/reference/struct-table-protocol/id-struct-table-protocol/property1-row-col-2.md -->
  |
  <!-- source: en/_includes/reference/struct-table-protocol/id-struct-table-protocol/property1-row-col-3.md -->
  Property description. For more information about the list of available properties and their parameters, see [About properties](https://yandex.ru/dev/dialogs/smart-home/doc/en/concepts/properties-types.md).
  <!-- endsource: en/_includes/reference/struct-table-protocol/id-struct-table-protocol/property1-row-col-3.md -->
  |
  <!-- source: en/_includes/reference/struct-table-protocol/id-struct-table-protocol/property1-row-col-4.md -->
  No
  <!-- endsource: en/_includes/reference/struct-table-protocol/id-struct-table-protocol/property1-row-col-4.md -->
  ||

  ||
  <!-- source: en/_includes/reference/struct-table-protocol/id-struct-table-protocol/property2-row-col-1.md -->
  \<property2>
  <!-- endsource: en/_includes/reference/struct-table-protocol/id-struct-table-protocol/property2-row-col-1.md -->
  |
  <!-- source: en/_includes/reference/struct-table-protocol/id-struct-table-protocol/property2-row-col-2.md -->
  [Object](*object)
  <!-- endsource: en/_includes/reference/struct-table-protocol/id-struct-table-protocol/property2-row-col-2.md -->
  |
  <!-- source: en/_includes/reference/struct-table-protocol/id-struct-table-protocol/property2-row-col-3.md -->
  Property description. For more information about the list of available properties and their parameters, see [About properties](https://yandex.ru/dev/dialogs/smart-home/doc/en/concepts/properties-types.md).
  <!-- endsource: en/_includes/reference/struct-table-protocol/id-struct-table-protocol/property2-row-col-3.md -->
  |
  <!-- source: en/_includes/reference/struct-table-protocol/id-struct-table-protocol/property2-row-col-4.md -->
  No
  <!-- endsource: en/_includes/reference/struct-table-protocol/id-struct-table-protocol/property2-row-col-4.md -->
  ||
  |#

  <br>

  **`device_info` object**

  #|
  ||
  **Parameter**
  |
  **Type**
  |
  **Description**
  |
  **Required**
  ||

  ||
  <!-- source: en/_includes/reference/struct-table-protocol/id-struct-table-protocol/manufacturer-row-col-1.md -->
  manufacturer
  <!-- endsource: en/_includes/reference/struct-table-protocol/id-struct-table-protocol/manufacturer-row-col-1.md -->
  |
  <!-- source: en/_includes/reference/struct-table-protocol/id-struct-table-protocol/manufacturer-row-col-2.md -->
  [String](*string)
  <!-- endsource: en/_includes/reference/struct-table-protocol/id-struct-table-protocol/manufacturer-row-col-2.md -->
  |
  <!-- source: en/_includes/reference/struct-table-protocol/id-struct-table-protocol/manufacturer-row-col-3.md -->
  Name of the device manufacturer. It can contain up to 256 characters. This parameter is required in the official skill description (to learn more, see [About smart home](https://yandex.ru/dev/dialogs/smart-home/doc/en/index.md)).
  <!-- endsource: en/_includes/reference/struct-table-protocol/id-struct-table-protocol/manufacturer-row-col-3.md -->
  |
  <!-- source: en/_includes/reference/struct-table-protocol/id-struct-table-protocol/manufacturer-row-col-4.md -->
  Yes, for [official skills](https://yandex.ru/dev/dialogs/smart-home/doc/en/certification.md)
  <!-- endsource: en/_includes/reference/struct-table-protocol/id-struct-table-protocol/manufacturer-row-col-4.md -->
  ||

  ||
  <!-- source: en/_includes/reference/struct-table-protocol/id-struct-table-protocol/property2-row-col-1.md -->
  \<property2>
  <!-- endsource: en/_includes/reference/struct-table-protocol/id-struct-table-protocol/property2-row-col-1.md -->
  |
  <!-- source: en/_includes/reference/struct-table-protocol/id-struct-table-protocol/property2-row-col-2.md -->
  [Object](*object)
  <!-- endsource: en/_includes/reference/struct-table-protocol/id-struct-table-protocol/property2-row-col-2.md -->
  |
  <!-- source: en/_includes/reference/struct-table-protocol/id-struct-table-protocol/property2-row-col-3.md -->
  Property description. For more information about the list of available properties and their parameters, see [About properties](https://yandex.ru/dev/dialogs/smart-home/doc/en/concepts/properties-types.md).
  <!-- endsource: en/_includes/reference/struct-table-protocol/id-struct-table-protocol/property2-row-col-3.md -->
  |
  <!-- source: en/_includes/reference/struct-table-protocol/id-struct-table-protocol/property2-row-col-4.md -->
  No
  <!-- endsource: en/_includes/reference/struct-table-protocol/id-struct-table-protocol/property2-row-col-4.md -->
  ||

  ||
  <!-- source: en/_includes/reference/struct-table-protocol/id-struct-table-protocol/model-row-col-1.md -->
  model
  <!-- endsource: en/_includes/reference/struct-table-protocol/id-struct-table-protocol/model-row-col-1.md -->
  |
  <!-- source: en/_includes/reference/struct-table-protocol/id-struct-table-protocol/model-row-col-2.md -->
  [String](*string)
  <!-- endsource: en/_includes/reference/struct-table-protocol/id-struct-table-protocol/model-row-col-2.md -->
  |
  <!-- source: en/_includes/reference/struct-table-protocol/id-struct-table-protocol/model-row-col-3.md -->
  Name of the device model. It can contain up to 256 characters.This parameter is required in the official skill description (to learn more, see [About smart home](https://yandex.ru/dev/dialogs/smart-home/doc/en/index.md)).
  <!-- endsource: en/_includes/reference/struct-table-protocol/id-struct-table-protocol/model-row-col-3.md -->
  |
  <!-- source: en/_includes/reference/struct-table-protocol/id-struct-table-protocol/model-row-col-4.md -->
  Yes, for [official skills](https://yandex.ru/dev/dialogs/smart-home/doc/en/certification.md)
  <!-- endsource: en/_includes/reference/struct-table-protocol/id-struct-table-protocol/model-row-col-4.md -->
  ||

  ||
  <!-- source: en/_includes/reference/struct-table-protocol/id-struct-table-protocol/hw_version-row-col-1.md -->
  hw_version
  <!-- endsource: en/_includes/reference/struct-table-protocol/id-struct-table-protocol/hw_version-row-col-1.md -->
  |
  <!-- source: en/_includes/reference/struct-table-protocol/id-struct-table-protocol/hw_version-row-col-2.md -->
  [String](*string)
  <!-- endsource: en/_includes/reference/struct-table-protocol/id-struct-table-protocol/hw_version-row-col-2.md -->
  |
  <!-- source: en/_includes/reference/struct-table-protocol/id-struct-table-protocol/hw_version-row-col-3.md -->
  Device hardware version. It can contain up to 256 characters.
  <!-- endsource: en/_includes/reference/struct-table-protocol/id-struct-table-protocol/hw_version-row-col-3.md -->
  |
  <!-- source: en/_includes/reference/struct-table-protocol/id-struct-table-protocol/hw_version-row-col-4.md -->
  No
  <!-- endsource: en/_includes/reference/struct-table-protocol/id-struct-table-protocol/hw_version-row-col-4.md -->
  ||

  ||
  <!-- source: en/_includes/reference/struct-table-protocol/id-struct-table-protocol/sw_version-row-col-1.md -->
  sw_version
  <!-- endsource: en/_includes/reference/struct-table-protocol/id-struct-table-protocol/sw_version-row-col-1.md -->
  |
  <!-- source: en/_includes/reference/struct-table-protocol/id-struct-table-protocol/sw_version-row-col-2.md -->
  [String](*string)
  <!-- endsource: en/_includes/reference/struct-table-protocol/id-struct-table-protocol/sw_version-row-col-2.md -->
  |
  <!-- source: en/_includes/reference/struct-table-protocol/id-struct-table-protocol/sw_version-row-col-3.md -->
  Device software version. It can contain up to 256 characters.
  <!-- endsource: en/_includes/reference/struct-table-protocol/id-struct-table-protocol/sw_version-row-col-3.md -->
  |
  <!-- source: en/_includes/reference/struct-table-protocol/id-struct-table-protocol/sw_version-row-col-4.md -->
  No
  <!-- endsource: en/_includes/reference/struct-table-protocol/id-struct-table-protocol/sw_version-row-col-4.md -->
  ||
  |#
  <!-- endsource: en/_includes/reference/struct-table-protocol/id-struct-table-protocol/get-devices-response-jrpc.md -->



- Response with error


  <!-- source: en/_includes/reference/check-jrpc/id-output-structure/cloud.md -->
  For more information about returning status codes other than `200 OK`, see the [documentation](https://yandex.cloud/en/docs/functions/concepts/function-invoke#response).
  <!-- endsource: en/_includes/reference/check-jrpc/id-output-structure/cloud.md -->


  ```json translate=no
  HTTP/1.1 404 Not Found
  ```

  [ Global codes](https://yandex.ru/dev/dialogs/smart-home/doc/en/concepts/response-codes.md#enq-with-error-codes)

{% endlist %}


## Example {#example-JSON}

This example describes the properties of a lamp featuring color control.

> {% list tabs %}
>
> - Request
>
>
>   ```bash translate=no
>   curl -i POST https://functions.yandexcloud.net/<function_id>?integration=raw \
>   -H 'Content-Type: application/json' \
>   -d '{
>         "headers": {
>           "request_id": "1111-aaaa-2222-bbbb",
>           "authorization": "Bearer 123qwe456a..."
>         },
>         "request_type": "discovery",
>         "api_version": 1.0
>   }'
>   ```
>
>
> - Response successful
>
>
>   ```json translate=no
>   HTTP/1.1 200 OK
>
>   {
>       "request_id": "1111-aaaa-2222-bbbb",
>       "payload": {
>           "user_id": "Misha-01-super-545",
>           "devices": [{
>                   "id": "abc-123",
>                   "name": "лампa",
>                   "description": "цветная лампа",
>                   "room": "спальня",
>                   "type": "devices.types.light",
>                   "custom_data": {
>                     "foo": 1,
>                     "bar": "two",
>                     "baz": false,
>                     "qux": [1, "two", false],
>                     "quux": {
>                       "quuz": {
>                         "corge": []
>                       }
>                     }
>                   },
>                   "capabilities": [{
>                           "type": "devices.capabilities.range",
>                           "retrievable": true,
>                           "parameters": {
>                               "instance": "brightness",
>                               "unit": "unit.percent",
>                               "range": {
>                                   "min": 0,
>                                   "max": 100,
>                                   "precision": 10
>                               }
>                           }
>                       },
>                       {
>                           "type": "devices.capabilities.on_off"
>                       },
>                       {
>                           "type": "devices.capabilities.color_setting",
>                           "parameters": {
>                               "color_model": "hsv",
>                               "temperature_k": {
>                                   "min": 2700,
>                                   "max": 9000,
>                                   "precision": 1
>                               }
>                           }
>                       }
>                   ],
>                   "device_info": {
>                       "manufacturer": "Provider2",
>                       "model": "hue g11",
>                       "hw_version": "1.2",
>                       "sw_version": "5.4"
>                   }
>               }
>
>           ]
>       }
>   }
>   ```
>
>
> - Response with error
>
>
>   ```json translate=no
>   HTTP/1.1 401 Unauthorized
>   ```
>
> {% endlist %}


<!-- {% include [support-support-button](../_includes/about/id-support/support-button.md) %}-->

[*object]:
  List of `"key": value` pairs separated by commas. The list is enclosed in curly brackets `{}`.

```json translate=no
{
  "name": "John",
  "surname": "Smith"
}
```

[*string]:
  String enclosed in quotation marks, for example: `"Hello, world"`.

[*array]:
  An array of elements separated by a comma. As array items, you can use standard JSON elements: a string, number, `true`, `false`, object, or array. Arrays are enclosed in square brackets `[]`:

```json translate=no
"cities": ["Moscow", "Tokyo", "New York"]
```

[*float]:
  Floating-point number with a precision of 6-9 decimal digits.