---
metadata:
  - name: generator
    content: Diplodoc Platform v5.64.0
  - property: og:type
    content: article
  - property: article:section
    content: API reference
  - property: og:title
    content: Updating a dashboard
alternate:
  - https://yandex.com.tr/support/tracker/en/api/dashboards/update-dashboard.md
  - href: https://yandex.com.tr/support/tracker/en/api/dashboards/update-dashboard.md
    type: text/markdown
    title: Markdown version
  - href: https://yandex.com.tr/support/tracker/en/llms.txt?revision=r21825371
    rel: describedby
---
> **Documentation Index:** Fetch the complete configuration index at https://yandex.com.tr/support/tracker/en/llms.txt?revision=r21825371


# Updating a dashboard

Use this request to update dashboard parameters and widget positions.

<div class="request_example yfm-code-floating-container method_patch">
    <p>PATCH</p>
    <pre><code>https://api.tracker.yandex.net/v3/dashboards/{dashboard_ID}?version=DASHBOARD_VERSION</code></pre>
    <button class="yfm-clipboard-button"><svg width="16" height="16" viewBox="0 0 24 24" class="yfm-clipboard-icon" data-animation="15">
    <path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path>
    <path stroke="currentColor" fill="transparent" strokewidth="1.5" d="M9.5 13l3 3l5 -5" visibility="hidden">
        <animate id="visibileAnimation-15" attributeName="visibility" from="hidden" to="visible" dur="0.2s" fill="freeze" begin=""></animate>
        <animate id="hideAnimation-15" attributeName="visibility" from="visible" to="hidden" dur="1s" begin="visibileAnimation-15.end+1" fill="freeze"></animate>
    </path>
</svg>
</button>
</div>

<!-- source: en/api/_assets/style/methods.md -->

<!-- endsource: en/api/_assets/style/methods.md -->

## Request format {#request}

Before making a request, [get permission to access the API](https://yandex.com.tr/support/tracker/en/api/access.md). Get the version from the [Getting a dashboard](https://yandex.com.tr/support/tracker/en/api/dashboards/get-dashboard.md) response.

```json translate=no
PATCH /v3/dashboards/{dashboard_ID}?version=DASHBOARD_VERSION
Host: api.tracker.yandex.net
Authorization: OAuth API_TOKEN
Content-Type: application/json
X-Org-ID or X-Cloud-Org-ID: ORGANIZATION_ID

{
  "name": "Team plans",
  "widgets": {
    "set": [
      {
        "id": 456,
        "column": 1,
        "row": 1,
        "collapsed": false,
        "coords": {"x": 0, "y": 0, "w": 6, "h": 8},
        "order": 1
      }
    ]
  }
}
```

<!-- source: en/api/_includes/headings.md -->
{% cut "Headers" %}

* `Host`: address of the node that provides the API.

* <!-- source: en/api/_includes/authorization.md -->
  `Authorization`: Authorization token about these formats:

    - `OAuth OAUTH_TOKEN`: For authorization using the OAuth 2.0 protocol. [Learn more](https://yandex.com.tr/support/tracker/en/api/access.md#about_OAuth)

    - `Bearer IAM_TOKEN`: For authorization using an IAM token, if a Yandex Identity Hub organization is linked to Tracker. [Learn more](https://yandex.com.tr/support/tracker/en/api/access.md#iam-token)
  <!-- endsource: en/api/_includes/authorization.md -->


* <!-- source: en/api/_includes/org-id.md -->
  # ID types {#types}


  `X-Org-ID` or `X-Cloud-Org-ID`: Organization ID.

  - Use the `X-Org-ID` header if a Tracker organization is linked to Yandex 360 for Business.

  - Use the `X-Cloud-Org-ID` header if a Tracker organization is linked to Yandex Identity Hub.


  # Finding the ID {#find-id}


  To get the organization ID, go to **Administration** → [**Organizations**](https://tracker.yandex.com/admin/orgs) and copy the value from the **ID** field.
  <!-- endsource: en/api/_includes/org-id.md -->


{% endcut %}
<!-- endsource: en/api/_includes/headings.md -->

{% cut "Resource" %}

#|
|| **Parameter** | **Description** | **Data type** ||
|| dashboard_ID | Dashboard ID. | Number ||
|#

{% endcut %}

{% cut "Request parameters" %}

**Required parameters**

#|
|| **Parameter** | **Description** | **Data type** ||
|| version | Current dashboard version from the [Getting a dashboard](https://yandex.com.tr/support/tracker/en/api/dashboards/get-dashboard.md) response. | Number ||
|#

{% endcut %}

{% cut "Request body parameters" %}

Pass the dashboard parameters you want to change.

#|
|| **Parameter** | **Description** | **Data type** ||
|| name | New dashboard name. | String ||
|| widgets | Operation on the widget collection. | Object ||
|#

**Fields of the** `widgets` **object**

#|
|| **Parameter** | **Description** | **Data type** ||
|| add | Adds existing widgets of this dashboard to the layout. | Array of objects ||
|| set | Replaces the entire widget set. Widgets omitted from the new set are deleted. | Array of objects ||
|| remove | Deletes the specified widgets from the dashboard. Deleted widgets are no longer accessible through the API. | Array of objects ||
|| replace | Replaces widget parameters. Each element contains `target` and `replacement` objects. | Array of objects ||
|#

A dashboard can contain up to 100 widgets. Pass `column` and `row` together, and `coords` and `order` together. Column and row numbering starts at 1. The maximum `column` value depends on the layout: `one-column`: 1, `two-columns`: 2, `three-columns`: 3, `narrow-left-wide-right`: 2, `one-top-two-bottom`: 3. The `coords` grid is 36 units wide.

**Fields of the** `widgets.add` **array elements**

The `id`, `column`, and `row` fields are required.

#|
|| **Parameter** | **Description** | **Data type** ||
|| id | Widget ID. | Number ||
|| column | Column number. | Number ||
|| row | Row number. | Number ||
|| collapsed | Indicates a collapsed widget. | Boolean ||
|| coords | Widget coordinates and size. | Object ||
|| order | Widget order. | Number ||
|#

**Fields of the** `widgets.remove` **array elements**

#|
|| **Parameter** | **Description** | **Data type** ||
|| id | Widget ID. | Number ||
|#

**Fields of the** `widgets.replace` **array elements**

#|
|| **Parameter** | **Description** | **Data type** ||
|| target | Widget whose parameters should be replaced. Pass an object with the `id` field. | Object ||
|| replacement | New widget layout parameters. The fields are the same as in `widgets.set` elements. | Object ||
|#

**Fields of the** `widgets.set` **array elements**

#|
|| **Parameter** | **Description** | **Data type** ||
|| id | Widget ID. | Number ||
|| column | Column number. | Number ||
|| row | Row number. | Number ||
|| collapsed | Indicates a collapsed widget. | Boolean ||
|| coords | Widget coordinates and size. | Object ||
|| order | Widget order. | Number ||
|#

**Fields of the** `coords` **object**

#|
|| **Parameter** | **Description** | **Data type** ||
|| x | Horizontal coordinate. | Number ||
|| y | Vertical coordinate. | Number ||
|| w | Width. | Number ||
|| h | Height. | Number ||
|#

{% endcut %}

## Response format {#response}

{% list tabs %}

- Request executed successfully

    <!-- source: en/api/_includes/answer-200.md -->
    If the request is successful, the API returns a response with code `200 OK`.
    <!-- endsource: en/api/_includes/answer-200.md -->

    On success, the API returns the updated dashboard object.

    ```json translate=no
    {
      "id": 123,
      "self": "https://api.tracker.yandex.net/v3/dashboards/123",
      "version": 4,
      "name": "Team plans",
      "layout": "one-column",
      "widgets": [
        {"id": "456", "self": "https://api.tracker.yandex.net/v3/widgets/456"}
      ]
    }
    ```

    {% cut "Response parameters" %}

    #|
    || **Parameter** | **Description** | **Data type** ||
    || id | Dashboard ID. | Number ||
    || self | URL of the API resource with dashboard parameters. | String ||
    || version | Dashboard version. Get it from the [getting a dashboard](https://yandex.com.tr/support/tracker/en/api/dashboards/get-dashboard.md) response. | Number ||
    || name | Dashboard name. | String ||
    || createdBy | Dashboard creator. [User object fields](https://yandex.com.tr/support/tracker/en/api/dashboards/create-dashboard.md#user). | Object ||
    || createdAt | Dashboard creation date and time. | String ||
    || layout | Widget display mode. | String ||
    || widgets | Dashboard widget references. | Array of objects ||
    || temp | Indicates a temporary dashboard. | Boolean ||
    || owner | Dashboard owner. [User object fields](https://yandex.com.tr/support/tracker/en/api/dashboards/create-dashboard.md#user). | Object ||
    |#

    **Fields of the** `widgets` **array elements**

    #|
    || **Parameter** | **Description** | **Data type** ||
    || id | Widget ID. | String ||
    || self | URL of the API resource with widget parameters. | String ||
    || display | Widget name. | String ||
    |#

    {% endcut %}

- Request failed

    If the request is processed incorrectly, the API returns a response with an error code:

    <!-- source: en/api/_includes/answer-error-400.md -->
    400
    :   One or more request parameters have an invalid value.
    <!-- endsource: en/api/_includes/answer-error-400.md -->

    Required `version` parameter is missing.

    <!-- source: en/api/_includes/answer-error-403.md -->
    403
    :   You are not authorized to perform this action. You can check what rights you have in the Tracker interface. The same rights are required to perform an action via the API and interface.
    <!-- endsource: en/api/_includes/answer-error-403.md -->

    No `WRITE` permission for the dashboard.

    <!-- source: en/api/_includes/answer-error-404.md -->
    404
    :   The requested object was not found. You may have specified an invalid object ID or key.
    <!-- endsource: en/api/_includes/answer-error-404.md -->

    <!-- source: en/api/_includes/answer-error-412.md -->
    412
    :   A conflict occurred while editing the object. The error may be due to an invalid update version.
    <!-- endsource: en/api/_includes/answer-error-412.md -->

    <!-- source: en/api/_includes/answer-error-422.md -->
    422
    :   JSON validation error, the request is rejected.
    <!-- endsource: en/api/_includes/answer-error-422.md -->

    The `widgets` parameter references a widget that does not exist.

{% endlist %}
