Top.Mail.Ru
Центр помощи / Для администратора / 4. Интеграции / API и Webhooks / External API: получение истории бронирований

External API: получение истории бронирований

External API позволяет выгружать данные о бронированиях из UnSpot в ваши системы — BI-дашборды, facility management, расчёт зарплат или СБ. Эта страница описывает endpoint бронирований.

Аутентификация

Создайте API-подключение типа Bookings в разделе Администрирование > Интеграции > External API и скопируйте токен (доступно ролям Владелец и Администратор интеграций). Передавайте его в каждом запросе:

Authorization: Bearer <token>
HTTP

Запросы без действительного токена возвращают 401. При превышении лимита запросов API возвращает 429 с заголовком Retry-After.

Получение бронирований — GET /api/external/v1/bookings

Возвращает бронирования одного типа (столы, парковка или переговорные), у которых время начала попадает в запрошенный период. Сортировка по времени начала, новые сверху.

Параметр запросаТипОбязателенОписание
bookingTypestringдаDESK, PARKING или MEETING_ROOM
startDateintegerдаUnix timestamp (секунды). Бронирования, начинающиеся после этого момента.
endDateintegerдаUnix timestamp (секунды). Бронирования, начинающиеся до этого момента. Диапазон не более 92 дней.

Пример запроса

curl -H "Authorization: Bearer $TOKEN" \
  "https://acme.unspot.ru/api/external/v1/bookings?bookingType=DESK&startDate=1751328000&endDate=1751932800"
Bash

Пример ответа — 200

{
  "message": "OK",
  "body": {
    "items": [
      {
        "bookingStart": "2026-07-01 09:00:00",
        "bookingEnd": "2026-07-01 18:00:00",
        "duration": "09:00:00",
        "bookingOffice": "Штаб-квартира Москва",
        "ownerName": "Анна Иванова",
        "ownerEmail": "anna.ivanova@example.com",
        "ownerDepartment": "Engineering",
        "bookingPlace": "Стол 4.12",
        "guestName": null
      }
    ]
  }
}
JSON
Поле ответаОписание
bookingStart / bookingEndПериод бронирования, Y-m-d H:i:s
durationДлительность, HH:MM:SS
bookingOfficeНазвание офиса
ownerName / ownerEmailВладелец бронирования. Для гостевых бронирований — имя и email гостя.
ownerDepartmentОтдел владельца (null для гостей)
bookingPlaceНазвание стола, парковочного места или переговорной
guestNameИмя гостя для гостевых бронирований стола/парковки, иначе null

Ошибки и лимиты

Все ответы External API обёрнуты в конверт {"message": ..., "body": ...}. Ошибки возвращаются в формате:

{ "message": "Date range cannot exceed 92 days", "errors": [] }
JSON
  • 400bookingType must be one of: DESK, PARKING, MEETING_ROOM; startDate cannot be greater than endDate; Date range cannot exceed 92 days.
  • 401 — отсутствующий или неверный токен.
  • 429 — чаще одного запроса в 10 секунд на рабочее пространство; дождитесь Retry-After.

Совет: для выгрузки длинной истории перебирайте последовательные 92-дневные окна с интервалом 10 секунд между запросами.

Оставьте заявку, и мы свяжемся с вами в течение 30 минут.

Loading

Как улучшить работу офиса?

Оставьте контакт - покажем на демо как уйти от таблиц, двойных бронирований и путаницы с рабочими местами.

Loading