Типы статусов
Возвращает типы статусов — справочник значений status_id из записей графика: рабочий день, отпуск, больничный и другие. В ответе — и системные статусы, и кастомные статусы вашей организации.
Скоуп
Скоуп не требуется — это справочник без секретов, доступный любому валидному ключу организации, независимо от набора скоупов (см. Скоупы и права → Справочники без скоупа). Справочник нужен, чтобы интерпретировать записи графика, поэтому открыт без дополнительных условий.
Query-параметры
| Параметр | Обязателен | Описание |
|---|---|---|
limit |
нет | Целое 1..200, по умолчанию 100. |
cursor |
нет | Курсор meta.next_cursor предыдущего ответа — для следующей страницы. |
from/to, department_id и employee_id на этом ресурсе не поддержаны: передача любого из них → 400 validation_error (параметр отклоняется явно, а не игнорируется молча — см. Конвенции → Фильтры). Это справочник без временно́го измерения и без привязки к отделам.
Запрос
curl -s https://smengo.com/api/v1/status-types \
-H "Authorization: Bearer smg_live_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
С ограничением размера страницы:
curl -s "https://smengo.com/api/v1/status-types?limit=50" \
-H "Authorization: Bearer smg_live_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
Ответ
{
"data": [
{
"id": "c2e4a6b8-1d3f-4a5c-8e7b-9f0a1b2c3d4e",
"code": "work",
"label": { "ru": "Работает", "uk": "Працює", "en": "Working" },
"color": "#22c55e",
"counts_as_present": true,
"is_system": true,
"start_time": "09:00:00",
"end_time": "18:00:00"
},
{
"id": "d4f6a8c0-2e5b-4b7d-9a1c-6e8f0b2d4a86",
"code": "training",
"label": { "ru": "Обучение", "uk": "Навчання", "en": "Training" },
"color": "#818cf8",
"counts_as_present": false,
"is_system": false,
"start_time": null,
"end_time": null
}
],
"meta": { "next_cursor": null }
}
Поля ответа
| Поле | Тип | Описание |
|---|---|---|
id |
string (uuid) |
Уникальный идентификатор типа статуса; на него ссылается status_id в Записях графика. |
code |
string |
Машинный код статуса. Системные коды: work, vacation, sick, dayoff, late; кастомные статусы имеют собственные коды. |
label |
object |
Мультиязычное название по локалям, как есть: { "ru": …, "uk": …, "en": … }. Единственное поле-объект во всём v1 — все остальные поля API скалярные. |
color |
string |
Цвет статуса в hex (#22c55e); null не бывает. |
counts_as_present |
boolean |
Учитывается ли статус как присутствие: день с таким статусом считается отработанным (например, рабочий день — да, отпуск — нет). |
is_system |
boolean |
true — системный статус, общий для всех организаций; false — кастомный статус вашей организации. |
start_time |
string (HH:MM:SS) | null |
Опциональное дефолтное окно смены для статуса — начало, в таймзоне организации. |
end_time |
string (HH:MM:SS) | null |
Конец дефолтного окна; у статусов без времени оба поля null. |
Ответ содержит и системные статусы, и кастомные статусы вашей организации. Системные (is_system: true) общие для всех организаций; кастомные — только ваши: чужие кастомные статусы в ответ не попадают никогда.
Пагинация
Список отсортирован по sort_order, id — при этом само поле sort_order в data[] не отдаётся: сортировка по нему есть, а поля в ответе нет (в отличие от пресетов смен). Если статусов больше, чем limit, meta.next_cursor содержит курсор для следующей страницы; передайте его в cursor следующего запроса как есть:
curl -s "https://smengo.com/api/v1/status-types?limit=1&cursor=eyJrIjoxLCJpZCI6ImMyZTRhNmI4LTFkM2YtNGE1Yy04ZTdiLTlmMGExYjJjM2Q0ZSJ9" \
-H "Authorization: Bearer smg_live_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
meta.next_cursor равен null, когда статусов больше нет. Общие правила пагинации — в Конвенциях → Пагинация.
Что дальше
- Записи графика — где на статусы ссылается
status_id. - Пресеты смен — второй справочник для интерпретации графика.
- Организация — таймзона, в которой трактуются
start_time/end_time.