---
metadata:
  - name: generator
    content: Diplodoc Platform v5.66.0
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
  - href: https://yandex.ru/dev/dialogs/smart-home/doc/en/reference/post-action.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

# Change device state

Changes the current state of user devices.

Example case where this request is sent: the user opens the [![](../_images/smart-home-app.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"]
```