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

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

# Importing links

Use it to import links to other issues 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>/links/_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"%}

This 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 whose links are being imported.

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

{% endif %}

{% endnote %}

## Query format {#query}

To import links, use an HTTP `POST` request. Link parameters are passed in the request body in JSON format:

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

{
  "relationship": "relates",
  "issue": "TEST-2",
  "createdAt": "2017-08-29T12:34:41.740+0000",
  "createdBy": 11********,
  "updatedAt": "2017-09-07T11:24:31.140+0000",
  "updatedBy": 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 |
-------- | -------- | ----------
| relationship | Type of links between issues:<ul><li>`relates`: Simple link.</li><li>`is dependent by`: The current issue blocks the linked one.</li><li>`depends on`: The current issue depends on the linked one.</li><li>`is subtask for`: The current issue is a sub-issue of the linked one.</li><li>`is parent task for`: The current issue is a parent issue of the linked one.</li><li>`duplicates`: The current issue duplicates the linked one.</li><li>`is duplicated by`: The linked issue duplicates the current one.</li><li>`is epic of`: The current issue is an epic of the linked one. You can only set this type of link for Epic-type issues.</li><li>`has epic`: The linked issue is an epic of the current one. You can only set this type of link for Epic-type issues.</li><li>`clone`: The linked issue is a copy of the current one.</li><li>`original`: The current issue is a copy of the linked one.</li></ul> | String |
| issue | ID or key of the issue being linked. | String |
| createdAt | Link creation date and time `YYYY-MM-DDThh:mm:ss.sss±hhmm` format. You can specify a value in the interval from the time of creation to the time the issue being linked was last updated. | String |
| createdBy | Username or ID of the user who created the link. | <ul><li>String for the username</li><li>Number for the ID</li></ul> |

**Additional parameters**

| Parameter | Description | Data type |
-------- | -------- | ----------
| updatedAt | Date and time when the link was last updated. `YYYY-MM-DDThh:mm:ss.sss±hhmm` format. You can specify a value in the interval from the time of creation to the time the issues being linked were 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 link 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/links/47*****",
            "id": 47*****,
            "type": {
                "self": "https://api.tracker.yandex.net/v3/linktypes/subtask",
                "id": "subtask",
                "inward": "Sub-issue",
                "outward": "Parent issue"
            },
            "direction": "outward",
            "object": {
                "self": "https://api.tracker.yandex.net/v3/issues/TREK-9844",
                "id": "593cd211ef7e8a33********",
                "key": "TREK-9844"
                "display": "subtask"
            },
            "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:16:01.421+0000",
            "updatedAt": "2017-06-11T05:16:01.421+0000",
            "assignee": {
                "self": "https://api.tracker.yandex.net/v3/users/11********",
                "id": "11********",
                "display": "Ivan Ivanov"
            },
            "status": {
                "self": "https://api.tracker.yandex.net/v3/statuses/1",
                "id": "1",
                "key": "open",
                "display": "Open"
            }
        }
    ```
    {% cut "Response parameters" %}

    | Parameter | Description | Data type |
    -------- | -------- | ----------
    | self | Address of the API resource with information about the link. | String |
    | id | Link ID. | Number |
    | [type](#type) | Block with information about the link type. | Map item |
    | sdirection | Link type of the issue specified in the request in relation to the issue specified in the [object](#resp-object-param) field. Possible values:<ul><li>`outward`: The issue specified in the request is the main one for the issue in the [object](#resp-object-param) field.</li><li>`inward`: The issue specified in the [object](#resp-object-param) field is the main one for the issue in the request.</li></ul> | String |
    | [object](#object) | Block with information about the linked issue. | Map item |
    | [createdBy](#createdBy) | Block with information about the user who created the link. | Map item |
    | [updatedBy](#updatedBy) | Block with information about the user who edited the linked issue last. | Map item |
    | createdAt | Link creation date and time | String |
    | updatedAt | Link update date and time. | String |
    | [assignee](#assignee) | Assignee of the linked issue. | Map item |
    | [status](#status) | Status of the linked issue. | Object |

    `type` **object fields** {#type}

    | Parameter | Description | Data type |
    -------- | -------- | ----------
    | self | Link to the link type. | String |
    | id | ID of the link type. | String |
    | inward | Name of the link type of the issue specified in the [object](#resp-object-param) field in relation to the issue specified in the request. | String |
    | outward | Name of the link type of the issue specified in the request in relation to the issue specified in the [object](#resp-object-param) field. | String |

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

    | Parameter | Description | Data type |
    -------- | -------- | ----------
    | self | Address of the API resource with information about the issue. | String |
    | id | Issue ID. | String |
    | key | Issue key. | String |
    | display | Issue name displayed. | String |

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

    | 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 |

    `assignee` **object fields** {#asignee}

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

    `status` **object fields** {#status}

    | Parameter | Description | Data type |
    -------- | -------- | ----------
    | self | Status link. | String |
    | id | Status ID. | String |
    | key | Status key. | String |
    | display | Status name displayed. | 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 %}
```