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

# Управление умениями устройств

<!-- source: ru/_includes/reusables/neuroexpert-button.md -->



<!-- endsource: ru/_includes/reusables/neuroexpert-button.md -->


Отправляет действия на устройства пользователя.

## Формат запроса {#input}

```bash translate=no
POST https://api.iot.yandex.net/v1.0/devices/actions
```

<!-- source: ru/_includes/concepts/platform-capabilities/header-section.md -->
#### Заголовки запроса {#header-section}

#|
||**Заголовок** | **Описание** | **Обязательный**||
||Authorization | Авторизационный токен oauth-приложения. | Да||
|#
<!-- endsource: ru/_includes/concepts/platform-capabilities/header-section.md -->


#### Формат тела запроса {#structure-in}

```json translate=no
{
	"devices": [{
		"id": String,
		"actions": [{
			"type": "devices.capabilities.{capability}",
			"state": {}
		}]
	}]
}
```

#|
||
**Параметр**
|
**Тип**
|
**Описание**
|
**Обязательный**
||

||
devices
|
[Array](*array) of DeviceActionsObjects
|
Массив действий для устройств.
|
Да
||
|#

<br>

**Массив `devices`**

#|
||
**Параметр**
|
**Тип**
|
**Описание**
|
**Обязательный**
||

||
deviceActions1
|
DeviceActionObject
|
Набор действий для устройств.
|
Нет
||

||
deviceActions2
|
DeviceActionObject
|
Набор действий для устройств.
|
Нет
||
|#

<br>

**Тип `DeviceActionsObject`**

#|
||
**Параметр**
|
**Тип**
|
**Описание**
|
**Обязательный**
||

||
id
|
[String](*string)
|
Идентификатор устройства
|
Да
||

||
actions
|
[Array](*array) of CapabilityObjects
|
Массив действий для устройства.
|
Да
||
|#

<br>

**Массив `actions`**

#|
||
**Параметр**
|
**Тип**
|
**Описание**
|
**Обязательный**
||

||
capability1
|
CapabilityObject
|
Умение и команда на его изменение.
|
Нет
||

||
capability2
|
CapabilityObject
|
Умение и команда на его изменение.
|
Нет
||
|#

<br>

**Тип `CapabilityObject`**

#|
||
**Параметр**
|
**Тип**
|
**Описание**
|
**Обязательный**
||

||
type
|
[String](*string)
|
[Тип умения](https://yandex.ru/dev/dialogs/smart-home/doc/ru/concepts/capability-types.md#types).
|
Да
||

||
state
|
CapabilityStateObject
|
Целевое состояние умения. Соответствует значению поля `state` из описания команды для [управления умением устройства](https://yandex.ru/dev/dialogs/smart-home/doc/ru/concepts/on_off.md).
|
Да
||
|#



## Формат ответа {#output-structure}


{% list tabs %}

- Успешный ответ


  ```json translate=no
  HTTP/1.1 200 OK

  {
     "[status](*row-status-struct-table-protocol-alerts)": "ok",
     "[request_id](*row-request-id)": String,
     "[devices](*row-devices)": [{
        "[id](*row-id)": String,
        "[capabilities](*row-capabilities)": [{
           "[type](*row-type)": "devices.capabilities.{capability}",
           "[state](*row-state)": {
              "[instance](*row-instance)": String,
              "[action_result](*row-action-result)": {
                 "[status](*row-status)": String;
              }
           }
        }]
     }]
  }
  ```

  <br>

  #|
  ||
  **Параметр**
  |
  **Тип**
  |
  **Описание**
  |
  **Обязательный**
  ||

  ||
  request_id
  |
  [String](*string)
  |
  Идентификатор запроса. Необходимо логировать для расследования инцидентов.
  |
  Да
  ||

  ||
  status
  |
  [String](*string)
  |
  Статус обработки запроса. Допустимые значения:
  - `ok`.

  |
  Да
  ||

  ||
  devices
  |
  [Array](*array) of DeviceActionsResultObjects
  |
  Результаты выполнения действий на устройствах.
  |
  Да
  ||
  |#

  <br>

  **Массив `devices`**

  #|
  ||
  **Параметр**
  |
  **Тип**
  |
  **Описание**
  |
  **Обязательный**
  ||

  ||
  deviceActionsResult1
  |
  DeviceActionResultObject
  |
  Результат выполнения действий на устройстве.
  |
  Нет
  ||

  ||
  deviceActionsResult2
  |
  DeviceActionResultObject
  |
  Результат выполнения действий на устройстве.
  |
  Нет
  ||
  |#

  <br>

  **Тип `DeviceActionsResultObject`**

  #|
  ||
  **Параметр**
  |
  **Тип**
  |
  **Описание**
  |
  **Обязательный**
  ||

  ||
  id
  |
  [String](*string)
  |
  Идентификатор устройства
  |
  Да
  ||

  ||
  capabilities
  |
  CapabilityActionResultObject
  |
  Результаты действий.
  |
  Да
  ||
  |#

  <br>

  **Тип `CapabilityActionResultObject`**

  #|
  ||
  **Параметр**
  |
  **Тип**
  |
  **Описание**
  |
  **Обязательный**
  ||

  ||
  type
  |
  [String](*string)
  |
  [Тип умения](https://yandex.ru/dev/dialogs/smart-home/doc/ru/concepts/capability-types.md#types).
  |
  Да
  ||

  ||
  state
  |
  StateResultObject
  |
  Состояние умения.
  |
  Да
  ||
  |#

   <br>

  **Тип `StateResultObject`**

  #|
  ||
  **Параметр**
  |
  **Тип**
  |
  **Описание**
  |
  **Обязательный**
  ||

  ||
  instance
  |
  [String](*string)
  |
  Функция умения.
  |
  Да
  ||

  ||
  action_result
  |
  ActionResultObject
  |
  Результат действия.
  |
  Да
  ||
  |#

   <br>

  **Тип `ActionResultObject`**

  #|
  ||
  **Параметр**
  |
  **Тип**
  |
  **Описание**
  |
  **Обязательный**
  ||

  ||
  status
  |
  [String](*string)
  |
  Статус изменения состояния у устройства. Допустимые значения:
  - `DONE` — состояние устройства успешно изменено;
  - `ERROR` — при изменении состояния у устройства произошла ошибка.

  |
  Да
  ||

  ||
  error_code
  |
  [String](*string)
  |
  Код ошибки из [списка возможных ошибок](https://yandex.ru/dev/dialogs/smart-home/doc/ru/concepts/response-codes.md#codes-api).
  |
  Нет
  ||

  ||
  error_message
  |
  [String](*string)
  |
  Расширенное человекочитаемое описание возможной ошибки.
  |
  Нет
  ||
  |#



- Ответ с ошибкой


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

  {
      "[request_id](*row-request-id)": String,
      "[status](*row-error-status-struct-table-protocol-alerts)": "error",
      "[message](*row-message)": String
  }
  ```

   <!-- source: ru/_includes/concepts/platform-capabilities/id-output-structure/table-error.md -->
     #|
     ||
     **Параметр**
     |
     **Тип**
     |
     **Описание**
     |
     **Обязательный**
     ||

     ||
     request_id
     |
     [String](*string)
     |
     Идентификатор запроса. Необходимо логировать для расследования инцидентов.
     |
     Да
     ||

     ||
     status
     |
     [String](*string)
     |
     Статус обработки запроса. Допустимые значения:
     - `error`.

     |
     Да
     ||

     ||
     message
     |
     [String](*string)
     |
     Сообщение об ошибке.
     |
     Нет
     ||
     |#
   <!-- endsource: ru/_includes/concepts/platform-capabilities/id-output-structure/table-error.md -->



  [Коды ошибок](https://yandex.ru/dev/dialogs/smart-home/doc/ru/concepts/platform-error-codes.md)

{% endlist %}


## Пример {#example-JSON}

> {% list tabs %}
>
> - Запрос
>
>
>   ```bash translate=no
>   curl --request POST 'https://api.iot.yandex.net/v1.0/devices/actions' \
>   --header 'Authorization: Bearer YOUR_OAUTH_TOKEN' \
>   --header 'Content-Type: application/json' \
>   --data-raw '{
>       "devices": [
>           {
>               "id": "lamp-id-1",
>               "actions": [
>                   {
>                       "type": "devices.capabilities.on_off",
>                       "state": {
>                           "instance": "on",
>                           "value": true
>                       }
>                   }
>               ]
>           }
>       ]
>   }'
>   ```
>
>
> - Успешный ответ
>
>
>   ```json translate=no
>   HTTP/1.1 200 OK
>
>   {
>      "[status](*row-status-struct-table-protocol-alerts)": "ok",
>      "[request_id](*row-request-id)": "4901aee0-85bf-4b04-9b12-de0f18d23d1e",
>      "[devices](*row-devices)": [{
>         "[id](*row-id)": "lamp-id-1",
>         "[capabilities](*row-capabilities)": [{
>            "[type](*row-type)": "devices.capabilities.on_off",
>            "[state](*row-state)": {
>               "[instance](*row-instance)": "on",
>               "[action_result](*row-action-result)": {
>                  "[status](*row-status)": "DONE"
>               }
>            }
>         }]
>      }]
>   }
>   ```
>
>
> - Ответ с ошибкой
>
>
>   ```json translate=no
>   HTTP/1.1 404 Not Found
>
>   {
>       "[request_id](*row-request-id)": "4901aee0-85bf-4b04-9b12-de0f18d23d1e",
>       "[status](*row-error-status-struct-table-protocol-alerts)": "error",
>       "[message](*row-message)": "Устройства не найдены"
>   }
>   ```
>
> {% endlist %}


<!-- source: ru/_includes/about/id-support/support-button.md -->
[![Служба поддержки](../_images/support-image.svg)](https://yandex.ru/dev/dialogs/smart-home/doc/ru/feedback.md)
<!-- endsource: ru/_includes/about/id-support/support-button.md -->

[*array]:
   Массив элементов, разделенных запятой. Элементом могут быть стандартные элементы JSON: строка, число, `true`, `false`, объект или массив. Массив выделяется квадратными скобками `[]`:

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

[*string]:
   Cтрока, выделяется кавычками, например `"Hello world"`.

[*row-id]:
   **Тип**

[String](*string)

**Описание**

Идентификатор устройства

**Обязательный**

Да

[*row-status]:
   **Тип**

[String](*string)

**Описание**

Статус изменения состояния у устройства. Допустимые значения:
  - `DONE` — состояние устройства успешно изменено;
  - `ERROR` — при изменении состояния у устройства произошла ошибка.


**Обязательный**

Да

[*row-action-result]:
   **Тип**

DeviceActionResultObject

**Описание**

Результат выполнения действий на устройстве.

**Обязательный**

Нет

[*row-instance]:
   **Тип**

[String](*string)

**Описание**

Функция умения.

**Обязательный**

Да

[*row-state]:
   **Тип**

StateResultObject

**Описание**

Состояние умения.

**Обязательный**

Да

[*row-type]:
   **Тип**

[String](*string)

**Описание**

[Тип умения](https://yandex.ru/dev/dialogs/smart-home/doc/ru/concepts/capability-types.md#types).

**Обязательный**

Да

[*row-message]:
   **Тип**

[String](*string)

**Описание**

Сообщение об ошибке.

**Обязательный**

Нет

[*row-devices]:
   **Тип**

[Array](*array) of DeviceActionsResultObjects

**Описание**

Результаты выполнения действий на устройствах.

**Обязательный**

Да

[*row-capabilities]:
   **Тип**

CapabilityActionResultObject

**Описание**

Результаты действий.

**Обязательный**

Да

[*row-status-struct-table-protocol-alerts]:
   **Тип**

[String](*string)

**Описание**

Статус обработки запроса. Допустимые значения:
  - `ok`.


**Обязательный**

Да

[*row-error-status-struct-table-protocol-alerts]:
   **Тип**

[String](*string)

**Описание**

Статус обработки запроса. Допустимые значения:
  - `error`.


**Обязательный**

Да

[*row-request-id]:
   **Тип**

[String](https://yandex.ru/dev/dialogs/smart-home/doc/ru/types.md#string)

**Описание**

Идентификатор запроса. Необходимо логировать для расследования инцидентов.

**Обязательный**

Да