---
metadata:
  - name: generator
    content: Diplodoc Platform v5.61.1
  - property: og:type
    content: article
  - property: article:section
    content: Справочник API
  - property: og:title
    content: Изменить права доступа к сущности
  - property: article:tag
    content: Техническая инструкция
alternate:
  - https://yandex.ru/support/tracker/en/api/entities/patch-permissions.md
  - https://yandex.ru/support/tracker/ru/api/entities/patch-permissions.md
  - href: https://yandex.ru/support/tracker/ru/api/entities/patch-permissions.md
    type: text/markdown
    title: Markdown version
  - href: https://yandex.ru/support/tracker/ru/llms.txt
    rel: describedby
---
> **Documentation Index:** Fetch the complete configuration index at https://yandex.ru/support/tracker/ru/llms.txt


# Изменить права доступа к сущности

Запрос позволяет выдать или отозвать прямые права доступа к [цели](*goal), [проекту](*project) или [портфелю проектов](*portfolio).

<div class="request_example yfm-code-floating-container method_patch">
    <p>PATCH</p>
    <pre><code>https://api.tracker.yandex.net/v3/entities/{тип_сущности}/{id_сущности}/permissions</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: ru/api/_assets/style/methods.md -->

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

## Формат запроса {#query}

Перед выполнением запроса [получите доступ к API](https://yandex.ru/support/tracker/ru/api/access.md).

Передайте объекты `grant` и `revoke` в корне тела запроса. API добавляет или удаляет указанные права и сохраняет остальные настройки доступа.

```json translate=no
PATCH /v3/entities/{тип_сущности}/{id_сущности}/permissions
Host: api.tracker.yandex.net
Authorization: OAuth API_TOKEN
Content-Type: application/json
X-Org-ID или X-Cloud-Org-ID: ИДЕНТИФИКАТОР_ОРГАНИЗАЦИИ

{
    "grant": {
        "READ": {
            "users": "username1"
        }
    },
    "revoke": {
        "GRANT": {
            "users": "username2"
        }
    }
}
```

<!-- source: ru/api/_includes/headings.md -->
{% cut "Заголовки" %}

* `Host`: адрес узла, предоставляющего API.

* <!-- source: ru/api/_includes/authorization.md -->
  `Authorization`: токен для авторизации в одном из форматов:

    - `OAuth OAUTH_TOKEN` при авторизации по протоколу OAuth 2.0. [Читать подробнее](https://yandex.ru/support/tracker/ru/api/access.md#about_OAuth)

    - `Bearer IAM_TOKEN` при авторизации с помощью IAM-токена — если к Трекеру привязана организация Yandex Identity Hub. [Читать подробнее](https://yandex.ru/support/tracker/ru/api/access.md#iam-token)
  <!-- endsource: ru/api/_includes/authorization.md -->

* <!-- source: ru/api/_includes/content-type-json.md -->
  `Content-Type`: формат тела запроса. Должен иметь значение `application/json`.
  <!-- endsource: ru/api/_includes/content-type-json.md -->


* <!-- source: ru/api/_includes/org-id.md -->
  `X-Org-ID` или `X-Cloud-Org-ID`: идентификатор организации.

  - если к Трекеру привязана организация Яндекс 360 для бизнеса, используйте заголовок `X-Org-ID`,

  - если к Трекеру привязана организация Yandex Identity Hub, используйте заголовок `X-Cloud-Org-ID`.
  <!-- endsource: ru/api/_includes/org-id.md -->

  <!-- source: ru/api/_includes/org-id.md -->
  Чтобы узнать идентификатор организации, перейдите на страницу **Администрирование** → [**Организации**](https://tracker.yandex.ru/admin/orgs) и скопируйте значение поля **идентификатор**.
  <!-- endsource: ru/api/_includes/org-id.md -->


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

<!-- source: ru/api/_includes/resource-entity.md -->
{% cut "Ресурс" %}

Параметр | Описание | Тип данных
-------- | -------- | ----------
`тип_сущности` | Тип сущности:<ul><li>project — проект;</li><li>portfolio — портфель;</li><li>goal — цель</li></ul>| Строка
`id_сущности` | Идентификатор сущности. Чтобы получить идентификатор, посмотрите [список сущностей](search-entities.md). В качестве идентификатора можно использовать параметр `id` или `shortId`.| Строка

{% endcut %}
<!-- endsource: ru/api/_includes/resource-entity.md -->

В параметре `{id_сущности}` можно использовать значение `id` или `shortId`.

{% cut "Параметры тела запроса" %}

<!-- source: ru/api/_includes/entity-permissions.md -->
Параметр | Описание | Тип данных
-------- | -------- | ----------
[grant](#read-grant-write-request) | Права, которые нужно выдать | Объект
[revoke](#read-grant-write-request) | Права, которые нужно отозвать | Объект
<!-- endsource: ru/api/_includes/entity-permissions.md -->

**Поля объектов** `grant` и `revoke` {#read-grant-write-request}

<!-- source: ru/api/_includes/entity-permissions.md -->
Параметр | Описание | Тип данных
-------- | -------- | ----------
[READ](#principals) | Пользователи, группы и роли, которым нужно выдать или отозвать доступ для просмотра сущности | Объект
[GRANT](#principals) | Пользователи, группы и роли, которым нужно выдать или отозвать права на настройку доступа к сущности | Объект
[WRITE](#principals) | Пользователи, группы и роли, которым нужно выдать или отозвать доступ для редактирования сущности | Объект
<!-- endsource: ru/api/_includes/entity-permissions.md -->

**Поля объектов** `READ`, `GRANT` и `WRITE` {#principals}

<!-- source: ru/api/_includes/entity-permissions.md -->
#|
|| Параметр | Описание | Тип данных ||
|| users | Идентификаторы или логины пользователей | Строка или массив строк ||
|| groups | Идентификаторы групп | Число или массив чисел ||
|| roles | Роли сущности: `AUTHOR`, `OWNER`, `CLIENT`, `FOLLOWER`, `MEMBER` | Строка или массив строк ||
|#
<!-- endsource: ru/api/_includes/entity-permissions.md -->

{% endcut %}

{% note warning "" %}

Не передавайте в теле запроса параметр `permissionSources`: API вернет ошибку `400`. Чтобы изменить наследование прав доступа, используйте запрос [Изменить расширенные настройки доступа сущности](https://yandex.ru/support/tracker/ru/api/entities/patch-access.md).

{% endnote %}

## Формат ответа {#answer}

{% list tabs %}

- Запрос выполнен успешно

   <!-- source: ru/api/_includes/answer-200.md -->
   В случае успешного выполнения запроса API возвращает ответ с кодом `200 OK`.
   <!-- endsource: ru/api/_includes/answer-200.md -->

   API возвращает объект с итоговыми правами доступа. Свойства `READ`, `GRANT` и `WRITE` находятся в корне ответа. В ответ не входят `acl`, `permissionSources` и `parentEntities`.

   <!-- source: ru/api/_includes/entity-permissions.md -->
   ```json translate=no
   {
       "READ": {
           "users": [],
           "groups": [],
           "roles": []
       },
       "GRANT": {
           "users": [],
           "groups": [],
           "roles": ["AUTHOR", "OWNER"]
       },
       "WRITE": {
           "users": [],
           "groups": [],
           "roles": ["CLIENT", "AUTHOR", "FOLLOWER", "OWNER", "MEMBER"]
       }
   }
   ```
   <!-- endsource: ru/api/_includes/entity-permissions.md -->

- Запрос выполнен с ошибкой

   Если запрос не был успешно обработан, API возвращает ответ с кодом ошибки:

   <!-- source: ru/api/_includes/answer-error-400.md -->
   400
   :   Один или несколько параметров запроса имеют недопустимое значение.
   <!-- endsource: ru/api/_includes/answer-error-400.md -->

   <!-- source: ru/api/_includes/answer-error-401.md -->
   401
   :   Пользователь не авторизован. Проверьте, были ли выполнены действия, описанные в разделе [Доступ к API](https://yandex.ru/support/tracker/ru/api/access.md).
   <!-- endsource: ru/api/_includes/answer-error-401.md -->

   <!-- source: ru/api/_includes/answer-error-403.md -->
   403
   :   У вас не хватает прав на выполнение этого действия. Наличие прав можно перепроверить в интерфейсе Трекера — для выполнения действия при помощи API и через интерфейс требуются одинаковые права.
   <!-- endsource: ru/api/_includes/answer-error-403.md -->

   <!-- source: ru/api/_includes/answer-error-404.md -->
   404
   :   Запрошенный объект не был найден. Возможно, вы указали неверное значение идентификатора или ключа объекта.
   <!-- endsource: ru/api/_includes/answer-error-404.md -->

{% endlist %}

[*portfolio]: Портфель — это инструмент для объединения проектов и других портфелей по продукту, отделу или другому признаку.

Когда у вас несколько параллельных проектов, портфель позволяет взглянуть на них с высоты: как распределены ресурсы, где сроки подходят к концу.

[*project]: Проект — это набор задач из разных очередей, в которых работают над общим результатом. Это может быть запуск мобильного приложения или редизайн главной страницы сайта.

Проект помогает отслеживать: сколько задач сделано, сколько осталось, укладывается ли команда в сроки.

[*goal]: Цель — это стратегия развития или желаемый итог работы команды. Прогресс цели оценивают в количественных показателях. К цели можно привязать проекты, портфели и задачи, чтобы видеть, какая работа ведется для ее достижения.