Создать отсутствия сотрудников
Запрос позволяет создать записи об отсутствии сотрудников (отпуска, больничные, дежурства и другие). Отсутствия отображаются на аватарках пользователей и на диаграмме ресурсов в портфелях и проектах.
POST
https://api.tracker.yandex.net/v3/gaps
Формат запроса
Перед выполнением запроса получите доступ к API.
Для выполнения запроса требуются права администратора.
Чтобы создать запись об отсутствии сотрудников, используйте HTTP-запрос с методом POST. В теле запроса укажите параметры в формате JSON.
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
}
]
}
Заголовки
-
Host: адрес узла, предоставляющего API. -
Authorization: токен для авторизации в одном из форматов:-
OAuth <OAuth-токен>при авторизации по протоколу OAuth 2.0. Читать подробнее -
Bearer <IAM-токен>при авторизации с помощью IAM-токена — если к Трекеру привязана организация Yandex Identity Hub. Читать подробнее
-
-
Content-Type: формат тела запроса. Должен иметь значениеapplication/json. -
X-Org-IDилиX-Cloud-Org-ID: идентификатор организации.-
если к Трекеру привязана организация Яндекс 360 для бизнеса, используйте заголовок
X-Org-ID, -
если к Трекеру привязана организация Yandex Identity Hub, используйте заголовок
X-Cloud-Org-ID.
Чтобы узнать идентификатор организации, перейдите на страницу Администрирование → Организации и скопируйте значение поля идентификатор.
-
Параметры тела запроса
Обязательные параметры
| Параметр | Описание | Тип данных |
|---|---|---|
| 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 |
Логический |
Пример: Создать два отсутствия для разных пользователей
- Используется HTTP-метод POST.
- Для пользователя
username1создается отпуск с 1 по 15 июля 2026 года на полный день с явно указанным идентификатором68340a1f2b4c1a3d5e7f9011.- Для пользователя
username2создается командировка с 10 по 20 июля 2026 года, идентификатор будет сгенерирован автоматически.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" } ] }
Формат ответа
В случае успешного выполнения запроса API возвращает ответ с кодом 200 OK.
Тело ответа содержит результаты в формате JSON. Возвращаются только фактически сохраненные записи (устаревшие записи не включаются).
{
"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
}
]
}
Параметры ответа
| Параметр | Описание | Тип данных |
|---|---|---|
| gaps | Массив сохраненных записей об отсутствии | Массив объектов |
Поля объектов массива gaps
| Параметр | Описание | Тип данных |
|---|---|---|
| id | Идентификатор записи об отсутствии | Строка |
| user | Объект с информацией о пользователе | Объект |
| workflow | Тип отсутствия | Строка |
| from | Дата и время начала отсутствия в формате ISO 8601 | Строка |
| to | Дата и время окончания отсутствия в формате ISO 8601 | Строка |
| fullDay | Признак полного дня | Логический |
| workInAbsence | Признак работы во время отсутствия | Логический |
Поля объекта user
| Параметр | Описание | Тип данных |
|---|---|---|
| self | Адрес ресурса API, который содержит информацию о пользователе | Строка |
| uid | Уникальный идентификатор пользователя | Число |
| login | Логин пользователя | Строка |
| trackerUid | Идентификатор пользователя в Трекере | Число |
| passportUid | Уникальный идентификатор аккаунта пользователя в Яндекс ID | Число |
| cloudUid | Уникальный идентификатор пользователя в Yandex Identity Hub | Строка |
| firstName | Имя пользователя | Строка |
| lastName | Фамилия пользователя | Строка |
| display | Отображаемое имя пользователя | Строка |
| Адрес электронной почты пользователя | Строка | |
| external | Признак внешнего пользователя | Логический |
| dismissed | Признак уволенного сотрудника | Логический |
| firstLoginDate | Дата и время первого входа пользователя в систему | Строка |
| lastLoginDate | Дата и время последнего входа пользователя в систему | Строка |
| sources | Источники данных пользователя. Возможные значения: directory — профиль получен из корпоративного каталога организации; tracker — пользователь добавлен напрямую в Трекере |
Массив строк |
Если запрос не был успешно обработан, API возвращает ответ с кодом ошибки:
- 401
- Пользователь не авторизован. Проверьте, были ли выполнены действия, описанные в разделе Доступ к API.
- 403
- У вас не хватает прав на выполнение этого действия. Наличие прав можно перепроверить в интерфейсе Трекера — для выполнения действия при помощи API и через интерфейс требуются одинаковые права.
- 422
- Ошибка валидации JSON, запрос отклонен.
Код 422 возвращается в следующих случаях:
- в запросе есть дублирующиеся значения
id; - значение
fromбольше или равноto; - пользователь не найден;
- количество элементов в массиве
gapsпревышает 100.
- 500
- Внутренняя ошибка сервиса. Попробуйте повторно отправить запрос через некоторое время.