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

# Notification about device parameter change

Notifies Yandex Smart Home about the changed device parameters.

Example situation when the current request is sent: the skill developer updated the list of capabilities for the user device or the user renamed the device in the provider's app.

<!-- source: en/_includes/reference-alerts/resources-alerts/id-resources-alerts/reference-alerts-test-in-private.md -->
{% note info %}

The notification service is available only for published skills. If your skill is still under development, you can make it private for the  [testing](https://yandex.ru/dev/dialogs/smart-home/doc/en/testing.md) period so that external users can't access it.

{% endnote %}
<!-- endsource: en/_includes/reference-alerts/resources-alerts/id-resources-alerts/reference-alerts-test-in-private.md -->


## Request format {#input}

```
POST https://dialogs.yandex.net/api/v1/skills/{[skill_id](*skill_id)}/callback/discovery
```


#### Request headers {#headers}

#|
||
**Parameter**
|
**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/auth-row-col-2.md -->
Authorization [token of the skill owner](https://yandex.ru/dev/dialogs/smart-home/doc/en/reference-alerts/resources-alerts.md#oauth).
<!-- endsource: en/_includes/reference/struct-table-protocol/id-struct-table-protocol/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 -->
||
|#


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

```json translate=no
{
    "ts": Float64,
    "payload": {
        "user_id": String
    }
}
```

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

||
ts
|
[Float64](*float64)
|
Time of the event in seconds and fractions of a second (UNIX timestamp format).

For example, the value `1611764267.120` corresponds to January 27, 2021 16 hours 17 minutes 47 seconds 120 milliseconds.
|
Yes
||

||
payload
|
[Object](*object)
|
Object with ID.
|
Yes
||
|#

<br>

**`payload` object**

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

||
user_id
|
[String](*string)
|
User identifier sent in response to the [Information about user devices](https://yandex.ru/dev/dialogs/smart-home/doc/en/reference/get-devices.md) request.
|
Yes
||
|#



## Response format {#output-structure}


{% list tabs %}

- Response successful


  ```json translate=no
  HTTP/1.1 202 Accepted

  {
    "request_id": String,
    "status": "ok"
  }
  ```

  <!-- source: en/_includes/reference-alerts/struct-table-protocol-alerts/id-struct-table-protocol-alerts/post-skill_id-callback-state-response.md -->
  #|
  ||
  **Parameter**
  |
  **Type**
  |
  **Description**
  |
  **Required**
  ||

  ||
  request_id
  |
  [String](*string)
  |
  Request ID. Must be logged for the purpose of incident investigation.
  |
  Yes
  ||

  ||
  status
  |
  [String](*string)
  |
  Status of processing the request. Acceptable values:
  - `ok`.
  |
  Yes
  ||
  |#
  <!-- endsource: en/_includes/reference-alerts/struct-table-protocol-alerts/id-struct-table-protocol-alerts/post-skill_id-callback-state-response.md -->



- Response with error


  ```json translate=no
  HTTP/1.1 400

  {
    "request_id": String,
    "status": "error",
    "error_code": String,
    "error_message": String
  }
  ```

  <!-- source: en/_includes/reference-alerts/struct-table-protocol-alerts/id-struct-table-protocol-alerts/post-skill_id-callback-state-response-error.md -->
  <!-- Response error -->


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

  ||
  request_id
  |
  [String](*string)
  |
  Request ID. Must be logged for the purpose of incident investigation.
  |
  Yes
  ||

  ||
  status
  |
  [String](*string)
  |
  Status of processing the request. Acceptable values:
    - `error`.

  |
  Yes
  ||

  ||
  error_code
  |
  [String](*string)
  |
  Error code. Acceptable values:
  - `BAD_REQUEST`;
  - `UNKNOWN_USER`.
  |
  No
  ||

  ||
  error_message
  |
  [String](*string)
  |
  Error message.
  |
  No
  ||
  |#
  <!-- endsource: en/_includes/reference-alerts/struct-table-protocol-alerts/id-struct-table-protocol-alerts/post-skill_id-callback-state-response-error.md -->


  [Error codes](https://yandex.ru/dev/dialogs/smart-home/doc/en/concepts/responses-codes-alerts.md)

{% endlist %}


## Example {#example-JSON}

> {% list tabs %}
>
> - Request
>
>
>   ```bash translate=no
>   curl -i -X POST 'https://dialogs.yandex.net/api/v1/skills/user-test-skill/callback/discovery' \
>   -H 'Authorization: OAuth 123qwe456a...' \
>   -H 'Content-Type: application/json' \
>   -d '{
>       "ts": 1611764267.120,
>       "payload": {
>           "user_id": "provider-user-id-1"
>       }
>   }'
>   ```
>
>
> - Response successful
>
>
>   ```json translate=no
>   HTTP/1.1 202 Accepted
>
>   {
>     "request_id": "75442486-0878-440c-9db1-a7006c25a39f",
>     "status": "ok"
>   }
>   ```
>
>
> - Response with error
>
>
>   ```json translate=no
>   HTTP/1.1 400
>
>   {
>     "request_id": "same-as-in-request",
>     "status": "error",
>     "error_code": "UNKNOWN_USER",
>     "error_message": "User not found"
>   }
>   ```
>
> {% endlist %}


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

[*float64]:
  64-bit floating-point number with a precision of 15-18 decimal digits.

[*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"`.

[*skill_id]:
  ID of the skill invoked (assigned at creation).

To find out your skill ID, open the skill in the [developer console](https://dialogs.yandex.ru/developer/): you can copy the skill ID in the **General information** tab at the bottom of the page.