---
metadata:
  - name: generator
    content: Diplodoc Platform v5.50.6
  - 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-ref/issues/new-worklog.md
  - https://yandex.ru/support/tracker/ru/api-ref/issues/new-worklog.md
---
> **Documentation Index:** Fetch the complete configuration index at https://yandex.ru/support/tracker/en/llms.txt


# Adding a record of time spent

Use this request to add a record of the time spent on an issue.

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

{% note info "" %}

In Yandex Tracker, time spent is measured in business weeks (5 days) and business days (8 hours).

For example, if you transmit a time interval of 5 days (`P5D`), the request will return the value 1 week (`P1W`), which you will see when viewing the issue.

{% endnote %}

## Request format {#query}

To create records of time spent on issues, use an HTTP `POST` request. In the request body, specify the parameters in JSON format:

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

{
  "start": "2021-09-21T15:30:00.000+0500",
  "duration": "P5DT20M",
  "comment": "important comment"
}
```

<!-- 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.ru/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.ru/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 -->

{% cut "Resource" %}

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

{% endcut %}

{% cut "Request body parameters" %}

**Required parameters**

| Parameter | Description | Data type |
-------- | -------- | ----------
| start | Date and time when work on the issue started, in ```YYYY-MM-DDThh:mm:ss.sss±hhmm``` format | String |
| duration | Time spent, in ```PnYnMnDTnHnMnS, PnW``` format, according to the [ISO 8601](http://dotat.at/tmp/ISO_8601-2004_E.pdf).<br><br>To separate hours, minutes, and seconds, use the letter T.<br><br>For example, the value `P6W `corresponds to an interval of 6 weeks (30 business days), the value `PT300M` to an interval of 300 minutes (5 hours), and the value `P0Y0M30DT2H10M25S` to an interval of 30 days, 2 hours, 10 minutes, and 25 seconds. | String |

**Additional parameters**

| Parameter | Description | Data type |
-------- | -------- | ----------
| comment | Text of the comment to the record. The comment is saved to the [**Report on time spent**](../../user/reports.md#time-spent-report). | String |

{% endcut %}

## Response format {#answer}

{% list tabs %}

- Request executed successfully

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

    The response body contains a JSON object with a record of the time spent on the issue.

    ```json
    {
      "self": "https://api.tracker.yandex.net/v3/issues/TEST-324/worklog/1",
      "id": 1,
      "version": 1402121720882,
      "issue": {
        "self": "https://api.tracker.yandex.net/v3/issues/TEST-324",
        "id": "515ec9eae4b09cfa********",
        "key": "TEST-324",
        "display": "important issue"
      },
      "comment": "important comment",
      "createdBy": {
        "self": "https://api.tracker.yandex.net/v3/users/66********",
        "id": "veikus",
        "display": "Artem Veikus"
      },
      "updatedBy": {
        "self": "https://api.tracker.yandex.net/v3/users/66********",
        "id": "veikus",
        "display": "Artem Veikus"
      },
      "createdAt": "2021-09-28T08:42:06.258+0000",
      "updatedAt": "2021-09-28T08:42:06.258+0000",
      "start": "2021-09-21T10:30:00.000+0000",
      "duration": "P1WT20M"
    }
    ```

    {% cut "Response parameters" %}

    | Parameter | Description | Data type |
    -------- | -------- | ----------
    | self | Address of the API resource with a record of the time spent on the issue. | String |
    | id | ID of the record of time spent. | String |
    | version | Record version. Each change to the record increases its version number. | String |
    | [issue](#issue) | Block with issue details. | Map item |
    | comment | Text of the comment to the record. The comment is saved to the Time Spent report. | String |
    | [createdBy](#createdBy) | Object with information about the user who added the record. | Map item |
    | [updatedBy](#updatedBy) | Object with information about the user who edited the record. | Map item |
    | createdAt | Record creation date and time in ```YYYY-MM-DDThh:mm:ss.sss±hhmm``` format | String |
    | updatedAt | Record update date and time in ```YYYY-MM-DDThh:mm:ss.sss±hhmm``` format | String |
    | start | Date and time when work on the issue started, in ```YYYY-MM-DDThh:mm:ss.sss±hhmm``` format | String |
    | duration | Time spent, in ```PnYnMnDTnHnMnS, PnW``` format, according to the [ISO 8601](http://dotat.at/tmp/ISO_8601-2004_E.pdf) | String |

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

    | 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** {#createdBy}

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

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

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

    {% endcut %}

- Request failed

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

    <!-- 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-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/api-ref/_includes/answer-error-403.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 -->

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

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

{% endlist %}
