---
metadata:
  - name: generator
    content: Diplodoc Platform v5.54.5
  - property: og:type
    content: article
  - property: article:section
    content: Справочник API
  - property: og:title
    content: Получить комментарии к сущности
  - property: article:tag
    content: Техническая инструкция
alternate:
  - https://yandex.com.tr/support/tracker/en/api-ref/entities/comments/get-all-comments.md
  - href: en/api-ref/entities/comments/get-all-comments.md
    type: text/markdown
    title: Markdown version
  - href: ../../../llms.txt
    type: text/markdown
    title: llms.txt
---
> **Documentation Index:** Fetch the complete configuration index at https://yandex.com.tr/support/tracker/en/llms.txt


# Getting comments for the entity

The request allows you to get a list of comments for an [entity](https://yandex.com.tr/support/tracker/en/api-ref/entities/about-entities.md).

<div class="request_example method_get yfm-clipboard">
    <p>GET</p>
    <pre><code>https://api.tracker.yandex.net/v3/entities/&lt;entity_type>/&lt;entity_ID>/comments</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-ref/_assets/style/methods.md -->

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

## 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 get comments, use an HTTP `GET` request.

```json translate=no
GET /v3/entities/<entity_type>/<entity_ID>/comments
Host: api.tracker.yandex.net
Authorization: OAuth <OAuth_token>
X-Org-ID or X-Cloud-Org-ID: <organization_ID>
```

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

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

* <!-- source: en/api-ref/_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-ref/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-ref/access.md#iam-token)
  <!-- endsource: en/api-ref/_includes/authorization.md -->


* <!-- source: en/api-ref/_includes/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 Identity Hub.

  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/api-ref/_includes/org-id.md -->


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

<!-- source: en/api-ref/_includes/resource-entity.md -->
{% cut "Resource" %}

| Parameter | Description | Data type |
-------- | -------- | ----------
| \<entity_type> | Entity type:<ul><li>project</li><li>portfolio</li><li>goal</li></ul> | String |
| \<entity_ID> | Entity ID. To get the ID, see the [entity list](../search-entities.md). You can use the `id` or `shortId` parameter as the ID. | String |

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

{% cut "Request parameters" %}

**Additional parameters**

| Parameter | Description | Data type |
-------- | -------- | ----------
| expand | Additional information to include in the response: <ul><li>`all`: All</li><li>`html`: Comment HTML markup</li><li>`attachments`: Attached files</li><li>`reactions`: Reactions to a comment</li></ul> | String |

{% endcut %}

> Example: Getting a list of comments
>
> - An HTTP GET method is used.
> - The response displays information about all comments.
>
> ```
> GET https://api.tracker.yandex.net/v3/entities/project/<project_ID>/comments?expand=all
> ```

## Response format {#answer}

{% list tabs %}

- Request executed successfully

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

  The response body contains information about entity comments in JSON format.

  ```json translate=no
  [
      {
          "self": "https://api.tracker.yandex.net/v3/entities/project/6586d6fee2b9ef74********/comments/15",
          "id": 15,
          "longId": "65a156a29d5d2000********",
          "text": "Comment **number one.**",
          "textHtml": "<p>Comment <strong>number one.</strong></p>\n",
          "attachments": [
              {
                  "self": "https://api.tracker.yandex.net/v3/entities/project/6586d6fee2b9ef74********/attachments/25",
                  "id": "25",
                  "display": "image.jpg"
              }
          ],
          "createdBy": {
              "self": "https://api.tracker.yandex.net/v3/users/11********",
              "id": "11********",
              "display": "User Name",
              "cloudUid": "ajeppa7dgp53********",
              "passportUid": 11********
          },
          "updatedBy": {
              "self": "https://api.tracker.yandex.net/v3/users/11********",
              "id": "11********",
              "display": "User Name",
              "cloudUid": "ajeppa7dgp53********",
              "passportUid": 11********
          },
          "createdAt": "2024-01-12T15:11:30.278+0000",
          "updatedAt": "2024-01-12T16:33:35.988+0000",
          "usersReacted": {
              "like": [
                  {
                      "self": "https://api.tracker.yandex.net/v3/users/11********",
                      "id": "11********",
                      "display": "User Name",
                      "cloudUid": "ajeppa7dgp71********",
                      "passportUid": 11********
                  }
              ]
          },
          "ownReactions": ["like"],
          "summonees": [
              {
                  "self": "https://api.tracker.yandex.net/v3/users/11********",
                  "id": "11********",
                  "display": "User Name",
                  "cloudUid": "ajeppa7dgp32********",
                  "passportUid": 11********
              }
          ],
          "version": 3,
          "type": "standard",
          "transport": "internal"
      }
  ]
  ```


  {% cut "Response parameters" %}

  | Parameter | Description | Data type |
  ----- | ----- | -----
  | self | Link to the comment object. | String |
  | id | Comment ID. | Number |
  | longId | Comment ID as a string. | String |
  | text | Text of the comment. | String |
  | textHtml | Comment HTML markup | String |
  | attachments | Attached files | String |
  | [createdBy](#created-by) | Object with information about the author of the comment | Map object |
  | [updatedBy](#updated-by) | Object with information about the last user to have updated the comment | Map object |
  | createdAt | Comment creation date and time in the format:<br/>```YYYY-MM-DDThh:mm:ss.sss±hhmm ``` | String |
  | updatedAt | Comment update date and time in the format:<br/>```YYYY-MM-DDThh:mm:ss.sss±hhmm ```. | String |
  | [usersReacted](#users-reacted) | User reactions (present in the response if the `expand` parameter in the request is set to `all` or `reactions`):<ul><li>`like`</li><li>`dislike`</li><li>`laugh`</li><li>`tada`</li><li>`hooray`</li><li>`confused`</li><li>`heart`</li><li>`rocket`</li><li>`eyes`</li><li>`fire`</li><li>`ok`</li><li>`facepalm`</li><li>`check`</li></ul> | Object with a list of reactions and responders |
  | reactionsCount | Number of reactions (present in the response if the `expand` parameter in the request is not set to `all` or `reactions`). | Object with a list and number of reactions |
  | ownReactions | Reactions of the comment author:<ul><li>`like`</li><li>`dislike`</li><li>`laugh`</li><li>`tada`</li><li>`hooray`</li><li>`confused`</li><li>`heart`</li><li>`rocket`</li><li>`eyes`</li><li>`fire`</li><li>`ok`</li><li>`facepalm`</li><li>`check`</li></ul> | List of strings |
  | summonees | IDs or usernames of summoned users. | Array of objects or strings |
  | maillistSummonees | List of mailing lists mentioned in the comment. | Array of strings |
  | version | Comment version. Each update increases the comment's version number. | Number |
  | type | Comment type:<ul><li>`standart`: Comment sent via the Yandex Tracker interface.</li><li>`incoming`: Comment created from an incoming message.</li><li>`outcoming`: Comment created from an outgoing message.</li></ul> | String |
  | transport | Method of adding a comment:<ul><li>`internal`: Via the Yandex Tracker interface.</li><li>`email`: Via email.</li></ul> | String |

  `createdBy` **object fields** {#created-by}

  <!-- source: en/api-ref/_includes/user.md -->
  | Parameter | Description | Data type |
  ----- | ----- | -----
  | self | Address of the API resource with information about the user | String |
  | id | User ID. | String |
  | display | Displayed user name | String |
  | passportUid | Unique ID of the user account in the Yandex 360 for Business organization and Yandex ID. | Number |
  | cloudUid | Unique user ID in Yandex Identity Hub | String |
  <!-- endsource: en/api-ref/_includes/user.md -->

  `updatedBy` **object fields** {#updated-by}

  <!-- source: en/api-ref/_includes/user.md -->
  | Parameter | Description | Data type |
  ----- | ----- | -----
  | self | Address of the API resource with information about the user | String |
  | id | User ID. | String |
  | display | Displayed user name | String |
  | passportUid | Unique ID of the user account in the Yandex 360 for Business organization and Yandex ID. | Number |
  | cloudUid | Unique user ID in Yandex Identity Hub | String |
  <!-- endsource: en/api-ref/_includes/user.md -->

  `usersReacted` **object fields** {#users-reacted}

  <!-- source: en/api-ref/_includes/user.md -->
  | Parameter | Description | Data type |
  ----- | ----- | -----
  | self | Address of the API resource with information about the user | String |
  | id | User ID. | String |
  | display | Displayed user name | String |
  | passportUid | Unique ID of the user account in the Yandex 360 for Business organization and Yandex ID. | Number |
  | cloudUid | Unique user ID in Yandex Identity Hub | String |
  <!-- endsource: en/api-ref/_includes/user.md -->

  {% endcut %}

- Request failed

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

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

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

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

{% endlist %}

## Paginated display of entity comments {#pagination}

For paginated display of results, use an HTTP `GET` request.

```json translate=no
GET /v3/entities/<entity_type>/<entity_ID>/comments/_relative
Host: api.tracker.yandex.net
Authorization: OAuth <OAuth_token>
X-Org-ID or X-Cloud-Org-ID: <organization_ID>
```

Specify additional parameters in the query string:

#|
|| **Parameter** | **Description** | **Data type** ||
|| perPage | Defines the maximum number of comments in a response. The default value is 50. | Number ||
|| from | ID of the comment after which the list starts to be generated. The comment itself is not included in the list. Not used together with the `selected` parameter. | String ||
|| selected | ID of the comment around which the list is generated. Not specified together with the `from` parameter. The list is generated in the following order (for `perPage=5`):
1. Comment with the specified ID.
2. Comment preceding the first comment.
3. Comment following the first comment.
4. Comment preceding the second comment.
5. Comment following the third comment. | String ||
|| newCommentsOnTop | Reverses the order of comments in the list. The default value is `false`. | Boolean ||
|| direction | Determines the order of comments in the list:
* `forward` (default)
* `backward`: Inverts the `newCommentsOnTop` parameter value. | String ||
|#

If no parameters are specified, the full list of entities is displayed.

> Example: Getting a list of comments
>
> - An HTTP GET method is used.
> - The response displays information about three comments starting with `65a1bdbdb02b780b31********`.
>
> ```
> GET https://api.tracker.yandex.net/v3/entities/project/<project_ID>/comments/_relative?perPage=3&from=65a1bdb02b780b31********
> ```

## Response format with paginated comments {#answer-pagination}

{% list tabs %}

- Request executed successfully

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

  The response body contains information about entity comments in JSON format.

  ```json translate=no
  {
      "comments": [
          {
              "self": "https://api.tracker.yandex.net/v3/entities/project/65a1bdb02b780b31********/comments/22",
              "id": 22,
              "longId": "65a1bdb02b780b31********",
              "text": "Previous comment.",
              ...
          },
          {
              "self": "https://api.tracker.yandex.net/v3/entities/project/65a1bdb02b780b32********/comments/23",
              "id": 23,
              "longId": "65a1bdb02b780b32********",
              "text": "Specified comment.",
              ...
          },
          {
              "self": "https://api.tracker.yandex.net/v3/entities/project/65a1bdb02b780b33********/comments/24",
              "id": 24,
              "longId": "65a1bdb02b780b33********",
              "text": "Next comment.",
              ...
          }
      ],
      "hasNext": True,
      "hasPrev": True
  }
  ```


  {% cut "Response parameters" %}

  | Parameter | Description | Data type |
  ----- | ----- | -----
  | comments | List of comments. | List of objects |
  | hasNext | Indicates the presence of subsequent entries in the list. | Boolean |
  | hasPrev | Indicates the presence of previous entries in the list. | Boolean |

  {% endcut %}

- Request failed

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

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

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

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

{% endlist %}
