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

```
---
title: "How to import comments"
description: "This article describes how to import comments."
---

# Importing comments

Use this request to import issue comments into Tracker.

<div class="request_example method_post yfm-clipboard">
    <p>POST</p>
    <pre><code>https://api.tracker.yandex.net/v3/issues/&lt;issue_ID>/comments/_import</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>

{% include [style-methods](../../_assets/style/methods.md) %}

{% note warning "" %}
{% if audience == "external"%}

The request can only be executed by an [administrator](https://yandex.com/support/tracker/role-model.html).

{% else %}

Before executing the request, make sure the user has permission to edit the issue into which you want to import the comments.

{% include [import-access](../../_includes/api/import-access.md) %}

{% endif %}

{% endnote %}

## Query format {#query}

To import a comment, use an HTTP `POST` request. Comment parameters are passed in the request body in JSON format:

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

{
  "text": "Test",
  "createdAt": "2017-08-29T12:34:41.740+0000",
  "createdBy": 11********
}
```

<!-- 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 "Resource" %}

| Parameter | Description | Data type |
--- | --- | ---
| \<issue_ID\> | Key of the issue to attach the file to. | String |

{% endcut %}

{% cut "Request body parameters" %}

**Required parameters**

| Parameter | Description | Data type |
-------- | -------- | ----------
| text | Text of the comment, no more than 512,000 characters. | String |
| createdAt | Comment creation date and time in `YYYY-MM-DDThh:mm:ss.sss±hhmm` format You can specify any value in the interval from the issue's creation time to its latest update. | String |
| createdBy | Username or ID of the user who made the comment. | <ul><li>String for the username</li><li>Number for the ID</li></ul> |

**Additional parameters**

| Parameter | Description | Data type |
-------- | -------- | ----------
| updatedAt | Date and time of the comment's last update in `YYYY-MM-DDThh:mm:ss.sss±hhmm` format. You can specify any value in the interval from the time of issue creation to the time it was last updated.<br/><br/>The parameter is only used together with the `updatedBy` parameter. | String |
| updatedBy | Username or ID of the user who edited the comment last.<br/><br/>The parameter is only used together with the `updatedAt` parameter. | <ul><li>String for the username</li><li>Number for the ID</li></ul> |

{% endcut %}

## Response format {#answer}

{% list tabs %}

- Request executed successfully

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

    The response body contains the parameters of the attached file in JSON format:

    ```json
    {
            "self": "https://api.tracker.yandex.net/v3/issues/JUNE-2/comments/9849****",
            "id": 9849****,
            "longId" : "5fa15a24ac894475********",
            "text": "Comment",
            "createdBy": {
                "self": "https://api.tracker.yandex.net/v3/users/11********",
                "id": "11********",
                "display": "Ivan Ivanov"
            },
            "updatedBy": {
                "self": "https://api.tracker.yandex.net/v3/users/11********",
                "id": "11********",
                "display": "Ivan Ivanov"
            },
            "createdAt": "2017-06-11T05:11:12.347+0000",
            "updatedAt": "2017-06-11T05:11:12.347+0000",
            "version": 1,
            "type" : "standard",
            "transport" : "internal"
    }
    ```

    {% cut "Response parameters" %}

    | Parameter | Description | Data type |
    -------- | -------- | ----------
    | self | Link to the comment object | String |
    | id | Comment ID | Number |
    | longId | ID of the comment in string format | String |
    | text | Text of the comment. | String |
    | [createdBy](#createdBy) | Object with information about the author of the comment | Map item |
    | [updatedBy](#updatedBy) | Object with information about the last user to have updated the comment | Map item |
    | 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 |
    | version | Comment version. Each update increases the comment's version number. | Number |
    | type | Comment type:<ul><li>**standard**: Comment sent via the 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 Tracker interface.</li><li>**email**: Via email.</li></ul> | String |

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

    | Parameter | Description | Data type |
    -------- | -------- | ----------
    | self | Link to the user. | String |
    | id | User ID. | String |
    | display | Displayed user name | String |

    `updatedBy` **object fields** {#updatedBy}

    | Parameter | Description | Data type |
    -------- | -------- | ----------
    | self | Link to the user. | String |
    | id | User ID. | String |
    | display | Displayed user name | String |

    {% endcut %}

- Request failed

    If the request is processed incorrectly, the API returns a message with error details:

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

    <!-- source: en/_includes/api/answer-error-500.md -->
    500
    :   Internal service error. Try again later.
    <!-- endsource: en/_includes/api/answer-error-500.md -->

    <!-- source: en/_includes/api/answer-error-503.md -->
    503
    :   The API service is temporarily unavailable.
    <!-- endsource: en/_includes/api/answer-error-503.md -->

{% endlist %}
```