Найти отсутствия сотрудников
Запрос возвращает записи об отсутствии для указанных пользователей, которые пересекаются с заданным временным окном. Результат сгруппирован по пользователям.
POST
https://api.tracker.yandex.net/v3/gaps/_search
Формат запроса
Перед выполнением запроса получите доступ к API.
Для выполнения запроса требуются права администратора.
Чтобы найти записи об отсутствии сотрудников, используйте HTTP-запрос с методом POST. В теле запроса укажите параметры в формате JSON.
POST /v3/gaps/_search?page=1&perPage=20
Host: api.tracker.yandex.net
Authorization: OAuth <OAuth-токен>
Content-Type: application/json
X-Org-ID или X-Cloud-Org-ID: <идентификатор_организации>
{
"users": ["<логин_пользователя>"],
"from": "<дата_начала>",
"to": "<дата_окончания>"
}
Заголовки
-
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.
Чтобы узнать идентификатор организации, перейдите на страницу Администрирование → Организации и скопируйте значение поля идентификатор.
-
Параметры запроса
Дополнительные параметры
| Параметр | Описание | Тип данных |
|---|---|---|
| page | Номер страницы при постраничном выводе. По умолчанию — 1 |
Число |
| perPage | Количество пользователей на странице ответа. По умолчанию — 50 |
Число |
Параметры тела запроса
Обязательные параметры
| Параметр | Описание | Тип данных |
|---|---|---|
| users | Логины или идентификаторы пользователей, для которых нужно получить записи об отсутствии. Максимальное количество — 100 | Массив строк |
Дополнительные параметры
| Параметр | Описание | Тип данных |
|---|---|---|
| from | Начало временного окна поиска в формате ISO 8601. Если параметр не указан, используется текущий момент | Строка |
| to | Конец временного окна поиска в формате ISO 8601. Если указан, должен быть строго больше from |
Строка |
Пример: Найти отсутствия двух сотрудников за июль и август 2026 года
- Используется HTTP-метод POST.
- Поиск отсутствий для пользователей
username1(отпуск в июле) иusername2(командировка в августе) за период с 1 июля по 31 августа 2026 года.- Результаты выводятся на первой странице по 20 пользователей.
POST /v3/gaps/_search?page=1&perPage=20 Host: api.tracker.yandex.net Authorization: OAuth y0__xAbc****** X-Org-ID: 1234****** { "users": ["username1", "username2"], "from": "2026-07-01T00:00:00.000Z", "to": "2026-08-31T23:59:59.999Z" }
Формат ответа
В случае успешного выполнения запроса API возвращает ответ с кодом 200 OK.
Тело ответа содержит результаты в формате JSON. Каждый запрошенный пользователь присутствует в ответе; если у него нет отсутствий в заданном периоде, массив gaps будет пустым.
{
"userGaps": [
{
"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-01-10T10:15:47.272+0000",
"lastLoginDate": "2026-07-23T08:11:01.861+0000",
"sources": [
"directory"
]
},
"gaps": [
{
"id": "68340a1f2b4c1a3d5e7f9011",
"workflow": "vacation",
"from": "2026-07-01T00:00:00.000+0000",
"to": "2026-07-15T00:00:00.000+0000",
"fullDay": true,
"workInAbsence": false
}
]
},
{
"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"
]
},
"gaps": [
{
"id": "68340a1f2b4c1a3d5e7f9012",
"workflow": "trip",
"from": "2026-08-04T00:00:00.000+0000",
"to": "2026-08-08T00:00:00.000+0000",
"fullDay": true,
"workInAbsence": false
}
]
}
],
"hasMore": false
}
Параметры ответа
| Параметр | Описание | Тип данных |
|---|---|---|
| userGaps | Массив записей об отсутствии, сгруппированных по пользователям. Содержит по одному элементу для каждого запрошенного пользователя | Массив объектов |
| hasMore | Признак наличия следующей страницы результатов. Значение true означает, что есть еще страницы |
Логический |
Поля объектов массива userGaps
| Параметр | Описание | Тип данных |
|---|---|---|
| user | Объект с информацией о пользователе | Объект |
| gaps | Массив записей об отсутствии пользователя в указанном периоде. Пустой, если нет совпадений | Массив объектов |
Поля объекта user
| Параметр | Описание | Тип данных |
|---|---|---|
| self | Адрес ресурса API, который содержит информацию о пользователе | Строка |
| uid | Уникальный идентификатор пользователя | Число |
| login | Логин пользователя | Строка |
| trackerUid | Идентификатор пользователя в Трекере | Число |
| passportUid | Уникальный идентификатор аккаунта пользователя в Яндекс ID | Число |
| cloudUid | Уникальный идентификатор пользователя в Yandex Identity Hub | Строка |
| firstName | Имя пользователя | Строка |
| lastName | Фамилия пользователя | Строка |
| display | Отображаемое имя пользователя | Строка |
| Адрес электронной почты пользователя | Строка | |
| external | Признак внешнего пользователя | Логический |
| dismissed | Признак уволенного сотрудника | Логический |
| firstLoginDate | Дата и время первого входа пользователя в систему | Строка |
| lastLoginDate | Дата и время последнего входа пользователя в систему | Строка |
| sources | Источники данных пользователя. Возможные значения: directory — профиль получен из корпоративного каталога организации; tracker — пользователь добавлен напрямую в Трекере |
Массив строк |
Поля объектов массива gaps
| Параметр | Описание | Тип данных |
|---|---|---|
| id | Идентификатор записи об отсутствии | Строка |
| workflow | Тип отсутствия. Возможные значения: vacation — отпуск, paid_day_off — оплачиваемый выходной, illness — болезнь, absence — отсутствие (общее), trip — командировка, conference_trip — поездка на конференцию, conference — конференция, learning — обучение, maternity — декрет, duty — дежурство. Актуальный список доступен через запрос GET /v3/gaps/workflows |
Строка |
| from | Дата и время начала отсутствия в формате ISO 8601 | Строка |
| to | Дата и время окончания отсутствия в формате ISO 8601 | Строка |
| fullDay | Признак полного дня | Логический |
| workInAbsence | Признак работы во время отсутствия | Логический |
Если запрос не был успешно обработан, API возвращает ответ с кодом ошибки:
- 401
- Пользователь не авторизован. Проверьте, были ли выполнены действия, описанные в разделе Доступ к API.
- 403
- У вас не хватает прав на выполнение этого действия. Наличие прав можно перепроверить в интерфейсе Трекера — для выполнения действия при помощи API и через интерфейс требуются одинаковые права.
- 422
- Ошибка валидации JSON, запрос отклонен.
Код 422 возвращается в следующих случаях:
- массив
usersпустой; - количество элементов в массиве
usersпревышает 100; - значение
fromбольше или равноto; - один из указанных пользователей не найден.