#График работы
GET /v1/workday/schedule
Возвращает график работы по идентификатору. Параметр id обязателен. Если графика с указанным идентификатором не существует, возвращается пустой массив.
#Параметры
| Параметр | В | Тип | Обяз. | По умолч. | Описание |
|---|---|---|---|---|---|
id |
query | number | да | — | Идентификатор графика. Список графиков и их идентификаторы настраиваются в разделе учёта рабочего времени на портале Битрикс24 |
#Примеры
#curl — личный ключ
curl -H "X-Api-Key: YOUR_API_KEY" \
"https://vibecode.bitrix24.tech/v1/workday/schedule?id=1"
#curl — OAuth-приложение
curl -H "X-Api-Key: YOUR_APP_KEY" \
-H "Authorization: Bearer USER_SESSION_TOKEN" \
"https://vibecode.bitrix24.tech/v1/workday/schedule?id=1"
#JavaScript — личный ключ
const res = await fetch(
'https://vibecode.bitrix24.tech/v1/workday/schedule?id=1',
{ headers: { 'X-Api-Key': 'YOUR_API_KEY' } },
)
const { data } = await res.json()
if (Array.isArray(data) && data.length === 0) {
console.log('График не найден')
} else {
console.log('График:', data.name)
console.log('Тип:', data.scheduleType)
}
#JavaScript — OAuth-приложение
const res = await fetch(
'https://vibecode.bitrix24.tech/v1/workday/schedule?id=1',
{
headers: {
'X-Api-Key': 'YOUR_APP_KEY',
'Authorization': 'Bearer USER_SESSION_TOKEN',
},
},
)
const { data } = await res.json()
#Поля ответа
Когда график найден, data — объект со сведениями о графике. Когда график с указанным id отсутствует, data — пустой массив.
| Поле | Тип | Описание |
|---|---|---|
success |
boolean | true при успешном ответе |
data |
object | array | Объект графика или пустой массив [] для несуществующего идентификатора |
data.id |
number | Идентификатор графика |
data.name |
string | Название графика |
data.scheduleType |
string | Тип графика: FIXED (фиксированный), SHIFT (сменный), FLEXTIME (свободный) |
data.reportPeriod |
string | Периодичность отчётов: MONTH, WEEK, TWO_WEEKS, QUARTER |
data.reportPeriodOptions |
object | Дополнительные настройки периода отчётов (например, startWeekDay). Возвращается для всех значений reportPeriod |
data.calendarId |
number | Идентификатор календаря, связанного с графиком |
data.allowedDevices |
object | Разрешённые устройства учёта (browser, mobile). Каждое поле — boolean |
data.deleted |
string | "0" — график активен; "1" — график удалён |
data.isForAllUsers |
boolean | true — график применяется ко всем сотрудникам |
data.worktimeRestrictions |
array | Массив правил ограничений рабочего времени. Пустой массив — ограничений нет |
data.controlledActions |
number | Количество контролируемых действий по графику |
data.updatedBy |
number | Идентификатор пользователя, который последним обновил график. 0 — обновлений не было |
data.deletedBy |
number | Идентификатор пользователя, удалившего график. 0 — график не удалён |
data.deletedAt |
string | Дата и время удаления. Пустая строка — график не удалён |
data.createdBy |
number | Идентификатор пользователя, создавшего график. 0 — системное создание |
data.createdAt |
string | Дата и время создания (ISO 8601) |
data.shifts |
array | Массив объектов смен по графику |
data.shifts[].id |
number | Идентификатор смены |
data.shifts[].name |
string | Название смены |
data.shifts[].breakDuration |
number | Длительность перерыва в секундах (3600 = 1 час) |
data.shifts[].workTimeStart |
number | Время начала смены в секундах от начала суток (32400 = 09:00) |
data.shifts[].workTimeEnd |
number | Время завершения смены в секундах от начала суток (64800 = 18:00) |
data.shifts[].workDays |
string | Дни недели цифрами 1–7, где 1 = понедельник, 7 = воскресенье. "12345" — будние дни |
data.shifts[].scheduleId |
number | Идентификатор графика, к которому привязана смена |
data.shifts[].deleted |
boolean | Признак удалённой смены (boolean, в отличие от строкового data.deleted) |
data.calendar |
object | Сведения о календаре графика |
data.calendar.id |
number | Идентификатор календаря |
data.calendar.name |
string | Название календаря |
data.calendar.parentCalendarId |
number | Идентификатор родительского календаря |
data.calendar.systemCode |
string | Системный код календаря |
data.calendar.exclusions |
array | Список исключений календаря |
data.scheduleViolationRules |
object | Правила нарушения графика. Поля со значением -1 означают «параметр не задан» |
#Пример ответа
График с указанным идентификатором найден (тип FIXED, смена 09:00–18:00 пн-пт):
{
"success": true,
"data": {
"id": 9,
"name": "Фиксированный график",
"scheduleType": "FIXED",
"reportPeriod": "MONTH",
"reportPeriodOptions": { "startWeekDay": 0 },
"calendarId": 37,
"allowedDevices": { "browser": true, "mobile": true },
"deleted": "0",
"isForAllUsers": true,
"worktimeRestrictions": [],
"controlledActions": 3,
"updatedBy": 0,
"deletedBy": 0,
"deletedAt": "",
"createdBy": 1,
"createdAt": "2026-05-05T11:50:40+03:00",
"shifts": [
{
"id": 7,
"name": "",
"breakDuration": 3600,
"workTimeStart": 32400,
"workTimeEnd": 64800,
"workDays": "12345",
"scheduleId": 9,
"deleted": false
}
],
"calendar": {
"id": 37,
"name": "",
"parentCalendarId": 1,
"systemCode": "",
"exclusions": []
},
"scheduleViolationRules": {
"id": 11,
"scheduleId": 9,
"entityCode": "UA",
"maxExactStart": -1,
"minExactEnd": -1,
"maxOffsetStart": -1,
"minOffsetEnd": -1,
"relativeStartFrom": -1,
"relativeStartTo": -1,
"relativeEndFrom": -1,
"relativeEndTo": -1,
"minDayDuration": -1,
"maxAllowedToEditWorkTime": -1,
"maxWorkTimeLackForPeriod": -1,
"periodTimeLackAgentId": 0,
"maxShiftStartDelay": -1,
"missedShiftStart": 0,
"usersToNotify": {
"fixedStartEnd": [],
"fixedPerRecord": [],
"fixedEditWorktime": [],
"fixedPeriodic": [],
"shiftDelay": [],
"shiftMissedStart": []
}
}
}
}
График с указанным идентификатором не найден:
{
"success": true,
"data": []
}
#Пример ответа при ошибке
422 — параметр id не передан:
{
"success": false,
"error": {
"code": "BITRIX_ERROR",
"message": "Could not find value for parameter {id}"
}
}
#Ошибки
| HTTP | Код | Описание |
|---|---|---|
| 400 | INVALID_PARAMS |
Битрикс24 вернул INVALID_PARAMS — нарушена валидация поля запроса |
| 401 | MISSING_API_KEY |
Не передан заголовок X-Api-Key |
| 401 | INVALID_API_KEY |
Неверный API-ключ |
| 401 | KEY_EXPIRED |
Срок действия API-ключа истёк |
| 401 | TOKEN_MISSING |
Ключу не настроены OAuth-токены для портала |
| 402 | ACCOUNT_FROZEN |
Баланс портала заморожен |
| 403 | SCOPE_DENIED |
У ключа нет скоупа timeman |
| 422 | BITRIX_ERROR |
Битрикс24 отклонил запрос — текст в message (например, не передан id или у пользователя нет прав на просмотр графика) |
| 429 | RATE_LIMITED |
Превышен лимит запросов к Битрикс24 |
| 502 | BITRIX_UNAVAILABLE |
Портал Битрикс24 недоступен |
Полный список общих ошибок API — Ошибки.
#Известные особенности
- Тип поля
deletedразличается на разных уровнях ответа. На уровне графикаdata.deleted— строка ("0"/"1"), внутри сменыdata.shifts[].deleted— boolean (true/false). При написании клиентского кода нельзя обрабатывать оба поля одинаково.
#Смотрите также
- Настройки учёта —
GET /v1/workday/settings. - Текущий статус —
GET /v1/workday/status. - Рабочий день — обзор раздела.