Live-токены
Токен вида st_live_… работает в продакшене. По умолчанию живёт 90 дней и может читать/писать статусы. Создаётся в разделе «API-ключи».
Всё, что нужно, чтобы подключить живые статусы к вашей CRM, SaaS или собственной системе: токены, методы, вебхуки, лимиты и обработка ошибок. Одна страница — и интеграция готова за вечер.
Все методы работают на https://api.statuso.ru/v2. Запросы и ответы — JSON в UTF-8. Заголовок Content-Type: application/json обязателен для тела. Все времена — в ISO 8601 с часовым поясом.
Базовый адрес. Простое окружение: https://api.statuso.ru/v2. Для партнёрских и корпоративных тарифов есть отдельный эндпоинт https://api.statuso.ru/v2/partner — тот же набор методов, но с расширенными лимитами.
Каждый ответ содержит поле request_id — его стоит логировать: при обращении в поддержку мы найдём запрос за секунды. В теле ответа нет лишних обёрток — только data и, при необходимости, meta.
{
"request_id": "req_8f3a1c",
"data": { "id": "st_4821", "open": true, "updated_at": "2025-02-14T18:05:00+03:00" },
"meta": { "version": "2.4" }
}
Статусо использует Bearer-токены. Токен создаётся в личном кабинете или через API, и у каждого есть своё время жизни и набор прав.
Токен вида st_live_… работает в продакшене. По умолчанию живёт 90 дней и может читать/писать статусы. Создаётся в разделе «API-ключи».
Токен st_test_… пишет только в песочнице — реальные каналы не трогаются. Не истекает, пока активен аккаунт. Идеален для CI и автотестов.
Каждому токену можно выдать права read, write или admin. Ротация — в один клик: старый токен живёт ещё 24 ч для плавного перехода.
Как передать токен
Добавьте заголовок Authorization: Bearer st_live_9f2a1c… к каждому запросу. Не храните токен в клиентском коде и не отправляйте его в теле. Если токен просрочен или не найден — вернём 401 с понятным сообщением.
Достаточно трёх-четырёх вызовов, чтобы управлять статусами полностью. Ниже — ключевые эндпоинты с примерами.
Обновить статус
PATCH https://api.statuso.ru/v2/statuses/br-4821
{
"text": "Открыто до 20:00 · запись онлайн",
"open": true,
"channels": ["whatsapp","telegram"],
"windows": ["18:30","19:10"]
}
Ответ 200: статус применён и рассинхронизирован на выбранные каналы в течение секунды. Можно передать только изменённые поля — остальное не затрётся.
Список статусов аккаунта с пагинацией. Параметры limit (до 100) и cursor. Удобно для синхронизации кеша.
Создать новый статус для канала или CRM-объекта. Вернёт 201 с идентификатором id и текущим updated_at.
Удалить статус и снять его с всех каналов. Вернёт 204 без тела. Повторное удаление — 404.
Параметры запроса
Принятые форматы: text до 1024 символов, open — булево, channels — массив из whatsapp и telegram, windows — массив строк HH:MM. Неизвестные поля игнорируются, чтобы не ломать совместимость при добавлении новых параметров.
Вместо опроса API можно подписаться на события: Статусо пришлёт POST-запрос на ваш URL, когда статус изменён, канал отвалился или завершилась синхронизация.
Срабатывает, когда текст, open или окна изменились. В теле — id, новое значение и updated_at. Приходит в течение 1 сек.
Если WhatsApp или Telegram не приняли обновление — пришлём событие с error_code и попыткой ретрая. Полезно для алертов в вашем мониторинге.
Финальное событие после того, как все выбранные каналы приняли изменение. Содержит итоговый state: ok или partial.
Подпись и безопасность
Каждый вебхук несёт заголовок X-Statuso-Signature — HMAC-SHA256 от тела с вашим секретом. Проверьте подпись перед обработкой. Ответьте 2xx в течение 5 сек; иначе мы повторим доставку по экспоненциальной ретраи до 24 часов. События доставляются в порядке очереди, без дублей.
Мы возвращаем понятные коды и всегда — поле request_id. Ниже — самые частые ситуации и как на них реагировать.
Коды ответов
400 — неверное тело или параметры; 401 — токен не найден или просрочен; 403 — токен не имеет нужного права; 404 — статус не существует; 409 — конфликт версий (данные уже изменились); 429 — превышены лимиты; 5xx — ошибка на нашей стороне.
При 429 или 5xx ждите интервал из заголовка Retry-After (или 1, 2, 4, 8 сек) и повторяйте. Максимум — 5 попыток, дальше лучше показать пользователю «обновим позже».
409 значит, что статус уже изменился с момента вашего чтения. Перечитайте updated_at, примените изменение поверх актуального и отправьте снова — без потери данных.
В каждом ответе есть request_id. Сохраняйте его рядом с вашим логируемым действием — поддержка найдёт полный след запроса и вебхуков за минуты.
Лимиты зависят от тарифа. Указаны ориентиры, чтобы вы спроектировали интеграцию без сюрпризов. Текущие значения — в личном кабинете на странице «Квоты».
Базовый тариф — до 600 запросов/мин, корпоративный — до 6 000. Превышение даёт 429 и заголовок Retry-After. Используйте батч-методы, чтобы снизить нагрузку.
Максимальный размер тела запроса — 32 КБ. Большие списки окон лучше отправлять частями через POST /statuses/{id}/windows с курсорами.
Батч-обновление до 50 статусов за один запрос считается одним вызовом для лимитов. Критичные события (закрытие) идут с приоритетом и обходят очереди.
Batch · priorityТестовый токен и OpenAPI-спецификация — без карты и долгих анкет. Подключите один канал и проверьте все методы за вечер.
Коротко о том, что спрашивают чаще всего при интеграции. Не нашли ответ — напишите в поддержку, отвечаем в течение дня.
Да. Файл openapi.json доступен на странице руководства и по адресу /v2/openapi.json. Он описывает все методы, параметры и коды ошибок, его можно вставить в Swagger или Postman.
Различают токены: st_test_… работает только в песочнице и не трогает реальные каналы, st_live_… — в продакшене. Базовый URL один, разница только в токенe.
Статус на каналах покажет последний известный актуальный вариант и плавно восстановится, когда данные вернутся. Клиенты не увидят «пусто», а вы получите событие channel.failed с деталями.
Есть официальные примеры на Python и Node.js в репозитории. API — чистый REST, поэтому подойдут любые HTTP-клиенты. Вебхуки подписываются HMAC-SHA256, примеры проверки — в документации.
После успешного запроса синхронизация идёт в течение секунды. Если канал временно недоступен, обновление ставится в очередь и применяется автоматически при восстановлении — данные не теряются.