---
metadata:
  - name: generator
    content: Diplodoc Platform v5.47.3
  - property: og:type
    content: article
  - property: article:section
    content: API Reference
  - property: og:title
    content: Attach a file to an issue
  - property: article:tag
    content: Technical instruction
alternate:
  - https://yandex.com.tr/support/tracker/en/api-ref/issues/post-attachment.md
---
> **Documentation Index:** Fetch the complete configuration index at https://yandex.com.tr/support/tracker/en/llms.txt


# Attach a file to an issue

Use this request to attach a file to an issue. The file will appear in the **Attachments** tab on the issue page.

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

## 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 attach a file, use an HTTP `POST` request:

```json translate=no
POST /v3/issues/<issue_ID>/attachments/
Host: api.tracker.yandex.net
Authorization: OAuth <OAuth_token>
Content-Type: multipart/form-data
X-Org-ID or X-Cloud-Org-ID: <organization_ID>

<file>
```

{% 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 -->
  <!-- source: en/_includes/api/org-id.md -->
  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 -->


- `Content-Type`: Request body format. The required value is `multipart/form-data`.

{% endcut %}

{% cut "Resource" %}

| Parameter | Description | Data type |
| ----- | ----- | ----- |
| \<issue_ID\> | Issue ID or key | String |

{% endcut %}

{% cut "Request parameters" %}

**Additional parameters**

| Parameter | Description | Data type |
| ----- | ----- | ----- |
| filename | New name that a file will be stored on the server under. If the parameter is not specified, a custom file name is used. | String |


{% endcut %}

{% cut "Request body parameters" %}

**Required parameters**

| Parameter | Description | Data type |
| ----- | ----- | ----- |
| \<file\> | Uploaded file. The file size may not exceed 1024 Mbit. | File |

{% endcut %}

## Example request {#example}

Example of adding an attachment to an issue using curl:

{% list tabs %}

- Unix

   ```bash
   curl -X POST 'https://api.tracker.yandex.net/v3/issues/<issue_ID>/attachments/' \
        -H 'Authorization: OAuth y0__xAbc******' \
        -H 'Content-Type: multipart/form-data' \
        -H 'X-Org-ID: 1234******' \
        --form 'file=@/path/to/image.png'
   ```

- Windows

   ```bash
   curl.exe -X POST "https://api.tracker.yandex.net/v3/issues/<issue_ID>/attachments/" ^
     -H "Authorization: OAuth y0__xAbc******" ^
     -H "Content-Type: multipart/form-data" ^
     -H "X-Org-ID: 1234******" ^
     --form "file=@C:\Users\Default\Downloads\image.png"
   ```

{% endlist %}

## 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 the parameters of the attached file in JSON format.

    ```json translate=no
    {
      "self" : "https://api.tracker.yandex.net/v3/issues/JUNE-2/attachments/123***",
      "id" : "123***",
      "name" : "picture.jpg",
      "content" : "https://api.tracker.yandex.net/v3/issues/JUNE-2/attachments/123***/picture.jpg",
      "thumbnail" : "https://api.tracker.yandex.net/v3/issues/JUNE-2/thumbnails/123***",
      "createdBy": {
          "self": "https://api.tracker.yandex.net/v3/users/11********",
          "id": "11********",
          "display": "User Name",
          "cloudUid": "ajeppa7dgp53********",
          "passportUid": 11********
      },
      "createdAt" : "2017-06-11T05:11:12.347+0000",
      "mimetype" : "image/jpg",
      "size" : 19090,
      "metadata" : {
        "size" : "550x175"
      }
    }
    ```

    {% cut "Response parameters" %}


    | Parameter | Description | Data type |
    | ----- | ----- | ----- |
    | self | Address of the API resource corresponding to the attached file | String |
    | id | File's unique ID | String |
    | name | File name | String |
    | content | Address of the resource to download the file from | String |
    | thumbnail | Address of the resource to download the preview thumbnail from; available for image files only | String |
    | [createdBy](#createdBy) | Object with information about the user who attached the file | Map object |
    | createdAt | Date and time when the file is uploaded, in <br/>```YYYY-MM-DDThh:mm:ss.sss±hhmm``` format | String |
    | mimetype | File type, for example:<ul><li>`text/plain`: Text file</li><li>`image/png`: Image in PNG format</li></ul> | String |
    | size | File size in bytes | Integer |
    | [metadata](#metadata) | Object with file metadata | Map object |


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

    | Parameter | Description | Data type |
    | ----- | ----- | ----- |
    | self | Address of the resource corresponding to the user who uploaded the file | String |
    | id | Username of the user | String |
    | display | User's name (as in the interface) | String |

    `metadata` **object fields** {#metadata}

    | Parameter | Description | Data type |
    | ----- | ----- | ----- |
    | size | Image size in pixels | 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-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 -->

{% endlist %}