---
metadata:
  - name: generator
    content: Diplodoc Platform v5.48.2
alternate:
  - https://yandex.ru/dev/dialogs/smart-home/doc/en/reference/post-action.md
  - https://yandex.ru/dev/dialogs/smart-home/doc/ru/reference/post-action.md
---
> **Documentation Index:** Fetch the complete configuration index at https://yandex.ru/dev/dialogs/smart-home/doc/en/llms.txt

# Change device state

Changes the current state of user devices.

Example case where this request is sent: the user opens the [<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg"><mask id="svg-d7qafl7q__mask0_85_1332" style="mask-type:luminance" maskUnits="userSpaceOnUse" x="0" y="0" width="20" height="20"><path d="M20 0H0V20H20V0Z" fill="white"/></mask><g mask="url(#svg-d7qafl7q__mask0_85_1332)"><path d="M0 6.93333C0 4.50644 0 3.29299 0.472305 2.36604C0.887756 1.55067 1.55067 0.887756 2.36604 0.472305C3.29299 0 4.50644 0 6.93333 0H13.0667C15.4936 0 16.707 0 17.634 0.472305C18.4493 0.887756 19.1122 1.55067 19.5277 2.36604C20 3.29299 20 4.50644 20 6.93333V13.0667C20 15.4936 20 16.707 19.5277 17.634C19.1122 18.4493 18.4493 19.1122 17.634 19.5277C16.707 20 15.4936 20 13.0667 20H6.93333C4.50644 20 3.29299 20 2.36604 19.5277C1.55067 19.1122 0.887756 18.4493 0.472305 17.634C0 16.707 0 15.4936 0 13.0667V6.93333Z" fill="url(#svg-d7qafl7q__paint0_linear_85_1332)"/><path d="M15.4335 8.40009C15.1909 8.08952 14.9115 7.80969 14.6015 7.56675L11.9763 5.27509C11.2774 4.66259 10.928 4.35842 10.5369 4.24175C10.1917 4.14175 9.82535 4.14175 9.4802 4.24175C9.08913 4.35842 8.73967 4.65842 8.04075 5.27509L5.42396 7.56675C5.11387 7.80969 4.83447 8.08952 4.59191 8.40009C4.4458 8.61274 4.33873 8.84978 4.27573 9.10009C4.19311 9.49301 4.15957 9.8947 4.17588 10.2959V12.1793C4.17588 13.1668 4.17588 13.6584 4.36309 14.0376C4.52975 14.3668 4.7943 14.6362 5.12026 14.8084C5.49052 15.0001 5.97727 15.0001 6.94661 15.0001H13.0538C14.0232 15.0001 14.5099 15.0001 14.8802 14.8084C15.2062 14.6362 15.4707 14.3668 15.6374 14.0376C15.8246 13.6584 15.8246 13.1668 15.8246 12.1793V10.2959C15.8491 9.89574 15.8239 9.49406 15.7497 9.10009C15.6867 8.84978 15.5796 8.61274 15.4335 8.40009Z" fill="url(#svg-d7qafl7q__paint1_linear_85_1332)"/><path d="M4.5669 8.40011C4.42079 8.61276 4.31372 8.84981 4.25072 9.10011C4.17646 9.49409 4.15131 9.89577 4.17584 10.2959V12.1793C4.17584 13.1668 4.17584 13.6584 4.36305 14.0376C4.5297 14.3668 4.79426 14.6362 5.12022 14.8084C5.49048 15.0001 5.97723 15.0001 6.94656 15.0001H13.0538C14.0231 15.0001 14.5099 15.0001 14.8802 14.8084C15.1974 14.6416 15.4558 14.3812 15.6207 14.0626C15.0086 11.7819 13.5225 9.83531 11.4854 8.64595C9.71213 7.58918 7.63804 7.15379 5.59032 7.40845L5.40727 7.56678C5.09426 7.80919 4.81204 8.08905 4.5669 8.40011Z" fill="url(#svg-d7qafl7q__paint2_linear_85_1332)"/><path d="M8.78949 11.2126C8.0463 10.9262 7.25107 10.8005 6.45595 10.8436C5.66084 10.8867 4.88379 11.0976 4.17578 11.4626V12.1792C4.17578 13.1667 4.17578 13.6584 4.36299 14.0376C4.52964 14.3668 4.7942 14.6361 5.12016 14.8084C5.49042 15.0001 5.97717 15.0001 6.9465 15.0001H12.1676C11.9675 14.1932 11.5845 13.4433 11.0485 12.8084C10.4401 12.0961 9.66357 11.5475 8.78949 11.2126Z" fill="url(#svg-d7qafl7q__paint3_linear_85_1332)"/></g><defs><linearGradient id="svg-d7qafl7q__paint0_linear_85_1332" x1="-1.06283e-07" y1="20" x2="20" y2="-2.49047e-06" gradientUnits="userSpaceOnUse"><stop offset="0.159916" stop-color="#C926FF"/><stop offset="0.849577" stop-color="#4A26FF"/></linearGradient><linearGradient id="svg-d7qafl7q__paint1_linear_85_1332" x1="6.58883" y1="7.87092" x2="12.9849" y2="14.3944" gradientUnits="userSpaceOnUse"><stop stop-color="white"/><stop offset="0.5" stop-color="#FFBEF1"/><stop offset="1" stop-color="#E374FF"/></linearGradient><linearGradient id="svg-d7qafl7q__paint2_linear_85_1332" x1="6.65535" y1="9.87095" x2="13.3139" y2="16.6565" gradientUnits="userSpaceOnUse"><stop stop-color="white"/><stop offset="0.51" stop-color="#FFCBF7"/><stop offset="1" stop-color="#EE86FF"/></linearGradient><linearGradient id="svg-d7qafl7q__paint3_linear_85_1332" x1="7.82848" y1="12.9167" x2="13.5987" y2="12.9167" gradientUnits="userSpaceOnUse"><stop stop-color="white"/><stop offset="1" stop-color="#FFD1F8"/></linearGradient></defs></svg> Home with Alice](https://alice.yandex.ru/smart-home) app and wants to change the state of their devices.

In response to this request, the provider changes the state of the requested user devices.

## Smart home platform request format {#input}

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

```
POST https://example.com/v1.0/user/devices/action
```


#### Request headers {#headers}


#|
||
**Header**
|
**Description**
|
**Required**
||

||
<!-- source: en/_includes/reference/struct-table-protocol/id-struct-table-protocol/auth-row-col-1.md -->
Authorization
<!-- endsource: en/_includes/reference/struct-table-protocol/id-struct-table-protocol/auth-row-col-1.md -->
|
<!-- source: en/_includes/reference/struct-table-protocol/id-struct-table-protocol/user-auth-row-col-2.md -->
User's authorization token.
<!-- endsource: en/_includes/reference/struct-table-protocol/id-struct-table-protocol/user-auth-row-col-2.md -->
|
<!-- source: en/_includes/reference/struct-table-protocol/id-struct-table-protocol/auth-row-col-3.md -->
Yes
<!-- endsource: en/_includes/reference/struct-table-protocol/id-struct-table-protocol/auth-row-col-3.md -->
||

||
<!-- source: en/_includes/reference/struct-table-protocol/id-struct-table-protocol/content-type-row-col-1.md -->
Content-Type
<!-- endsource: en/_includes/reference/struct-table-protocol/id-struct-table-protocol/content-type-row-col-1.md -->
|
<!-- source: en/_includes/reference/struct-table-protocol/id-struct-table-protocol/content-type-row-col-2.md -->
The format of sent/submitted data. Possible values: application/json.
<!-- endsource: en/_includes/reference/struct-table-protocol/id-struct-table-protocol/content-type-row-col-2.md -->
|
<!-- source: en/_includes/reference/struct-table-protocol/id-struct-table-protocol/content-type-row-col-3.md -->
Yes, in operations with HTTP POST
<!-- endsource: en/_includes/reference/struct-table-protocol/id-struct-table-protocol/content-type-row-col-3.md -->
||

||
<!-- source: en/_includes/reference/struct-table-protocol/id-struct-table-protocol/x-request-id-row-col-1.md -->
X-Request-Id
<!-- endsource: en/_includes/reference/struct-table-protocol/id-struct-table-protocol/x-request-id-row-col-1.md -->
|
<!-- source: en/_includes/reference/struct-table-protocol/id-struct-table-protocol/x-request-id-row-col-2.md -->
Request ID. Must be logged on the provider's side for investigating incidents and problems.
<!-- endsource: en/_includes/reference/struct-table-protocol/id-struct-table-protocol/x-request-id-row-col-2.md -->
|
<!-- source: en/_includes/reference/struct-table-protocol/id-struct-table-protocol/x-request-id-row-col-3.md -->
Yes
<!-- endsource: en/_includes/reference/struct-table-protocol/id-struct-table-protocol/x-request-id-row-col-3.md -->
||
|#


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

```json translate=no
{
  "payload": {
    "devices":[
      {
        "id": String,
        "custom_data": Object,
        "capabilities": [
          "<capability1>": Object,
          "<capability2>": Object,
          ...
        ]
      }
    ]
  }
}
```

<!-- source: en/_includes/reference/struct-table-protocol/id-struct-table-protocol/post-action-query.md -->
<!-- POST action-->
<!-- Query -->


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

||
<!-- 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/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 -->
||

||
custom_data
|
[Object](*object)
|
An object with the device that the provider sent in response to the [Information about user devices](https://yandex.ru/dev/dialogs/smart-home/doc/en/reference/get-devices.md) request. Consists 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.
|
No
||

||
capabilities
|
[Array](*array) of [objects](*object)
|
<!-- source: en/_includes/reference/struct-table-protocol/id-struct-table-protocol/capabilities-description-ph.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-description-ph.md -->
|
Yes
||
|#

<br>

**`capabilities` object**

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

||
<!-- source: en/_includes/reference/struct-table-protocol/id-struct-table-protocol/capability1-action-row-col-1.md -->
\<capability1>
<!-- endsource: en/_includes/reference/struct-table-protocol/id-struct-table-protocol/capability1-action-row-col-1.md -->
|
<!-- source: en/_includes/reference/struct-table-protocol/id-struct-table-protocol/capability1-action-row-col-2.md -->
[Object](*object)
<!-- endsource: en/_includes/reference/struct-table-protocol/id-struct-table-protocol/capability1-action-row-col-2.md -->
|
<!-- source: en/_includes/reference/struct-table-protocol/id-struct-table-protocol/capability1-action-row-col-3.md -->
Capability and command to change it. 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-action-row-col-3.md -->
|
<!-- source: en/_includes/reference/struct-table-protocol/id-struct-table-protocol/capability1-action-row-col-4.md -->
Yes
<!-- endsource: en/_includes/reference/struct-table-protocol/id-struct-table-protocol/capability1-action-row-col-4.md -->
||

||
<!-- source: en/_includes/reference/struct-table-protocol/id-struct-table-protocol/capability2-action-row-col-1.md -->
\<capability2>
<!-- endsource: en/_includes/reference/struct-table-protocol/id-struct-table-protocol/capability2-action-row-col-1.md -->
|
<!-- source: en/_includes/reference/struct-table-protocol/id-struct-table-protocol/capability2-action-row-col-2.md -->
[Object](*object)
<!-- endsource: en/_includes/reference/struct-table-protocol/id-struct-table-protocol/capability2-action-row-col-2.md -->
|
<!-- source: en/_includes/reference/struct-table-protocol/id-struct-table-protocol/capability2-action-row-col-3.md -->
Capability and command to change it. 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-action-row-col-3.md -->
|
<!-- source: en/_includes/reference/struct-table-protocol/id-struct-table-protocol/capability2-action-row-col-4.md -->
Yes
<!-- endsource: en/_includes/reference/struct-table-protocol/id-struct-table-protocol/capability2-action-row-col-4.md -->
||
|#
<!-- endsource: en/_includes/reference/struct-table-protocol/id-struct-table-protocol/post-action-query.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
  HTTP/1.1 200 OK

  {
      "request_id": String,
      "payload": {
        "devices": [
          {
            "id": String,
            "capabilities": [
              "<capability1>": Object,
              "<capability2>": Object,
              ...
            ],
            "action_result": {
              "status": String,
              "error_code": String,
              "error_message": String
            }
          },
          ...
        ]
      }
  }
  ```

  <!-- source: en/_includes/reference/struct-table-protocol/id-struct-table-protocol/post-action-response.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/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 -->
  ||

  ||
  capabilities
  |
  [Array](*array) of [objects](*object)
  |
  <!-- source: en/_includes/reference/struct-table-protocol/id-struct-table-protocol/capabilities-description-ph.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-description-ph.md -->
  |
  Yes, if the `action_result` parameter is omitted
  ||

  ||
  action_result
  |
  [Object](*object)
  |
  Result of device state change. This parameter is required if `capabilities` is missing.


  {% note info %}

  We recommend that you return a parameter for each capability separately. If this is not possible, return the result for the entire device.

  The response to the request is considered successful (`status:"DONE"`) if at least one state of the device has changed.

  {% endnote %}
  |
  Yes, if the `capabilities` parameter is omitted
  ||
  |#

  <br>


  **`capabilities` object**

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

  ||
  \<capability1>
  |
  [Object](*object)
  |
  <!-- source: en/_includes/reference/struct-table-protocol/id-struct-table-protocol/capability-ph-description-post-action-response.md -->
  Command result. 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/capability-ph-description-post-action-response.md -->
  |
  No
  ||

  ||
  \<capability2>
  |
  [Object](*object)
  |
  <!-- source: en/_includes/reference/struct-table-protocol/id-struct-table-protocol/capability-ph-description-post-action-response.md -->
  Command result. 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/capability-ph-description-post-action-response.md -->
  |
  No
  ||
  |#

  <br>


  **`action_result` object**

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

  ||
  status
  |
  [String](*string)
  |
  Status of the device state change. Acceptable values:

  - `DONE`: device state changed.
  - `ERROR`: an error occurred when changing the device state.
  |
  No
  ||

  ||
  <!-- source: en/_includes/reference/struct-table-protocol/id-struct-table-protocol/error_code-row-col-1.md -->
  error_code
  <!-- endsource: en/_includes/reference/struct-table-protocol/id-struct-table-protocol/error_code-row-col-1.md -->
  |
  <!-- source: en/_includes/reference/struct-table-protocol/id-struct-table-protocol/error_code-row-col-2.md -->
  [String](*string)
  <!-- endsource: en/_includes/reference/struct-table-protocol/id-struct-table-protocol/error_code-row-col-2.md -->
  |
  <!-- source: en/_includes/reference/struct-table-protocol/id-struct-table-protocol/error_code-row-col-3.md -->
  An error code from the [list](https://yandex.ru/dev/dialogs/smart-home/doc/en/concepts/response-codes.md#codes-api). If the field is filled in, the `capabilities` and `properties` parameters are ignored.
  <!-- endsource: en/_includes/reference/struct-table-protocol/id-struct-table-protocol/error_code-row-col-3.md -->
  |
  <!-- source: en/_includes/reference/struct-table-protocol/id-struct-table-protocol/error_code-row-col-4.md -->
  No
  <!-- endsource: en/_includes/reference/struct-table-protocol/id-struct-table-protocol/error_code-row-col-4.md -->
  ||

  ||
  <!-- source: en/_includes/reference/struct-table-protocol/id-struct-table-protocol/error_message-row-col-1.md -->
  error_message
  <!-- endsource: en/_includes/reference/struct-table-protocol/id-struct-table-protocol/error_message-row-col-1.md -->
  |
  <!-- source: en/_includes/reference/struct-table-protocol/id-struct-table-protocol/error_message-row-col-2.md -->
  [String](*string)
  <!-- endsource: en/_includes/reference/struct-table-protocol/id-struct-table-protocol/error_message-row-col-2.md -->
  |
  <!-- source: en/_includes/reference/struct-table-protocol/id-struct-table-protocol/error_message-row-col-3.md -->
  Extended human-readable description of a possible error. Available only on the [Testing](https://yandex.ru/dev/dialogs/smart-home/doc/en/testing.md) tab of the developer console.
  <!-- endsource: en/_includes/reference/struct-table-protocol/id-struct-table-protocol/error_message-row-col-3.md -->
  |
  <!-- source: en/_includes/reference/struct-table-protocol/id-struct-table-protocol/error_message-row-col-4.md -->
  No
  <!-- endsource: en/_includes/reference/struct-table-protocol/id-struct-table-protocol/error_message-row-col-4.md -->
  ||
  |#
  <!-- endsource: en/_includes/reference/struct-table-protocol/id-struct-table-protocol/post-action-response.md -->


  [Codes associated with the request](https://yandex.ru/dev/dialogs/smart-home/doc/en/concepts/response-codes.md#codes-api)


- Response with error


  ```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}

> {% list tabs %}
>
> - Request
>
>
>   ```bash translate=no
>   curl -i -X POST 'https://example.com/v1.0/user/devices/action' \
>   -H 'Authorization: Bearer 123qwe456a...' \
>   -H 'X-Request-Id: ff36a3cc-ec...' \
>   -H 'Content-Type: application/json'
>   ```
>
>   Request body
>
>   ```json translate=no
>   {
>       "payload": {
>           "devices": [{
>               "id": "abc-123",
>               "custom_data": {
>                 "foo": 1,
>                 "bar": "two",
>                 "baz": false,
>                 "qux": [1, "two", false],
>                 "quux": {
>                   "quuz": {
>                     "corge": []
>                   }
>                 }
>               },
>               "capabilities": [{
>                   "type": "devices.capabilities.color_setting",
>                   "state": {
>                       "instance": "hsv",
>                       "value": {
>                           "h": 255,
>                           "s": 50,
>                           "v": 100
>                       }
>                   }
>               },
>               {
>                   "type": "devices.capabilities.on_off",
>                   "state": {
>                       "instance": "on",
>                       "value": false
>                   }
>               }]
>           }, {
>               "id": "sock-56GF-3",
>               "capabilities": [{
>                   "type": "devices.capabilities.on_off",
>                   "state": {
>                       "instance": "on",
>                       "value": false
>                   }
>               }]
>           }]
>       }
>   }
>   ```
>
>
> - Response successful
>
>
>   ```json translate=no
>   HTTP/1.1 200 OK
>
>   {
>     "request_id": "EE109B31-FF6C-48BD-80DB-4D07A9AFEBB3",
>     "payload": {
>         "devices": [{
>             "id": "abc-123",
>             "capabilities": [{
>                 "type": "devices.capabilities.color_setting",
>                 "state": {
>                     "instance": "hsv",
>                     "action_result": {
>                         "status": "ERROR",
>                         "error_code": "INVALID_ACTION",
>                         "error_message": "the human readable error message"
>                     }
>                 }
>             },
>             {
>                 "type": "devices.capabilities.on_off",
>                 "state": {
>                     "instance": "on",
>                     "action_result": {
>                         "status": "DONE"
>                     }
>                 }
>             }]
>        },
>        {
>           "id": "sock-56GF-3",
>           "action_result": {
>             "status": "ERROR",
>             "error_code": "DEVICE_UNREACHABLE"
>           }
>        }]
>     }
>   }
>   ```
>
>
> - Response with error
>
>
>   ```json translate=no
>   HTTP/1.1 404 Not Found
>   ```
>
> {% 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"]
```