External API: обновление статуса в расписании
Этот endpoint External API позволяет вашей HR- или WFM-системе устанавливать статус сотрудника в расписании UnSpot — например, отмечать удалённую работу или отсутствие (отпуск, больничный) на конкретный день.
Аутентификация
Создайте API-подключение типа User schedule в разделе Администрирование > Интеграции > External API и скопируйте токен. Передавайте его в каждом запросе:
Authorization: Bearer <token>Запросы без действительного токена возвращают 401. При превышении лимита запросов API возвращает 429 с заголовком Retry-After.
Обновление статуса — POST /api/external/v1/user-schedule
| Поле тела | Тип | Обязательно | Описание |
|---|---|---|---|
userEmail | string | да | Email пользователя UnSpot (архивированные и деактивированные не находятся) |
date | string | да | День, к которому относится статус, формат YYYY-MM-DD |
statusType | string | нет | REMOTE_WORK или NOT_WORKING. Если не передан или null — статус на эту дату сбрасывается. |
statusName | string | нет | Название статуса, до 128 символов (например, «Отпуск») |
statusCode | string | нет | Короткий код в расписании, до 6 символов (например, «ОТП») |
Если передаёте statusName или statusCode, все три поля — statusName, statusCode и statusType — должны быть указаны вместе.
Пример: удалённая работа
curl -X POST -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
https://acme.unspot.ru/api/external/v1/user-schedule \
-d '{
"userEmail": "anna.ivanova@example.com",
"date": "2026-07-10",
"statusType": "REMOTE_WORK"
}'Пример: именованное отсутствие
{
"userEmail": "anna.ivanova@example.com",
"date": "2026-07-13",
"statusType": "NOT_WORKING",
"statusName": "Отпуск",
"statusCode": "ОТП"
}Пример: сброс статуса
{ "userEmail": "anna.ivanova@example.com", "date": "2026-07-10" }Ответ: 200 с сообщением об успехе; изменение сразу видно в расписании пользователя.
Ошибки и лимиты
- 400 —
Missing required field: userEmail/date;Invalid statusType value; правила совместности statusName/statusCode/statusType;User not found. - 401 — неверный токен.
- 429 — чаще 1 запроса в секунду на токен. Для массовых обновлений добавляйте задержку.