---
metadata:
  - name: generator
    content: Diplodoc Platform v5.47.3
alternate:
  - https://yandex.com.tr/support/tracker/en/api-ref/bulkchange/bulk-update-issues.md
---
> **Documentation Index:** Fetch the complete configuration index at https://yandex.com.tr/support/tracker/en/llms.txt

# Bulk changes to issues

Use this request to reconfigure multiple issues at the same time.

<div class="request_example method_post yfm-clipboard">
    <p>POST</p>
    <pre><code>https://api.tracker.yandex.net/v3/bulkchange/_update</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/_assets/style/methods.md -->

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

{% note info "" %}

The maximum number of issues per change is 10,000.

{% endnote %}

## Query format {#query}

Before making a request, [get permission to access the API](https://yandex.com.tr/support/tracker/en/api-ref/access.md).

To edit issues, use an HTTP `POST` request. In the request body, specify the parameters in JSON format.

```json
POST /v3/bulkchange/_update
Host: api.tracker.yandex.net
Authorization: OAuth <OAuth_token>
X-Org-ID or X-Cloud-Org-ID: <organization_ID>

{
  "issues": ["TEST-1", "TEST-2", "TEST-3"],
  "values": {
    "<parameter_1>": "<parameter_1_value>",
    "<parameter_2>": "<parameter_2_value>"
  }
}
```

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

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

* <!-- source: en/_includes/api/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-ref/access.md#about_OAuth)

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


* <!-- source: en/_includes/api/org-id.md -->
  `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 Cloud Organization.

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


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

{% cut "Request parameters" %}

**Additional parameters**

| Parameter | Description | Data type |
-------- | -------- | ----------
| notify | Flag indicating if users should be notified about issue changes:<ul><li>`true`: Users specified in the issue fields are notified.</li><li>`false` (by default): No users are notified.</li></ul> | Boolean |

{% endcut %}

{% cut "Request body parameters" %}

**Required parameters**

#|
|| Parameter | Description | Data type ||
|| issues | Array of issue IDs or a filter in the [query language](https://yandex.com.tr/support/tracker/en/user/query-filter.md).

When creating a request, please note that you must escape quotation marks and special characters with a backslash (`\`). For more information, see [Using special characters](https://yandex.com.tr/support/tracker/en/api-ref/common-format.md#str-escape).
| Array or String ||
|| values | Issue parameters that should be updated. Use the parameters that are available when [editing the issue](https://yandex.com.tr/support/tracker/en/api-ref/issues/patch-issue.md#req-get-params).

To edit issue parameters, you can use the `set`, `add`, `remove`, and other operators. For more information, see [Editing parameters](https://yandex.com.tr/support/tracker/en/api-ref/common-format.md#edit-fields).
| String ||
|#

{% endcut %}

> Example 1: Edit issues.
>
> - An HTTP POST method is used.
> - The issue type for **TEST-1**, **TEST-2**, and **TEST-3** changes to **Error**.
>
> ```json
> POST /v3/bulkchange/_update
> Host: api.tracker.yandex.net
> Authorization: OAuth <OAuth_token>
> X-Org-ID or X-Cloud-Org-ID: <organization_ID>
> {
>  "issues": ["TEST-1","TEST-2","TEST-3"],
>  "values": {
>    "type": {"name": "Error"}
>  }
> }
> ```

> Example 2: Edit issues using a filter in the query language.
>
> - An HTTP POST method is used.
> - Issue search filter: the name contains `Test`, and the assignee is `username`.
> - Issue editing: the priority changes to `Blocker`, and the "Updated via API" comment is added.
>
> ```json
> POST /v3/bulkchange/_update
> Host: api.tracker.yandex.net
> Authorization: OAuth <OAuth_token>
> X-Org-ID or X-Cloud-Org-ID: <organization_ID>
> {
>  "issues": "Summary: Test Assignee: username",
>  "values": {
>    "comment": "Updated via API",
>    "priority": {"key": "blocker"}
>  }
> }
> ```

> Example 3: Change tags in issues.
>
> - An HTTP POST method is used.
> - In the issues **TEST-1**, **TEST-2**, and **TEST-3**, `tag2` replaces `tag1`.
>
> ```json
> POST /v3/bulkchange/_update
> Host: api.tracker.yandex.net
> Authorization: OAuth <OAuth_token>
> X-Org-ID or X-Cloud-Org-ID: <organization_ID>
> {
>  "issues": ["TEST-1","TEST-2","TEST-3"],
>  "values": {
>    "tags": {"replace": {"target": "tag1", "replacement": "tag2"}
>    }
>  }
> }
> ```

## Response format {#answer}

{% list tabs %}

- Request executed successfully

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

    The response body contains information about the bulk change operation in JSON format.

    ```json
    {
        "id": "1ab23cd4e5678901********",
        "self": "https://api.tracker.yandex.net/v3/bulkchange/1ab23cd4e5678901********",
        "createdBy": {
            "self": "https://api.tracker.yandex.net/v3/users/12********",
            "id": "username",
            "display": "Full name"
        },
        "createdAt": "2020-12-15T11:52:53.665+0000",
        "status": "CREATED",
        "statusText": "Bulk change task created.",
        "executionChunkPercent": 0,
        "executionIssuePercent": 0
    }
    ```

    {% cut "Response parameters" %}

    | Parameter | Description | Data type |
    -------- | -------- | ----------
    | id | Bulk change operation ID. | String |
    | self | Address of the API resource with information about the bulk change. | String |
    | [createdBy](#createdBy) | Object with information about the user who made the bulk change. | Map item |
    | createdAt | Date and time when the bulk change operation was created. | String |
    | status | Bulk change operation status. | String |
    | statusText | Description of the bulk change operation status. | String |
    | executionChunkPercent | Service parameter | Number |
    | executionIssuePercent | Service parameter | Number |

    `createdBy` **object fields** {#createdBy}

    | Parameter | Description | Data type |
    -------- | -------- | ----------
    | self | Address of the API resource with information about the user | String |
    | id | User ID. | Number |
    | display | Displayed user name | String |

    {% endcut %}

- Request failed

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

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

    <!-- source: en/_includes/api/answer-error-401.md -->
    401
    :   The user is not authorized. Make sure that actions described in the [API access](https://yandex.com.tr/support/tracker/en/api-ref/access.md) section are performed.
    <!-- endsource: en/_includes/api/answer-error-401.md -->

    <!-- source: en/_includes/api/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/_includes/api/answer-error-403.md -->

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

{% endlist %}
