---
metadata:
  - name: generator
    content: Diplodoc Platform v5.52.0
  - 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/gaps/post-gaps.md
  - https://yandex.ru/support/tracker/ru/api-ref/gaps/post-gaps.md
  - href: ru/api-ref/gaps/post-gaps.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.ru/support/tracker/ru/llms.txt


# Создать отсутствия сотрудников

Запрос позволяет создать записи об отсутствии сотрудников (отпуска, больничные, дежурства и другие). Отсутствия отображаются на аватарках пользователей и на диаграмме ресурсов в портфелях и проектах.

<div class="request_example method_post yfm-clipboard">
    <p>POST</p>
    <pre><code>https://api.tracker.yandex.net/v3/gaps</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: ru/api-ref/_assets/style/methods.md -->

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

## Формат запроса {#query}

Перед выполнением запроса [получите доступ к API](https://yandex.ru/support/tracker/ru/api-ref/access.md).

<!-- source: ru/api-ref/_includes/query-admin.md -->
{% note info "" %}

Для выполнения запроса требуются права [администратора](https://yandex.ru/support/tracker/ru/role-model.md#admin).

{% endnote %}
<!-- endsource: ru/api-ref/_includes/query-admin.md -->

Чтобы создать запись об отсутствии сотрудников, используйте HTTP-запрос с методом `POST`. В теле запроса укажите параметры в формате JSON.

```json translate=no
POST /v3/gaps
Host: api.tracker.yandex.net
Authorization: OAuth <OAuth-токен>
Content-Type: application/json
X-Org-ID или X-Cloud-Org-ID: <идентификатор_организации>

{
  "gaps": [
    {
      "id": "<идентификатор_отсутствия>",
      "user": "<логин_пользователя>",
      "workflow": "<тип_отсутствия>",
      "from": "<дата_начала>",
      "to": "<дата_окончания>",
      "fullDay": true,
      "workInAbsence": false
    }
  ]
}
```

<!-- source: ru/api-ref/_includes/headings.md -->
{% cut "Заголовки" %}

* `Host`: адрес узла, предоставляющего API.

* <!-- source: ru/api-ref/_includes/authorization.md -->
  `Authorization`: токен для авторизации в одном из форматов:

    - `OAuth <OAuth-токен>` при авторизации по протоколу OAuth 2.0. [Читать подробнее](https://yandex.ru/support/tracker/ru/api-ref/access.md#about_OAuth)

    - `Bearer <IAM-токен>` при авторизации с помощью IAM-токена — если к Трекеру привязана организация Yandex Identity Hub. [Читать подробнее](https://yandex.ru/support/tracker/ru/api-ref/access.md#iam-token)
  <!-- endsource: ru/api-ref/_includes/authorization.md -->

* <!-- source: ru/api-ref/_includes/content-type-json.md -->
  `Content-Type`: формат тела запроса. Должен иметь значение `application/json`.
  <!-- endsource: ru/api-ref/_includes/content-type-json.md -->


* <!-- source: ru/api-ref/_includes/org-id.md -->
  `X-Org-ID` или `X-Cloud-Org-ID`: идентификатор организации.

  - если к Трекеру привязана организация Яндекс 360 для бизнеса, используйте заголовок `X-Org-ID`,

  - если к Трекеру привязана организация Yandex Identity Hub, используйте заголовок `X-Cloud-Org-ID`.
  <!-- endsource: ru/api-ref/_includes/org-id.md -->

  <!-- source: ru/api-ref/_includes/org-id.md -->
  Чтобы узнать идентификатор организации, перейдите на страницу **Администрирование** → [**Организации**](https://tracker.yandex.ru/admin/orgs) и скопируйте значение поля **идентификатор**.
  <!-- endsource: ru/api-ref/_includes/org-id.md -->


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

{% cut "Параметры тела запроса" %}

**Обязательные параметры**

Параметр | Описание | Тип данных
----- | ----- | -----
gaps | Массив записей об отсутствии. Максимальное количество элементов — 100 | Массив объектов

**Поля объектов массива** `gaps`

**Обязательные параметры**

Параметр | Описание | Тип данных
----- | ----- | -----
user | Логин или идентификатор пользователя | Строка
workflow | Тип отсутствия. Возможные значения: `vacation` — отпуск, `paid_day_off` — оплачиваемый выходной, `illness` — болезнь, `absence` — отсутствие (общее), `trip` — командировка, `conference_trip` — поездка на конференцию, `conference` — конференция, `learning` — обучение, `maternity` — декрет, `duty` — дежурство. Актуальный список доступен через запрос `GET /v3/gaps/workflows` | Строка
from | Дата и время начала отсутствия в формате ISO 8601. Должно быть меньше `to` | Строка
to | Дата и время окончания отсутствия в формате ISO 8601. Должно быть больше `from` | Строка

**Дополнительные параметры**

Параметр | Описание | Тип данных
----- | ----- | -----
id | Идентификатор отсутствия. Если не передан, генерируется автоматически. Максимальная длина — 128 символов | Строка
fullDay | Признак полного дня. По умолчанию — `false` | Логический
workInAbsence | Признак работы во время отсутствия. По умолчанию — `false` | Логический

{% endcut %}

> Пример: Создать два отсутствия для разных пользователей
>
> - Используется HTTP-метод POST.
> - Для пользователя `username1` создается отпуск с 1 по 15 июля 2026 года на полный день с явно указанным идентификатором `68340a1f2b4c1a3d5e7f9011`.
> - Для пользователя `username2` создается командировка с 10 по 20 июля 2026 года, идентификатор будет сгенерирован автоматически.
>
> ```json translate=no
> POST /v3/gaps
> Host: api.tracker.yandex.net
> Authorization: OAuth y0__xAbc******
> X-Org-ID: 1234******
>
>{
>  "gaps": [
>    {
>      "id": "68340a1f2b4c1a3d5e7f9011",
>      "user": "username1",
>      "workflow": "vacation",
>      "from": "2026-07-01T00:00:00.000Z",
>      "to": "2026-07-15T00:00:00.000Z",
>      "fullDay": true,
>      "workInAbsence": false
>    },
>    {
>      "user": "username2",
>      "workflow": "trip",
>      "from": "2026-07-10T00:00:00.000Z",
>      "to": "2026-07-20T00:00:00.000Z"
>    }
>  ]
>}
> ```

## Формат ответа {#answer}

{% list tabs %}

- Запрос выполнен успешно

    <!-- source: ru/api-ref/_includes/answer-200.md -->
    В случае успешного выполнения запроса API возвращает ответ с кодом `200 OK`.
    <!-- endsource: ru/api-ref/_includes/answer-200.md -->

    Тело ответа содержит результаты в формате JSON. Возвращаются только фактически сохраненные записи (устаревшие записи не включаются).

    ```json translate=no
    {
      "gaps": [
        {
          "id": "68340a1f2b4c1a3d5e7f9011",
          "user": {
            "self": "https://api.tracker.yandex.net/v3/users/1234567890123456",
            "uid": 1234567890123456,
            "login": "username1",
            "trackerUid": 1234567890123456,
            "passportUid": 1234567890,
            "cloudUid": "ajehs6sinuiii1234567",
            "firstName": "Имя",
            "lastName": "Фамилия",
            "display": "Иван Иванов",
            "email": "username@example.com",
            "external": false,
            "dismissed": false,
            "firstLoginDate": "2024-04-10T10:15:47.272+0000",
            "lastLoginDate": "2026-07-23T08:11:01.861+0000",
            "sources": [
              "directory"
            ]
          },
          "workflow": "vacation",
          "from": "2026-07-01T00:00:00.000+0000",
          "to": "2026-07-15T00:00:00.000+0000",
          "fullDay": true,
          "workInAbsence": false
        },
        {
          "id": "68340a1f2b4c1a3d5e7f9012",
          "user": {
            "self": "https://api.tracker.yandex.net/v3/users/9876543210987654",
            "uid": 9876543210987654,
            "login": "username2",
            "trackerUid": 9876543210987654,
            "passportUid": 9876543210,
            "cloudUid": "ajehs6sinuiii9876543",
            "firstName": "Имя",
            "lastName": "Фамилия",
            "display": "Петр Петров",
            "email": "username@example.com",
            "external": false,
            "dismissed": false,
            "firstLoginDate": "2024-03-05T09:00:00.000+0000",
            "lastLoginDate": "2026-07-22T17:30:00.000+0000",
            "sources": [
              "directory"
            ]
          },
          "workflow": "trip",
          "from": "2026-07-10T00:00:00.000+0000",
          "to": "2026-07-20T00:00:00.000+0000",
          "fullDay": false,
          "workInAbsence": false
        }
      ]
    }
    ```

    {% cut "Параметры ответа" %}

    Параметр | Описание | Тип данных
    ----- | ----- | -----
    gaps | Массив сохраненных записей об отсутствии | Массив объектов

    **Поля объектов массива** `gaps`

    Параметр | Описание | Тип данных
    ----- | ----- | -----
    id | Идентификатор записи об отсутствии | Строка
    [user](#user) | Объект с информацией о пользователе | Объект
    workflow | Тип отсутствия | Строка
    from | Дата и время начала отсутствия в формате ISO 8601 | Строка
    to | Дата и время окончания отсутствия в формате ISO 8601 | Строка
    fullDay | Признак полного дня | Логический
    workInAbsence | Признак работы во время отсутствия | Логический

    **Поля объекта** `user` {#user}

    Параметр | Описание | Тип данных
    ----- | ----- | -----
    self | Адрес ресурса API, который содержит информацию о пользователе | Строка
    uid | Уникальный идентификатор пользователя | Число
    login | Логин пользователя | Строка
    trackerUid | Идентификатор пользователя в Трекере | Число
    passportUid | Уникальный идентификатор аккаунта пользователя в Яндекс ID | Число
    cloudUid | Уникальный идентификатор пользователя в Yandex Identity Hub | Строка
    firstName | Имя пользователя | Строка
    lastName | Фамилия пользователя | Строка
    display | Отображаемое имя пользователя | Строка
    email | Адрес электронной почты пользователя | Строка
    external | Признак внешнего пользователя | Логический
    dismissed | Признак уволенного сотрудника | Логический
    firstLoginDate | Дата и время первого входа пользователя в систему | Строка
    lastLoginDate | Дата и время последнего входа пользователя в систему | Строка
    sources | Источники данных пользователя. Возможные значения: `directory` — профиль получен из корпоративного каталога организации; `tracker` — пользователь добавлен напрямую в Трекере | Массив строк

    {% endcut %}

- Запрос выполнен с ошибкой

    Если запрос не был успешно обработан, API возвращает ответ с кодом ошибки:

    <!-- source: ru/api-ref/_includes/answer-error-401.md -->
    401
    :   Пользователь не авторизован. Проверьте, были ли выполнены действия, описанные в разделе [Доступ к API](https://yandex.ru/support/tracker/ru/api-ref/access.md).
    <!-- endsource: ru/api-ref/_includes/answer-error-401.md -->

    <!-- source: ru/api-ref/_includes/answer-error-403.md -->
    403
    :   У вас не хватает прав на выполнение этого действия. Наличие прав можно перепроверить в интерфейсе Трекера — для выполнения действия при помощи API и через интерфейс требуются одинаковые права.
    <!-- endsource: ru/api-ref/_includes/answer-error-403.md -->

    <!-- source: ru/api-ref/_includes/answer-error-422.md -->
    422 
    :   Ошибка валидации JSON, запрос отклонен.
    <!-- endsource: ru/api-ref/_includes/answer-error-422.md -->

    {% note info "" %}

    Код `422` возвращается в следующих случаях:
    - в запросе есть дублирующиеся значения `id`;
    - значение `from` больше или равно `to`;
    - пользователь не найден;
    - количество элементов в массиве `gaps` превышает 100.

    {% endnote %}

    <!-- source: ru/api-ref/_includes/answer-error-500.md -->
    500
    :   Внутренняя ошибка сервиса. Попробуйте повторно отправить запрос через некоторое время.
    <!-- endsource: ru/api-ref/_includes/answer-error-500.md -->

{% endlist %}
