Полная документация в формате Markdown доступна по адресу /api-reference.md.
Statuser API (v1.0.0)
Официальный API для интеграции с платформой Statuser.
Statuser — сервис мониторинга доступности серверов, сайтов и приложений. С помощью публичного API вы можете интегрировать мониторинг в свою систему, управлять проверками, получать инциденты, настраивать уведомления и страницы статуса.
Аутентификация
Все запросы требуют аутентификации с помощью API ключа, который можно создать в <a href="https://statuser.cloud/my/account/api-keys" target="_blank" rel="noopener noreferrer">панели управления</a>. API ключ необходимо передавать в заголовке каждого запроса:
Authorization: Bearer <ваш токен>
Версионирование
Все эндпоинты и примеры в документации используют явную версию. Версионирование задаётся на уровне каждого эндпоинта и не является глобальным.
Версия указывается в пути запроса сразу после базового URL. Например:
GET /v1/account
Этот запрос обращается к первой версии метода получения данных об аккаунте.
API Statuser следует принципам семантического версионирования, при этом добавление новых полей в ответ может происходить без изменения версии эндпоинта.
Рекомендуется обрабатывать только нужные поля, а не весь ответ целиком. Не передавайте ответы API сторонним системам без валидации.
Разрабатывайте интеграции так, чтобы они были устойчивы к добавлению новых полей и не полагались на порядок ключей в JSON-объекте.
Ограничение частоты запросов
Чтобы обеспечить стабильность для всех пользователей, Statuser защищает API от всплесков входящего трафика, анализируя количество запросов c каждого аккаунта к каждой конечной точке.
В каждом ответе API возвращаются заголовки, содержащие информацию о текущем лимите:
| Заголовок | Описание |
|---|
ratelimit-limit | Максимальное количество запросов в рамках текущего окна |
ratelimit-policy | Политика лимитов, например 3000;w=900 означает 3000 запросов на 900 сек |
ratelimit-remaining | Количество оставшихся запросов в текущем окне |
ratelimit-reset | Через сколько секунд произойдёт сброс лимита |
Если лимит превышен, API вернёт ошибку в формате:
{
"status": 429,
"error_code": "too_many_requests"
"message": "Too many requests from this IP, try again later",
}
Для корректной работы с ограничениями частоты запросов используйте значение ratelimit-reset, чтобы отложить повторный запрос до завершения текущего окна лимита.
MCP-сервер
Для интеграции с AI-ассистентами (Claude, Cursor и другими клиентами, поддерживающими Model Context Protocol) Statuser предоставляет MCP-сервер. Он работает поверх публичного API и использует тот же API ключ для аутентификации.
Исходный код, инструкции по установке и примеры конфигурации доступны в репозитории <a href="https://github.com/statuser-cloud/mcp" target="_blank" rel="noopener noreferrer">github.com/statuser-cloud/mcp</a>. Готовый пакет опубликован в npm: <a href="https://www.npmjs.com/package/@statuser/mcp" target="_blank" rel="noopener noreferrer">npmjs.com/package/@statuser/mcp</a>.
Серверы
https://api.statuser.cloud
Аутентификация
bearer — http / bearer / JWT
Эндпоинты
Аккаунт
GET /v1/telegram/linked — Получить список привязанных Телеграм аккаунтов
Возвращает все Telegram-аккаунты и групповые чаты, привязанные к аккаунту Statuser, вместе с настройками: id чата, тип (личный/группа), username, аватар, флаг 2FA, выбранный топик и список доступных топиков для групп с supergroup-форумом. Используется в правилах нотификаций как канал доставки уведомлений.
Аутентификация: bearer
Ответы:
200 — Возвращает список привязанных аккаунтов Телеграм
PATCH /v1/telegram/set-topic — Установить топик для уведомлений
Привязывает уведомления Statuser к конкретному топику (message_thread_id) в Telegram-чате — обычно это нужно для групп с включёнными форум-топиками. Передайте telegram_id и message_thread_id; чтобы снять привязку и отправлять в общий чат, передайте message_thread_id: null. Доступные топики для конкретного чата можно увидеть в поле available_topics ответа GET /v1/telegram/linked.
Аутентификация: bearer
Ответы:
204 — Топик для уведомлений успешно установлен
GET /v1/account — Получить информацию об аккаунте
Возвращает профиль текущего аккаунта: id, email, имя, статус, аватар, дату создания, дату последней смены пароля, часовой пояс и флаг отображения AI-ассистента. Информация о тарифе и лимитах здесь не возвращается — для этого используйте GET /v1/billing/current-plan.
Аутентификация: bearer
Ответы:
200 — Информация об аккаунте успешно получена
application/json: object
id (number, пример: 1) required — ID аккаунта
email (string, пример: "user@example.com") required — Электронная почта пользователя
name (string, пример: "Иван Иванов") required — Имя пользователя
status (string, пример: "active") required — Статус аккаунта
avatar_url (object | null) required — URL аватара пользователя
created_at (string (date-time), пример: "2023-01-01T00:00:00.000Z") required — Дата создания аккаунта
password_changed_at (object | null) required — Дата последней смены пароля
timezone (string, пример: "Europe/Moscow") required — Часовой пояс, который используется для отображения времени в нотификациях
is_ai_assistant_enabled (boolean, пример: true) required — Отображается ли чат с ИИ помощником в панели управления
Пример:
{
"id": 1,
"email": "user@example.com",
"name": "Иван Иванов",
"status": "active",
"avatar_url": "https://example.com/avatar.jpg",
"created_at": "2023-01-01T00:00:00.000Z",
"password_changed_at": "2023-01-05T00:00:00.000Z",
"timezone": "Europe/Moscow",
"is_ai_assistant_enabled": true
}
404 — Аккаунт не найден
PATCH /v1/account — Обновить информацию об аккаунте
Частичное обновление профиля аккаунта. Изменяемые поля: name (имя пользователя), timezone (часовой пояс для отображения времени в нотификациях) и is_ai_assistant_enabled (показывать ли чат с AI-ассистентом в панели). Передавайте только те поля, которые действительно меняются — остальные останутся как есть.
Аутентификация: bearer
Тело запроса (обязательное)
Content-Type: application/json
object
name (string, пример: "Иван Иванов") — Имя пользователя
timezone (string, пример: "Europe/Moscow") — Часовой пояс, который используется для отображения времени в нотификациях
is_ai_assistant_enabled (boolean, пример: true) — Отображается ли чат с ИИ помощником в панели управления
Пример:
{
"name": "Иван Иванов",
"timezone": "Europe/Moscow",
"is_ai_assistant_enabled": true
}
Ответы:
200 — Информация об аккаунте успешно обновлена
application/json: object
id (number, пример: 1) required — ID аккаунта
email (string, пример: "user@example.com") required — Электронная почта пользователя
name (string, пример: "Иван Иванов") required — Имя пользователя
status (string, пример: "active") required — Статус аккаунта
avatar_url (object | null) required — URL аватара пользователя
created_at (string (date-time), пример: "2023-01-01T00:00:00.000Z") required — Дата создания аккаунта
password_changed_at (object | null) required — Дата последней смены пароля
timezone (string, пример: "Europe/Moscow") required — Часовой пояс, который используется для отображения времени в нотификациях
is_ai_assistant_enabled (boolean, пример: true) required — Отображается ли чат с ИИ помощником в панели управления
Пример:
{
"id": 1,
"email": "user@example.com",
"name": "Иван Иванов",
"status": "active",
"avatar_url": "https://example.com/avatar.jpg",
"created_at": "2023-01-01T00:00:00.000Z",
"password_changed_at": "2023-01-05T00:00:00.000Z",
"timezone": "Europe/Moscow",
"is_ai_assistant_enabled": true
}
404 — Аккаунт не найден
GET /v1/max/links — Получить ссылку для привязки аккаунта MAX
Возвращает пару deeplink-ссылок на бота: link_user — для привязки личного MAX-аккаунта (открыть в личном чате с ботом), link_group — для привязки группового чата (добавить бота в группу и нажать ссылку). После подтверждения MAX-аккаунт/чат станет доступен как канал доставки уведомлений и появится в GET /v1/max/linked. Повторный вызов до завершения привязки идемпотентен — возвращает те же ссылки.
Аутентификация: bearer
Ответы:
GET /v1/max/linked — Получить список привязанных MAX аккаунтов
Возвращает все аккаунты/групповые чаты MAX, привязанные к данному аккаунту Statuser, со статусом и флагом «используется для 2FA». Эти аккаунты доступны как канал доставки уведомлений в правилах нотификаций.
Аутентификация: bearer
Ответы:
200 — Возвращает список привязанных MAX аккаунтов
application/json: array of object
max_id (string, пример: "1234567890") required — ID чата в Max
max_name (object | null) required — Название чата или имя пользователя
avatar_url (object | null) required — Прямая ссылка на аватар в S3
type (string, enum: "user", "chat", пример: "chat") required — Тип получателя: пользователь или чат
created_at (string (date-time), пример: "2024-11-30T14:48:00.000Z") required — Дата привязки аккаунта MAX
is_2fa_account (boolean, пример: true) required — Используется ли аккаунт для двухфакторной аутентификации
Пример:
[
{
"max_id": "1234567890",
"max_name": "My Team Chat",
"avatar_url": "https://s3.statuser.cloud/avatars/avatar_a1b2c3d4-e5f6-7890-abcd-ef1234567890.jpg",
"type": "chat",
"created_at": "2024-11-30T14:48:00.000Z",
"is_2fa_account": true
}
]
DELETE /v1/max/unlink — Отвязать MAX аккаунт
Отвязывает MAX-аккаунт от аккаунта Statuser. Уведомления в этот канал больше отправляться не будут; правила нотификаций перестанут его учитывать. Если отвязываемый аккаунт был выбран как канал 2FA, его роль второго фактора снимается автоматически — но если других каналов 2FA нет, рекомендуется заранее переключить второй фактор через PATCH /v1/max/2fa-account или эквивалентный telegram-эндпоинт.
Аутентификация: bearer
Тело запроса (обязательное)
ID аккаунта MAX, который нужно отвязать
Content-Type: application/json
object
max_id (string) — ID получателя MAX
Пример:
{
"max_id": ""
}
Ответы:
204 — Аккаунт MAX успешно отвязан
PATCH /v1/max/2fa-account — Изменить используемый для 2fa MAX аккаунт
Переназначает, в какой привязанный MAX-аккаунт уходят коды подтверждения второго фактора. Должен быть один из уже привязанных к аккаунту MAX-ов. Полезно, если основной мессенджер недоступен и нужно временно переключить 2FA на другой канал.
Аутентификация: bearer
Тело запроса (обязательное)
Content-Type: application/json
object
max_id (string) required — ID чата в Max
Пример:
{
"max_id": ""
}
Ответы:
204 — Изменяет используемый для 2fa MAX аккаунт
GET /v1/notification-emails — Получить список емейл для уведомлений
Возвращает все email-адреса, добавленные на аккаунт для получения уведомлений, со статусом подтверждения. Уведомления уходят только на подтверждённые адреса — неподтверждённые видны в списке для UX, но в правилах нотификаций фактически не используются.
Аутентификация: bearer
Ответы:
POST /v1/notification-emails — Добавить емейл для уведомлений (отправит письмо с кодом)
Регистрирует новый email-адрес для получения уведомлений и сразу отправляет на него письмо с кодом подтверждения. Адрес становится использующимся в правилах нотификаций только после подтверждения через POST /v1/notification-emails/{id}/confirm. Если адрес уже подтверждён на этом аккаунте — 409; если за коротким окном уже отправлялся код для этого адреса — 429; если достигнут общий лимит email-каналов аккаунта — 403.
Аутентификация: bearer
Тело запроса (обязательное)
Content-Type: application/json
object
email (string, пример: "alerts@example.com") required — Емейл для уведомлений
Пример:
{
"email": "alerts@example.com"
}
Ответы:
POST /v1/notification-emails/{id}/confirm — Подтвердить емейл кодом из письма
Завершает процесс верификации email-адреса: проверяет код из подтверждающего письма и помечает адрес как подтверждённый. Неверный, истёкший или исчерпанный по числу попыток код возвращает 403; в этом случае текущий код инвалидируется и нужно запросить новый через POST /v1/notification-emails/{id}/resend.
Аутентификация: bearer
Параметры (path):
Тело запроса (обязательное)
Content-Type: application/json
object
code (string, пример: "123456") required — Код подтверждения емейл из письма
Пример:
{
"code": "123456"
}
Ответы:
POST /v1/notification-emails/{id}/resend — Повторно отправить код подтверждения
Повторно отправляет письмо с кодом подтверждения на ещё не подтверждённый email. Используется, если первое письмо потеряно или код просрочен. Если адрес уже подтверждён — возвращается 409; если повторная отправка идёт слишком часто — 429 (нужно подождать окончания cooldown).
Аутентификация: bearer
Параметры (path):
Ответы:
204 — Код отправлен повторно
404 — Емейл не найден
DELETE /v1/notification-emails/{id} — Удалить емейл из списка уведомлений
Удаляет email-адрес из списка получателей уведомлений. Все правила нотификаций, ссылавшиеся на этот адрес, перестанут отправлять на него письма. Операция необратима — для повторного использования адрес придётся добавить и подтвердить заново.
Аутентификация: bearer
Параметры (path):
Ответы:
204 — Емейл удалён
404 — Емейл не найден
GET /v1/holiday-mode — Получить статус режима праздников
Возвращает текущее состояние режима «отпуск/праздники»: если он активен — поле holiday_until содержит дату-время окончания, иначе null. Пока режим активен, Statuser не присылает уведомления об инцидентах — полезно на выходные/отпуска, когда не хочется получать алёрты лично.
Аутентификация: bearer
Ответы:
POST /v1/holiday-mode — Изменить статус режима праздников
Включает режим «отпуск/праздники» до указанной даты (holiday_until в ISO 8601) или отключает его, если передан null. Во время активного режима персональные уведомления об инцидентах не отправляются, но проверки серверов продолжают идти, и инциденты создаются как обычно — их можно посмотреть постфактум.
Аутентификация: bearer
Тело запроса (обязательное)
Content-Type: application/json
object
holiday_until (string | null, пример: "2025-08-18 13:20:25.495746+00") — Дата и время (UTC) до включения уведомлений, либо null для выключения режима
Пример:
{
"holiday_until": "2025-08-18 13:20:25.495746+00"
}
Ответы:
GET /v1/2fa — Получить информацию по 2fa на аккаунте
Возвращает текущее состояние двухфакторной аутентификации на аккаунте: preferred_method (активный второй фактор, может быть null) и allowed_methods (методы, которые можно выбрать). Возможные значения: email (доступен всегда), totp (если на аккаунте настроен TOTP), telegram (если есть привязанный Telegram-аккаунт), max (если есть привязанный MAX-аккаунт).
Аутентификация: bearer
Ответы:
200 — Информацию по 2fa успешно получена
application/json: object
preferred_method (string | null, enum: "telegram", "max", "email", "totp", пример: "telegram") required — Предпочитаемый метод двухфакторной аутентификации
allowed_methods (array of string, enum: "telegram", "max", "email", "totp") required — Список доступных методов двухфакторной аутентификации
Пример:
{
"preferred_method": "telegram",
"allowed_methods": [
"telegram",
"max",
"totp",
"email"
]
}
Биллинг
GET /v1/billing/current-plan — Получить информацию о текущем тарифе аккаунта
Возвращает текущий тариф и его параметры: цена в месяц/год, объект features со всеми лимитами (servers_limit, status_pages_limit, incident_retention_days, dns_history_retention_days, min_check_interval_seconds, помесячные лимиты на инцидент-отчёты и плановые работы) и флагами доступности (мониторинг SSL/домена/DNS/keyword/heartbeat, latency-alerts, сетевая диагностика, скриншоты, комментарии и PDF-отчёт по инциденту, вебхуки, кастомный домен/пароль/индексация/white-label для страниц статуса). Дополнительно: valid_until — окончание текущего платного периода, current_billing_period (month/year), pending_plan и pending_plan_effective_at — запланированный даунгрейд, если он есть. Перед вызовом «фичевых» эндпоинтов имеет смысл свериться с этими полями, чтобы не получить 403.
Аутентификация: bearer
Ответы:
200 — Информация о тарифе успешно получена
application/json: object
id (number, пример: 2) required — ID тарифа
name (string, пример: "Pro") required — Название текущего тарифа
price_per_month (number, пример: 199) required — Стоимость тарифа в месяц (в рублях)
price_per_year (number, пример: 1990) required — Стоимость тарифа в год (в рублях)
features (object) required — Ограничения и возможности тарифа
servers_limit (number, пример: 50) required — Максимальное количество серверов
available_locations (array of string) required — Список доступных локаций мониторинга
allow_location_selection (boolean, пример: true) required — Возможность ручного выбора локаций
min_check_interval_seconds (number, пример: 60) required — Минимальный интервал проверок (в секундах)
ssl_monitoring_enabled (boolean, пример: true) required — Поддержка мониторинга SSL
domain_monitoring_enabled (boolean, пример: true) required — Поддержка мониторинга доменов
dns_monitoring_enabled (boolean, пример: true) required — Поддержка мониторинга DNS
dns_history_retention_days (number, пример: 30) required — Срок хранения истории DNS записей (в днях)
keyword_monitoring_enabled (boolean, пример: true) required — Поддержка мониторинга ключевых слов
heartbeat_monitoring_enabled (boolean, пример: true) required — Поддержка мониторинга heartbeat
latency_alerts_enabled (boolean, пример: true) required — Поддержка уведомлений о медленном ответе
custom_success_http_codes_enabled (boolean, пример: true) required — Возможность задавать список HTTP-кодов, считающихся успешными
incident_retention_days (number, пример: 60) required — Срок хранения инцидентов (в днях)
network_diagnostics_enabled (boolean, пример: true) required — Доступность сетевой диагностики
screenshots_enabled (boolean, пример: true) required — Поддержка скриншотов при проверках
incident_comments_enabled (boolean, пример: true) required — Возможность комментирования инцидентов
incident_report_enabled (boolean, пример: true) required — Возможность скачивания отчета по инциденту
webhook_notifications_enabled (boolean, пример: false) required — Доступность вебхук-уведомлений
status_pages_limit (number, пример: 3) required — Максимальное количество страниц статуса
custom_domain_enabled (boolean, пример: true) required — Поддержка подключения собственного домена
password_protected_status_page (boolean, пример: true) required — Защита страниц паролем
indexing_control_enabled (boolean, пример: true) required — Исключение страниц из индексации поисковиками
white_label_enabled (boolean, пример: false) required — Возможность вайтлейбла (удаления логотипа Статусера)
status_page_minimum_incident_duration_enabled (boolean, пример: true) required — Возможность задавать минимальную длительность инцидента для отображения на странице статуса
status_page_incident_reports_per_month_limit (number, пример: 1) required — Лимит количества публичных отчётов по инцидентам для страниц статуса в месяц
status_page_planned_maintenances_per_month_limit (number, пример: 1) required — Лимит количества записей о плановых работах для страниц статуса в месяц
valid_until (object) required — Срок действия текущего тарифа
current_billing_period (string | null, enum: "month", "year", пример: "month") required — Период оплаты текущего тарифа
pending_plan (object | null) required — Планируемый тариф на который произойдет даунгрейд
id (number, пример: 2) required — ID тарифа
name (string, пример: "Pro") required — Название текущего тарифа
price_per_month (number, пример: 199) required — Стоимость тарифа в месяц (в рублях)
price_per_year (number, пример: 1990) required — Стоимость тарифа в год (в рублях)
features (object) required — Ограничения и возможности тарифа
servers_limit (number, пример: 50) required — Максимальное количество серверов
available_locations (array of string) required — Список доступных локаций мониторинга
allow_location_selection (boolean, пример: true) required — Возможность ручного выбора локаций
min_check_interval_seconds (number, пример: 60) required — Минимальный интервал проверок (в секундах)
ssl_monitoring_enabled (boolean, пример: true) required — Поддержка мониторинга SSL
domain_monitoring_enabled (boolean, пример: true) required — Поддержка мониторинга доменов
dns_monitoring_enabled (boolean, пример: true) required — Поддержка мониторинга DNS
dns_history_retention_days (number, пример: 30) required — Срок хранения истории DNS записей (в днях)
keyword_monitoring_enabled (boolean, пример: true) required — Поддержка мониторинга ключевых слов
heartbeat_monitoring_enabled (boolean, пример: true) required — Поддержка мониторинга heartbeat
latency_alerts_enabled (boolean, пример: true) required — Поддержка уведомлений о медленном ответе
custom_success_http_codes_enabled (boolean, пример: true) required — Возможность задавать список HTTP-кодов, считающихся успешными
incident_retention_days (number, пример: 60) required — Срок хранения инцидентов (в днях)
network_diagnostics_enabled (boolean, пример: true) required — Доступность сетевой диагностики
screenshots_enabled (boolean, пример: true) required — Поддержка скриншотов при проверках
incident_comments_enabled (boolean, пример: true) required — Возможность комментирования инцидентов
incident_report_enabled (boolean, пример: true) required — Возможность скачивания отчета по инциденту
webhook_notifications_enabled (boolean, пример: false) required — Доступность вебхук-уведомлений
status_pages_limit (number, пример: 3) required — Максимальное количество страниц статуса
custom_domain_enabled (boolean, пример: true) required — Поддержка подключения собственного домена
password_protected_status_page (boolean, пример: true) required — Защита страниц паролем
indexing_control_enabled (boolean, пример: true) required — Исключение страниц из индексации поисковиками
white_label_enabled (boolean, пример: false) required — Возможность вайтлейбла (удаления логотипа Статусера)
status_page_minimum_incident_duration_enabled (boolean, пример: true) required — Возможность задавать минимальную длительность инцидента для отображения на странице статуса
status_page_incident_reports_per_month_limit (number, пример: 1) required — Лимит количества публичных отчётов по инцидентам для страниц статуса в месяц
status_page_planned_maintenances_per_month_limit (number, пример: 1) required — Лимит количества записей о плановых работах для страниц статуса в месяц
pending_plan_effective_at (object | null) required — Дата применения запланированного даунгрейда
Пример:
{
"id": 2,
"name": "Pro",
"price_per_month": 199,
"price_per_year": 1990,
"features": {
"servers_limit": 50,
"available_locations": [
"msk-1",
"ams-1",
"ala-1"
],
"allow_location_selection": true,
"min_check_interval_seconds": 60,
"ssl_monitoring_enabled": true,
"domain_monitoring_enabled": true,
"dns_monitoring_enabled": true,
"dns_history_retention_days": 30,
"keyword_monitoring_enabled": true,
"heartbeat_monitoring_enabled": true,
"latency_alerts_enabled": true,
"custom_success_http_codes_enabled": true,
"incident_retention_days": 60,
"network_diagnostics_enabled": true,
"screenshots_enabled": true,
"incident_comments_enabled": true,
"incident_report_enabled": true,
"webhook_notifications_enabled": false,
"status_pages_limit": 3,
"custom_domain_enabled": true,
"password_protected_status_page": true,
"indexing_control_enabled": true,
"white_label_enabled": false,
"status_page_minimum_incident_duration_enabled": true,
"status_page_incident_reports_per_month_limit": 1,
"status_page_planned_maintenances_per_month_limit": 1
},
"valid_until": "2025-12-31T23:59:59.000Z",
"current_billing_period": "month",
"pending_plan": {
"id": 2,
"name": "Pro",
"price_per_month": 199,
"price_per_year": 1990,
"features": {
"servers_limit": 50,
"available_locations": [
"msk-1",
"ams-1",
"ala-1"
],
"allow_location_selection": true,
"min_check_interval_seconds": 60,
"ssl_monitoring_enabled": true,
"domain_monitoring_enabled": true,
"dns_monitoring_enabled": true,
"dns_history_retention_days": 30,
"keyword_monitoring_enabled": true,
"heartbeat_monitoring_enabled": true,
"latency_alerts_enabled": true,
"custom_success_http_codes_enabled": true,
"incident_retention_days": 60,
"network_diagnostics_enabled": true,
"screenshots_enabled": true,
"incident_comments_enabled": true,
"incident_report_enabled": true,
"webhook_notifications_enabled": false,
"status_pages_limit": 3,
"custom_domain_enabled": true,
"password_protected_status_page": true,
"indexing_control_enabled": true,
"white_label_enabled": false,
"status_page_minimum_incident_duration_enabled": true,
"status_page_incident_reports_per_month_limit": 1,
"status_page_planned_maintenances_per_month_limit": 1
}
},
"pending_plan_effective_at": "2025-12-31T23:59:59.000Z"
}
GET /v1/billing/plans — Получить список публичных тарифов
Возвращает каталог публичных тарифов Statuser с ценами, лимитами и доступными фичами. Используется на страницах с тарифной сеткой и для интеграций, которые подбирают подходящий план по потребностям клиента. Не требует авторизации.
Ответы:
200 — Публичные тарифы успешно получены
application/json: array of object
id (number, пример: 2) required — ID тарифа
name (string, пример: "Pro") required — Название текущего тарифа
price_per_month (number, пример: 199) required — Стоимость тарифа в месяц (в рублях)
price_per_year (number, пример: 1990) required — Стоимость тарифа в год (в рублях)
features (object) required — Ограничения и возможности тарифа
servers_limit (number, пример: 50) required — Максимальное количество серверов
available_locations (array of string) required — Список доступных локаций мониторинга
allow_location_selection (boolean, пример: true) required — Возможность ручного выбора локаций
min_check_interval_seconds (number, пример: 60) required — Минимальный интервал проверок (в секундах)
ssl_monitoring_enabled (boolean, пример: true) required — Поддержка мониторинга SSL
domain_monitoring_enabled (boolean, пример: true) required — Поддержка мониторинга доменов
dns_monitoring_enabled (boolean, пример: true) required — Поддержка мониторинга DNS
dns_history_retention_days (number, пример: 30) required — Срок хранения истории DNS записей (в днях)
keyword_monitoring_enabled (boolean, пример: true) required — Поддержка мониторинга ключевых слов
heartbeat_monitoring_enabled (boolean, пример: true) required — Поддержка мониторинга heartbeat
latency_alerts_enabled (boolean, пример: true) required — Поддержка уведомлений о медленном ответе
custom_success_http_codes_enabled (boolean, пример: true) required — Возможность задавать список HTTP-кодов, считающихся успешными
incident_retention_days (number, пример: 60) required — Срок хранения инцидентов (в днях)
network_diagnostics_enabled (boolean, пример: true) required — Доступность сетевой диагностики
screenshots_enabled (boolean, пример: true) required — Поддержка скриншотов при проверках
incident_comments_enabled (boolean, пример: true) required — Возможность комментирования инцидентов
incident_report_enabled (boolean, пример: true) required — Возможность скачивания отчета по инциденту
webhook_notifications_enabled (boolean, пример: false) required — Доступность вебхук-уведомлений
status_pages_limit (number, пример: 3) required — Максимальное количество страниц статуса
custom_domain_enabled (boolean, пример: true) required — Поддержка подключения собственного домена
password_protected_status_page (boolean, пример: true) required — Защита страниц паролем
indexing_control_enabled (boolean, пример: true) required — Исключение страниц из индексации поисковиками
white_label_enabled (boolean, пример: false) required — Возможность вайтлейбла (удаления логотипа Статусера)
status_page_minimum_incident_duration_enabled (boolean, пример: true) required — Возможность задавать минимальную длительность инцидента для отображения на странице статуса
status_page_incident_reports_per_month_limit (number, пример: 1) required — Лимит количества публичных отчётов по инцидентам для страниц статуса в месяц
status_page_planned_maintenances_per_month_limit (number, пример: 1) required — Лимит количества записей о плановых работах для страниц статуса в месяц
Пример:
[
{
"id": 2,
"name": "Pro",
"price_per_month": 199,
"price_per_year": 1990,
"features": {
"servers_limit": 50,
"available_locations": [
"msk-1",
"ams-1",
"ala-1"
],
"allow_location_selection": true,
"min_check_interval_seconds": 60,
"ssl_monitoring_enabled": true,
"domain_monitoring_enabled": true,
"dns_monitoring_enabled": true,
"dns_history_retention_days": 30,
"keyword_monitoring_enabled": true,
"heartbeat_monitoring_enabled": true,
"latency_alerts_enabled": true,
"custom_success_http_codes_enabled": true,
"incident_retention_days": 60,
"network_diagnostics_enabled": true,
"screenshots_enabled": true,
"incident_comments_enabled": true,
"incident_report_enabled": true,
"webhook_notifications_enabled": false,
"status_pages_limit": 3,
"custom_domain_enabled": true,
"password_protected_status_page": true,
"indexing_control_enabled": true,
"white_label_enabled": false,
"status_page_minimum_incident_duration_enabled": true,
"status_page_incident_reports_per_month_limit": 1,
"status_page_planned_maintenances_per_month_limit": 1
}
}
]
Серверы
GET /v1/servers — Получить все серверы на аккаунте
Возвращает массив всех серверов, которые отслеживает аккаунт, вместе с текущим статусом и настройками мониторинга. Поддерживает пагинацию через limit и offset. Для дашбордов и сводных интеграций рекомендуется явно указывать limit, чтобы не получать весь список на больших аккаунтах.
Аутентификация: bearer
Параметры (query):
limit (number) — Максимальное количество серверов
offset (number) — Смещение для пагинации
Ответы:
200 — Список серверов успешно получен
POST /v1/servers — Добавить в мониторинг новый сервер
Создаёт новый мониторинг. Тип проверки задаётся полем protocol (ping, http, keyword, tcp, dns, heartbeat). Дополнительные проверки SSL и домена включаются флагами is_ssl_check / is_domain_check поверх HTTP-протокола. Учитывается лимит серверов на тарифе и доступность отдельных фич (DNS/keyword/heartbeat-мониторинг, latency-alerts, кастомные success-коды, набор локаций) — при недоступности возвращается 403.
Аутентификация: bearer
Тело запроса (обязательное)
Content-Type: application/json
object
host (string, пример: "192.168.1.1") required — Адрес нового сервера
protocol (string, пример: "http") required — Протокол проверки
port (number, пример: 22) — Порт для проверки. Обязателен при protocol = tcp.
http_method (string, enum: "head", "get", "options", "post", "put", "patch", пример: "head") — HTTP метод. Обязателен при protocol = http или protocol = keyword.
body (string | null, пример: "{\"key\": \"value\"}") — Тело запроса. Применимо к protocol = http или keyword.
keyword (string | null, пример: "Welcome") — Ключевое слово для мониторинга. Обязательно при protocol = keyword.
keyword_mode (string | null, enum: "present", "absent", пример: "present") — Режим проверки ключевого слова: успех если слово есть/если слова нет. Обязательно при protocol = keyword.
headers (array of object) — Собственные заголовки запроса. Применимо к protocol = http или keyword. Если не задано — будет пустой массив.
key (string, пример: "Content-Type") required — Ключ заголовка
value (string, пример: "application/json") required — Значение заголовка
is_follow_redirects (boolean, пример: true) required — Следовать за редиректами или нет
success_http_codes (array of string) — HTTP-коды, которые считаются успешными. Поддерживаются конкретные коды (200, 301) и маски (2xx, 5xx). Применимо к protocol = http или keyword. Если не задано — используется дефолт ["2xx"].
request_timeout (number, пример: "10") required — Таймаут запроса
check_interval (number, пример: 60) required — Интервал проверки сервера в секундах
heartbeat_grace_interval (number | null, пример: 300) — Допустимое опоздание в секундах для heartbeat: сколько ждать сверх check_interval. Применимо к protocol = heartbeat.
name (string, пример: "Восхитительный сервер") — Название сервиса. Обязательно при protocol = heartbeat.
description (string, пример: "Восхитительный сервер для проверки статуса") — Описание сервиса
is_ssl_check (boolean, пример: true) required — Требуется ли выполнять проверку SSL-сертификата
is_domain_check (boolean, пример: true) required — Требуется ли выполнять проверку домена
is_latency_alert_enabled (boolean, пример: true) — Включить уведомления о медленном ответе сервера
latency_trigger_ms (number, пример: 800) — Порог в мс для определения медленного ответа
locations (array of string, enum: "msk-1", "spb-1", "ala-1", "nyc-1", "ams-1") — Локации, из которых требуется выполнять проверки
dns_record_types (array of string, enum: "A", "AAAA", "CNAME", "MX", "TXT", "NS", "SOA", "PTR", "SRV") — Типы DNS записей для мониторинга. Обязательно при protocol = dns.
Пример:
{
"host": "192.168.1.1",
"protocol": "http",
"port": 22,
"http_method": "head",
"body": "{\"key\": \"value\"}",
"keyword": "Welcome",
"keyword_mode": "present",
"headers": [],
"is_follow_redirects": true,
"success_http_codes": [
"2xx"
],
"request_timeout": "10",
"check_interval": 60,
"heartbeat_grace_interval": 300,
"name": "Восхитительный сервер",
"description": "Восхитительный сервер для проверки статуса",
"is_ssl_check": true,
"is_domain_check": true,
"is_latency_alert_enabled": true,
"latency_trigger_ms": 800,
"locations": [
"msk-1",
"ams-1",
"ala-1"
],
"dns_record_types": [
"A",
"AAAA",
"MX"
]
}
Ответы:
201 — Сервер успешно добавлен
application/json: object
id (number, пример: 1) required — ID сервера
host (string, пример: "192.168.1.1") required — IP адрес сервера
protocol (string, пример: "http") required — Протокол сервера
heartbeat_token (object | null) required — Токен для heartbeat URL (только для protocol=heartbeat)
last_heartbeat_at (object | null) required — Время последнего полученного heartbeat (только для protocol=heartbeat)
heartbeat_grace_interval (object | null) required — Допустимое опоздание в секундах для heartbeat: сколько ждать сверх check_interval
port (object) required — Порт для проверки tcp
http_method (string, enum: "head", "get", "options", "post", "put", "patch", пример: "head") required — HTTP метод
request_timeout (number, пример: "10") required — Таймаут запроса
check_interval (number, пример: 60) required — Интервал проверки сервера в секундах
name (object) required — Название сервиса
description (object | null) required — Описание сервиса
status (string, enum: "online", "offline", "pending", "paused", "failed", пример: "online") required — Текущий статус сервера. online — последняя проверка прошла успешно. offline — сервер не отвечает или ответил с ошибкой. pending — ещё ни одной проверки не было (только что создан). paused — проверки приостановлены пользователем. failed — внутренняя ошибка при выполнении проверки.
body (object | null) required — Тело запроса для проверки
keyword (object | null) required — Ключевое слово для мониторинга
keyword_mode (string | null, enum: "present", "absent", пример: "present") required — Режим проверки ключевого слова
headers (array of object) required — Собственные заголовки запроса
key (string, пример: "Content-Type") required — Ключ заголовка
value (string, пример: "application/json") required — Значение заголовка
is_follow_redirects (boolean, пример: true) required — Следовать за редиректами или нет
success_http_codes (array of string) required — HTTP-коды, которые считаются успешными (коды или маски, например 2xx)
last_unavailable_at (object) required — Время, когда сервер в последний раз стал недоступен (начало текущего или последнего инцидента)
last_available_at (object) required — Время, когда сервер в последний раз восстановил доступность (завершение последнего инцидента или последняя успешная проверка)
last_checked_at (object) required — Время последней проверки сервера
is_ssl_check (boolean, пример: true) required — Включены ли проверки SSL-сертификата
ssl (object) required — Информация о SSL-сертификате
is_domain_check (boolean, пример: true) required — Включены ли проверки времени окончания домена
domain (object) required — Информация о домене
is_latency_alert_enabled (boolean, пример: true) required — Включены ли уведомления о медленном ответе
latency_trigger_ms (number, пример: 800) required — Порог в мс для перехода в состояние SLOW
locations (array of string) required — Локации, из которых выполняются проверки
dns_record_types (object | null) required — Типы DNS записей для мониторинга
dns_records (array of object | null) required — Текущие DNS записи домена
record_type (string, enum: "A", "AAAA", "CNAME", "MX", "TXT", "NS", "SOA", "PTR", "SRV", пример: "A") required — Тип DNS записи
records (array of string) required — Структурированные значения DNS записей
dns_error_code (string | null, enum: "NODATA", "NXDOMAIN", "SERVFAIL", "REFUSED", "FORMERR", "NOTIMP", "UNKNOWN", пример: "NODATA") required — Код последней DNS ошибки (только для protocol=dns)
created_at (string (date-time), пример: "2023-01-01T00:00:00.000Z") required — Время создания сервера
Пример:
{
"id": 1,
"host": "192.168.1.1",
"protocol": "http",
"heartbeat_token": "550e8400-e29b-41d4-a716-446655440000",
"last_heartbeat_at": "2025-12-31T23:59:59.000Z",
"heartbeat_grace_interval": 300,
"port": "22",
"http_method": "head",
"request_timeout": "10",
"check_interval": 60,
"name": "Восхитительный сервер",
"description": "Восхитительный сервер для проверки статуса",
"status": "online",
"body": "{\"key\": \"value\"}",
"keyword": "Welcome",
"keyword_mode": "present",
"headers": [
{
"key": "Authorization",
"value": "Bearer token"
}
],
"is_follow_redirects": true,
"success_http_codes": [
"2xx"
],
"last_unavailable_at": "2023-01-02T00:00:00.000Z",
"last_available_at": "2023-01-03T12:34:56.000Z",
"last_checked_at": "2023-01-02T00:00:00.000Z",
"is_ssl_check": true,
"ssl": {},
"is_domain_check": true,
"domain": {},
"is_latency_alert_enabled": true,
"latency_trigger_ms": 800,
"locations": [
"msk-1",
"ams-1",
"ala-1"
],
"dns_record_types": [
"A",
"AAAA",
"MX"
],
"dns_records": [
{
"record_type": "A",
"records": [
{
"value": "192.168.1.1"
},
{
"value": "192.168.1.2"
},
{
"priority": 10,
"exchange": "mail.example.com"
},
{
"priority": 10,
"weight": 5,
"port": 443,
"target": "service.example.com"
}
]
}
],
"dns_error_code": "NODATA",
"created_at": "2023-01-01T00:00:00.000Z"
}
GET /v1/servers/{id} — Получить сервер
Возвращает полную информацию по одному серверу: настройки проверки, текущий статус, активные алерты и метаданные.
Аутентификация: bearer
Параметры (path):
Ответы:
200 — Сервер успешно получен
application/json: object
id (number, пример: 1) required — ID сервера
host (string, пример: "192.168.1.1") required — IP адрес сервера
protocol (string, пример: "http") required — Протокол сервера
heartbeat_token (object | null) required — Токен для heartbeat URL (только для protocol=heartbeat)
last_heartbeat_at (object | null) required — Время последнего полученного heartbeat (только для protocol=heartbeat)
heartbeat_grace_interval (object | null) required — Допустимое опоздание в секундах для heartbeat: сколько ждать сверх check_interval
port (object) required — Порт для проверки tcp
http_method (string, enum: "head", "get", "options", "post", "put", "patch", пример: "head") required — HTTP метод
request_timeout (number, пример: "10") required — Таймаут запроса
check_interval (number, пример: 60) required — Интервал проверки сервера в секундах
name (object) required — Название сервиса
description (object | null) required — Описание сервиса
status (string, enum: "online", "offline", "pending", "paused", "failed", пример: "online") required — Текущий статус сервера. online — последняя проверка прошла успешно. offline — сервер не отвечает или ответил с ошибкой. pending — ещё ни одной проверки не было (только что создан). paused — проверки приостановлены пользователем. failed — внутренняя ошибка при выполнении проверки.
body (object | null) required — Тело запроса для проверки
keyword (object | null) required — Ключевое слово для мониторинга
keyword_mode (string | null, enum: "present", "absent", пример: "present") required — Режим проверки ключевого слова
headers (array of object) required — Собственные заголовки запроса
key (string, пример: "Content-Type") required — Ключ заголовка
value (string, пример: "application/json") required — Значение заголовка
is_follow_redirects (boolean, пример: true) required — Следовать за редиректами или нет
success_http_codes (array of string) required — HTTP-коды, которые считаются успешными (коды или маски, например 2xx)
last_unavailable_at (object) required — Время, когда сервер в последний раз стал недоступен (начало текущего или последнего инцидента)
last_available_at (object) required — Время, когда сервер в последний раз восстановил доступность (завершение последнего инцидента или последняя успешная проверка)
last_checked_at (object) required — Время последней проверки сервера
is_ssl_check (boolean, пример: true) required — Включены ли проверки SSL-сертификата
ssl (object) required — Информация о SSL-сертификате
is_domain_check (boolean, пример: true) required — Включены ли проверки времени окончания домена
domain (object) required — Информация о домене
is_latency_alert_enabled (boolean, пример: true) required — Включены ли уведомления о медленном ответе
latency_trigger_ms (number, пример: 800) required — Порог в мс для перехода в состояние SLOW
locations (array of string) required — Локации, из которых выполняются проверки
dns_record_types (object | null) required — Типы DNS записей для мониторинга
dns_records (array of object | null) required — Текущие DNS записи домена
record_type (string, enum: "A", "AAAA", "CNAME", "MX", "TXT", "NS", "SOA", "PTR", "SRV", пример: "A") required — Тип DNS записи
records (array of string) required — Структурированные значения DNS записей
dns_error_code (string | null, enum: "NODATA", "NXDOMAIN", "SERVFAIL", "REFUSED", "FORMERR", "NOTIMP", "UNKNOWN", пример: "NODATA") required — Код последней DNS ошибки (только для protocol=dns)
created_at (string (date-time), пример: "2023-01-01T00:00:00.000Z") required — Время создания сервера
Пример:
{
"id": 1,
"host": "192.168.1.1",
"protocol": "http",
"heartbeat_token": "550e8400-e29b-41d4-a716-446655440000",
"last_heartbeat_at": "2025-12-31T23:59:59.000Z",
"heartbeat_grace_interval": 300,
"port": "22",
"http_method": "head",
"request_timeout": "10",
"check_interval": 60,
"name": "Восхитительный сервер",
"description": "Восхитительный сервер для проверки статуса",
"status": "online",
"body": "{\"key\": \"value\"}",
"keyword": "Welcome",
"keyword_mode": "present",
"headers": [
{
"key": "Authorization",
"value": "Bearer token"
}
],
"is_follow_redirects": true,
"success_http_codes": [
"2xx"
],
"last_unavailable_at": "2023-01-02T00:00:00.000Z",
"last_available_at": "2023-01-03T12:34:56.000Z",
"last_checked_at": "2023-01-02T00:00:00.000Z",
"is_ssl_check": true,
"ssl": {},
"is_domain_check": true,
"domain": {},
"is_latency_alert_enabled": true,
"latency_trigger_ms": 800,
"locations": [
"msk-1",
"ams-1",
"ala-1"
],
"dns_record_types": [
"A",
"AAAA",
"MX"
],
"dns_records": [
{
"record_type": "A",
"records": [
{
"value": "192.168.1.1"
},
{
"value": "192.168.1.2"
},
{
"priority": 10,
"exchange": "mail.example.com"
},
{
"priority": 10,
"weight": 5,
"port": 443,
"target": "service.example.com"
}
]
}
],
"dns_error_code": "NODATA",
"created_at": "2023-01-01T00:00:00.000Z"
}
404 — Сервер не найден
PATCH /v1/servers/{id} — Обновить сервер
Частичное обновление настроек существующего сервера: хост и протокол, порт, HTTP-метод и тело, заголовки, success-коды, интервал проверки, таймаут, набор локаций, keyword и keyword_mode, типы DNS-записей, флаги is_ssl_check / is_domain_check, is_follow_redirects, is_latency_alert_enabled и порог latency_trigger_ms, имя и описание. Передавайте только те поля, которые меняются. Поля, требующие фич тарифа (DNS-мониторинг, keyword, heartbeat, latency-alerts, кастомные success-коды, неосновные локации, малые check_interval), валидируются на стороне сервера — при недоступности возвращается 403.
Аутентификация: bearer
Параметры (path):
Тело запроса (обязательное)
Content-Type: application/json
object
host (string, пример: "192.168.1.1") — Адрес сервера
protocol (string, enum: "ping", "http", "keyword", "tcp", "dns", "heartbeat", пример: "http") — Протокол проверки
port (number, пример: 22) — Порт для проверки. Применимо к protocol = tcp.
http_method (string, enum: "head", "get", "options", "post", "put", "patch", пример: "head") — HTTP метод. Применимо к protocol = http или keyword.
body (string | null, пример: "{\"key\": \"value\"}") — Тело запроса. Применимо к protocol = http или keyword.
keyword (string | null, пример: "Welcome") — Ключевое слово для мониторинга. Применимо к protocol = keyword.
keyword_mode (string | null, enum: "present", "absent", пример: "present") — Режим проверки ключевого слова. Применимо к protocol = keyword.
headers (array of object) — Собственные заголовки запроса. Применимо к protocol = http или keyword.
key (string, пример: "Content-Type") required — Ключ заголовка
value (string, пример: "application/json") required — Значение заголовка
is_follow_redirects (boolean, пример: true) — Следовать за редиректами или нет
success_http_codes (array of string) — HTTP-коды, которые считаются успешными. Поддерживаются конкретные коды (200, 301) и маски (2xx, 5xx). Применимо к protocol = http или keyword.
request_timeout (number, пример: 10) — Таймаут запроса в секундах
check_interval (number, пример: 60) — Интервал проверки сервера в секундах
heartbeat_grace_interval (number | null, пример: 300) — Период ожидания в секундах для heartbeat: сколько ждать сверх check_interval. Применимо к protocol = heartbeat.
name (string, пример: "Восхитительный сервер") — Название сервиса
description (string, пример: "Восхитительный сервер для проверки статуса") — Описание сервиса
is_ssl_check (boolean, пример: true) — Требуется ли выполнять проверку SSL-сертификата
is_domain_check (boolean, пример: true) — Требуется ли выполнять проверку домена
is_latency_alert_enabled (boolean, пример: true) — Включить уведомления о медленном ответе сервера
latency_trigger_ms (number, пример: 800) — Порог (мс) для определения медленного ответа
locations (array of string, enum: "msk-1", "spb-1", "ala-1", "nyc-1", "ams-1") — Локации, из которых требуется выполнять проверки
dns_record_types (array of string, enum: "A", "AAAA", "CNAME", "MX", "TXT", "NS", "SOA", "PTR", "SRV") — Типы DNS записей для мониторинга. Применимо к protocol = dns.
Пример:
{
"host": "192.168.1.1",
"protocol": "http",
"port": 22,
"http_method": "head",
"body": "{\"key\": \"value\"}",
"keyword": "Welcome",
"keyword_mode": "present",
"headers": [
{
"key": "Authorization",
"value": "Bearer token"
}
],
"is_follow_redirects": true,
"success_http_codes": [
"2xx"
],
"request_timeout": 10,
"check_interval": 60,
"heartbeat_grace_interval": 300,
"name": "Восхитительный сервер",
"description": "Восхитительный сервер для проверки статуса",
"is_ssl_check": true,
"is_domain_check": true,
"is_latency_alert_enabled": true,
"latency_trigger_ms": 800,
"locations": [
"msk-1",
"ams-1",
"ala-1"
],
"dns_record_types": [
"A",
"AAAA",
"MX"
]
}
Ответы:
200 — Сервер успешно обновлен
application/json: object
id (number, пример: 1) required — ID сервера
host (string, пример: "192.168.1.1") required — IP адрес сервера
protocol (string, пример: "http") required — Протокол сервера
heartbeat_token (object | null) required — Токен для heartbeat URL (только для protocol=heartbeat)
last_heartbeat_at (object | null) required — Время последнего полученного heartbeat (только для protocol=heartbeat)
heartbeat_grace_interval (object | null) required — Допустимое опоздание в секундах для heartbeat: сколько ждать сверх check_interval
port (object) required — Порт для проверки tcp
http_method (string, enum: "head", "get", "options", "post", "put", "patch", пример: "head") required — HTTP метод
request_timeout (number, пример: "10") required — Таймаут запроса
check_interval (number, пример: 60) required — Интервал проверки сервера в секундах
name (object) required — Название сервиса
description (object | null) required — Описание сервиса
status (string, enum: "online", "offline", "pending", "paused", "failed", пример: "online") required — Текущий статус сервера. online — последняя проверка прошла успешно. offline — сервер не отвечает или ответил с ошибкой. pending — ещё ни одной проверки не было (только что создан). paused — проверки приостановлены пользователем. failed — внутренняя ошибка при выполнении проверки.
body (object | null) required — Тело запроса для проверки
keyword (object | null) required — Ключевое слово для мониторинга
keyword_mode (string | null, enum: "present", "absent", пример: "present") required — Режим проверки ключевого слова
headers (array of object) required — Собственные заголовки запроса
key (string, пример: "Content-Type") required — Ключ заголовка
value (string, пример: "application/json") required — Значение заголовка
is_follow_redirects (boolean, пример: true) required — Следовать за редиректами или нет
success_http_codes (array of string) required — HTTP-коды, которые считаются успешными (коды или маски, например 2xx)
last_unavailable_at (object) required — Время, когда сервер в последний раз стал недоступен (начало текущего или последнего инцидента)
last_available_at (object) required — Время, когда сервер в последний раз восстановил доступность (завершение последнего инцидента или последняя успешная проверка)
last_checked_at (object) required — Время последней проверки сервера
is_ssl_check (boolean, пример: true) required — Включены ли проверки SSL-сертификата
ssl (object) required — Информация о SSL-сертификате
is_domain_check (boolean, пример: true) required — Включены ли проверки времени окончания домена
domain (object) required — Информация о домене
is_latency_alert_enabled (boolean, пример: true) required — Включены ли уведомления о медленном ответе
latency_trigger_ms (number, пример: 800) required — Порог в мс для перехода в состояние SLOW
locations (array of string) required — Локации, из которых выполняются проверки
dns_record_types (object | null) required — Типы DNS записей для мониторинга
dns_records (array of object | null) required — Текущие DNS записи домена
record_type (string, enum: "A", "AAAA", "CNAME", "MX", "TXT", "NS", "SOA", "PTR", "SRV", пример: "A") required — Тип DNS записи
records (array of string) required — Структурированные значения DNS записей
dns_error_code (string | null, enum: "NODATA", "NXDOMAIN", "SERVFAIL", "REFUSED", "FORMERR", "NOTIMP", "UNKNOWN", пример: "NODATA") required — Код последней DNS ошибки (только для protocol=dns)
created_at (string (date-time), пример: "2023-01-01T00:00:00.000Z") required — Время создания сервера
Пример:
{
"id": 1,
"host": "192.168.1.1",
"protocol": "http",
"heartbeat_token": "550e8400-e29b-41d4-a716-446655440000",
"last_heartbeat_at": "2025-12-31T23:59:59.000Z",
"heartbeat_grace_interval": 300,
"port": "22",
"http_method": "head",
"request_timeout": "10",
"check_interval": 60,
"name": "Восхитительный сервер",
"description": "Восхитительный сервер для проверки статуса",
"status": "online",
"body": "{\"key\": \"value\"}",
"keyword": "Welcome",
"keyword_mode": "present",
"headers": [
{
"key": "Authorization",
"value": "Bearer token"
}
],
"is_follow_redirects": true,
"success_http_codes": [
"2xx"
],
"last_unavailable_at": "2023-01-02T00:00:00.000Z",
"last_available_at": "2023-01-03T12:34:56.000Z",
"last_checked_at": "2023-01-02T00:00:00.000Z",
"is_ssl_check": true,
"ssl": {},
"is_domain_check": true,
"domain": {},
"is_latency_alert_enabled": true,
"latency_trigger_ms": 800,
"locations": [
"msk-1",
"ams-1",
"ala-1"
],
"dns_record_types": [
"A",
"AAAA",
"MX"
],
"dns_records": [
{
"record_type": "A",
"records": [
{
"value": "192.168.1.1"
},
{
"value": "192.168.1.2"
},
{
"priority": 10,
"exchange": "mail.example.com"
},
{
"priority": 10,
"weight": 5,
"port": 443,
"target": "service.example.com"
}
]
}
],
"dns_error_code": "NODATA",
"created_at": "2023-01-01T00:00:00.000Z"
}
404 — Сервер не найден
DELETE /v1/servers/{id} — Удалить сервер из мониторинга
Полностью удаляет сервер вместе с историей проверок, инцидентами и привязанными настройками алертов. Операция необратима. Если нужно временно прекратить проверки, используйте PATCH /v1/servers/{id}/pause вместо удаления.
Аутентификация: bearer
Параметры (path):
Ответы:
204 — Сервер успешно удален
404 — Сервер не найден
GET /v1/servers/{id}/checks — Получить проверки сервера
Возвращает агрегированные результаты проверок сервера за период — удобно для построения графиков uptime/latency. Период задаётся startDate/endDate в ISO 8601; по умолчанию — последние 24 часа. Для коротких периодов (порядка суток) к агрегату дополнительно добавляются несколько последних «свежих» точек, чтобы график оставался интерактивным между интервалами.
Аутентификация: bearer
Параметры (path):
Параметры (query):
startDate (string) — Дата начала для фильтрации
endDate (string) — Дата окончания для фильтрации
Ответы:
200 — Список проверок сервера успешно получен
404 — Сервер не найден
GET /v1/servers/{id}/heartbeat/events — Получить heartbeat события сервера
Возвращает агрегированные heartbeat-события (пинги от внешней системы) за период, разбитые на равные интервалы — удобно для отрисовки полосы статуса. Имеет смысл только для серверов с protocol = heartbeat: для остальных протоколов возвращается пустой массив. По умолчанию период — последние 24 часа.
Аутентификация: bearer
Параметры (path):
Параметры (query):
startDate (string) — Дата начала для фильтрации
endDate (string) — Дата окончания для фильтрации
Ответы:
200 — Список heartbeat событий успешно получен
404 — Сервер не найден
PATCH /v1/servers/{id}/{action} — Приостановить или возобновить проверки сервера
Временно приостанавливает (action = pause) или возобновляет (action = unpause) проверки сервера без удаления его настроек и истории. Полезно во время плановых работ, чтобы не плодить ложные инциденты. При возобновлении повторно валидируются лимиты тарифа: если активных серверов уже больше лимита или фича недоступна — возвращается 403.
Аутентификация: bearer
Параметры (path):
id (number) required
action (string) required
Ответы:
200 — Статус проверок сервера успешно обновлён
404 — Сервер не найден
GET /v1/servers/{id}/dns-history — Получить историю изменений DNS записей сервера
Возвращает diff-ы по DNS-записям сервера: что добавилось, что удалилось и когда, по каждому типу записи (A, AAAA, MX и т.д.). Глубина истории ограничивается параметром тарифа dns_history_retention_days. Эндпоинт доступен для любого сервера, но фактически история заполняется только для серверов с DNS-мониторингом (protocol = dns) — для остальных вернётся пустой массив.
Аутентификация: bearer
Параметры (path):
Ответы:
200 — История изменений DNS записей успешно получена
application/json: array of object
id (number, пример: 1) required — Уникальный идентификатор изменения
domain (string, пример: "example.com") required — Доменное имя
record_type (string, enum: "A", "AAAA", "CNAME", "MX", "TXT", "NS", "SOA", "PTR", "SRV", пример: "A") required — Тип DNS записи
added_records (object | null) required — Добавленные DNS записи
removed_records (object | null) required — Удаленные DNS записи
change_type (string, enum: "added", "modified", "removed", пример: "modified") required — Тип изменения
changed_at (string (date-time), пример: "2023-01-01T00:00:00.000Z") required — Время изменения записи
Пример:
[
{
"id": 1,
"domain": "example.com",
"record_type": "A",
"added_records": [
{
"value": "new-record.example.com"
}
],
"removed_records": [
{
"value": "old-record.example.com"
}
],
"change_type": "modified",
"changed_at": "2023-01-01T00:00:00.000Z"
}
]
404 — Сервер не найден
POST /v1/servers/{id}/test-notify — Отправить тестовую нотификацию для сервера
Отправляет тестовое сообщение по настроенным на аккаунте каналам уведомлений (email/Telegram/MAX согласно правилам нотификаций и вебхукам, подписанным на соответствующий тип). Тип теста зависит от протокола сервера: для dns — DNS-тест, для heartbeat — heartbeat-тест, для остальных — обычный сервис-тест. Удобно для проверки конфигурации без ожидания реального инцидента.
Аутентификация: bearer
Параметры (path):
Ответы:
204 — Тестовая нотификация успешно отправлена
404 — Сервер не найден
Нотификации
GET /v1/notification-rules — Получить правила уведомлений для аккаунта
Возвращает текущую матрицу правил уведомлений: по каждому типу подписки (service_alerts, ssl_alerts, domain_alerts, dns_alerts, weekly_reports, updates, billing_alerts, holiday_mode, api_key_alerts, security_alerts, ideas) — три булевых флага email / telegram / max, включён ли соответствующий канал для этого типа. Вебхуки в этой матрице не участвуют — они конфигурируются собственным полем subscriptions на самом вебхуке. Внутренние/служебные типы уведомлений в публичный ответ не попадают.
Аутентификация: bearer
Ответы:
PATCH /v1/notification-rules — Обновить правило уведомлений для аккаунта
Создаёт или обновляет правило для одного типа подписки (type): включает/выключает каналы email, telegram, max (отдельные id адресов/чатов выбирать не нужно — это глобальный on/off на канал-тип). Возвращает обновлённый полный список правил аккаунта (без внутренних/служебных типов). Подписки конкретных вебхуков здесь не настраиваются — для них используйте PATCH /v1/webhooks/{id}.
Аутентификация: bearer
Тело запроса (обязательное)
Content-Type: application/json
object
type (string, enum: "updates", "weekly_reports", "service_alerts", "test_alerts", "ssl_alerts", "domain_alerts", "dns_alerts", "ideas", "billing_alerts", "holiday_mode", "api_key_alerts", "security_alerts", "receipt", пример: "service_alerts") required — Тип подписки на уведомления, например, для оповещений или обновлений
email (boolean, пример: true) required — Включены ли уведомления по емейл для данного типа подписки
telegram (boolean, пример: true) required — Включены ли уведомления в Телеграм для данного типа подписки
max (boolean, пример: true) required — Включены ли уведомления в MAX для данного типа подписки
Пример:
{
"type": "service_alerts",
"email": true,
"telegram": true,
"max": true
}
Ответы:
Вебхуки
GET /v1/webhooks — Получить список вебхуков аккаунта
Возвращает все настроенные вебхуки аккаунта: имя, URL получателя и набор подписок (subscriptions) — типов событий, которые в этот вебхук отправляются (service_alerts, ssl_alerts, domain_alerts, dns_alerts, weekly_reports, updates, billing_alerts, holiday_mode, api_key_alerts, security_alerts, ideas). Секрет, заданный при создании, обратно из API не возвращается.
Аутентификация: bearer
Ответы:
200 — Список вебхуков успешно получен
application/json: array of object
id (number, пример: 1) required — ID вебхука
name (string, пример: "Slack prod") required — Название вебхука
url (string, пример: "https://example.com/webhooks/statuser") required — URL, куда будет отправляться вебхук
subscriptions (array of string, enum: "updates", "weekly_reports", "service_alerts", "test_alerts", "ssl_alerts", "domain_alerts", "dns_alerts", "ideas", "billing_alerts", "holiday_mode", "api_key_alerts", "security_alerts", "receipt") required — Список подписок, которые отправляются на этот webhook
is_secret_set (boolean, пример: true) required — Указан ли секрет для подписи запросов вебхука
created_at (string (date-time), пример: "2026-02-08T12:00:00.000Z") required — Дата добавления вебхука
Пример:
[
{
"id": 1,
"name": "Slack prod",
"url": "https://example.com/webhooks/statuser",
"subscriptions": [
"service_alerts",
"dns_alerts"
],
"is_secret_set": true,
"created_at": "2026-02-08T12:00:00.000Z"
}
]
POST /v1/webhooks — Создать вебхук
Регистрирует новый вебхук-эндпоинт, в который Statuser будет отправлять события выбранных типов (subscriptions). Обязательные поля: имя, URL, набор подписок. Опционально можно задать секрет — тогда Statuser подписывает payload, а приёмная сторона проверяет подпись, чтобы убедиться, что запрос действительно от Statuser. Требует тарифа с включёнными вебхук-уведомлениями (webhook_notifications_enabled).
Аутентификация: bearer
Тело запроса (обязательное)
Content-Type: application/json
object
name (string, пример: "Slack prod") required — Название вебхука
url (string, пример: "https://example.com/webhooks/statuser") required — URL, куда будет отправляться вебхук
secret (string | null, пример: null) required — Секрет для подписи запросов вебхука. Не возвращается обратно из API
subscriptions (array of string, enum: "weekly_reports", "service_alerts", "ssl_alerts", "domain_alerts", "dns_alerts", "ideas", "billing_alerts", "holiday_mode", "api_key_alerts", "security_alerts") required — Список типов подписок, которые должны отправляться на этот вебхук
Пример:
{
"name": "Slack prod",
"url": "https://example.com/webhooks/statuser",
"secret": null,
"subscriptions": [
"service_alerts",
"dns_alerts"
]
}
Ответы:
201 — Вебхук успешно создан
application/json: object
id (number, пример: 1) required — ID вебхука
name (string, пример: "Slack prod") required — Название вебхука
url (string, пример: "https://example.com/webhooks/statuser") required — URL, куда будет отправляться вебхук
subscriptions (array of string, enum: "updates", "weekly_reports", "service_alerts", "test_alerts", "ssl_alerts", "domain_alerts", "dns_alerts", "ideas", "billing_alerts", "holiday_mode", "api_key_alerts", "security_alerts", "receipt") required — Список подписок, которые отправляются на этот webhook
is_secret_set (boolean, пример: true) required — Указан ли секрет для подписи запросов вебхука
created_at (string (date-time), пример: "2026-02-08T12:00:00.000Z") required — Дата добавления вебхука
Пример:
{
"id": 1,
"name": "Slack prod",
"url": "https://example.com/webhooks/statuser",
"subscriptions": [
"service_alerts",
"dns_alerts"
],
"is_secret_set": true,
"created_at": "2026-02-08T12:00:00.000Z"
}
PATCH /v1/webhooks/{id} — Обновить вебхук
Частичное обновление существующего вебхука: можно изменить имя, URL, секрет и набор подписок (subscriptions). Передавайте только меняющиеся поля. Чтобы убрать секрет, передайте secret: null. После изменения секрета подписи начинают считаться с новым значением — убедитесь, что приёмная сторона обновлена.
Аутентификация: bearer
Параметры (path):
Тело запроса (обязательное)
Content-Type: application/json
object
name (string, пример: "Slack prod") — Название вебхука
url (string, пример: "https://example.com/webhooks/statuser") — URL, куда будет отправляться вебхук
secret (string | null, пример: "my-secret") — Секрет для подписи запросов вебхука. Не возвращается обратно из API
subscriptions (array of string, enum: "weekly_reports", "service_alerts", "ssl_alerts", "domain_alerts", "dns_alerts", "ideas", "billing_alerts", "holiday_mode", "api_key_alerts", "security_alerts") — Список типов подписок, которые должны отправляться на этот вебхук
Пример:
{
"name": "Slack prod",
"url": "https://example.com/webhooks/statuser",
"secret": "my-secret",
"subscriptions": [
"service_alerts",
"dns_alerts"
]
}
Ответы:
200 — Вебхук успешно обновлён
application/json: object
id (number, пример: 1) required — ID вебхука
name (string, пример: "Slack prod") required — Название вебхука
url (string, пример: "https://example.com/webhooks/statuser") required — URL, куда будет отправляться вебхук
subscriptions (array of string, enum: "updates", "weekly_reports", "service_alerts", "test_alerts", "ssl_alerts", "domain_alerts", "dns_alerts", "ideas", "billing_alerts", "holiday_mode", "api_key_alerts", "security_alerts", "receipt") required — Список подписок, которые отправляются на этот webhook
is_secret_set (boolean, пример: true) required — Указан ли секрет для подписи запросов вебхука
created_at (string (date-time), пример: "2026-02-08T12:00:00.000Z") required — Дата добавления вебхука
Пример:
{
"id": 1,
"name": "Slack prod",
"url": "https://example.com/webhooks/statuser",
"subscriptions": [
"service_alerts",
"dns_alerts"
],
"is_secret_set": true,
"created_at": "2026-02-08T12:00:00.000Z"
}
DELETE /v1/webhooks/{id} — Удалить вебхук
Удаляет вебхук-эндпоинт. Statuser перестанет отправлять в него события. Если хочется временно остановить только часть событий, не удаляя вебхук целиком, — обновите его через PATCH /v1/webhooks/{id}, оставив в subscriptions только нужные типы.
Аутентификация: bearer
Параметры (path):
Ответы:
204 — Вебхук успешно удалён
POST /v1/webhooks/{id}/test-notify — Отправить тестовый запрос в вебхук
Отправляет в вебхук тестовый payload (с пометкой, что это тест), чтобы проверить доступность, корректность подписи и обработку на стороне приёмника. Если доставка не удалась — возвращается 502 с подробностями (reason, webhook_status), что удобно для дебага интеграции.
Аутентификация: bearer
Параметры (path):
Ответы:
204 — Тестовый запрос в вебхук успешно отправлен
502 — Не удалось доставить тестовый вебхук
application/json: any, пример: {"statusCode":502,"error_code":"webhook_test_delivery_failed","message":"Failed to deliver test webhook","meta":{"reason":"timeout","webhook_status":500}}
Пример:
{
"statusCode": 502,
"error_code": "webhook_test_delivery_failed",
"message": "Failed to deliver test webhook",
"meta": {
"reason": "timeout",
"webhook_status": 500
}
}
Инциденты
GET /v1/servers/{serverId}/incidents — Получить инциденты сервера
Возвращает список всех инцидентов для конкретного сервера за период, доступный по тарифу (incident_retention_days). Инциденты приходят в хронологическом порядке и включают как закрытые, так и текущие. Для широких выборок по всему аккаунту используйте GET /v1/incidents.
Аутентификация: bearer
Параметры (path):
serverId (number) required
Ответы:
200 — Инциденты сервера успешно получены
application/json: object
id (number, пример: 1) required — ID инцидента
server_id (number, пример: 1) required — ID сервера
started_at (string (date-time), пример: "2023-01-01T00:00:00.000Z") required — Время начала инцидента
ended_at (object | null) required — Время окончания инцидента
status (string, enum: "ongoing", "resolved", "dismissed", "auto_closed_changed", "auto_closed_timeout", пример: "resolved") required — Текущий статус инцидента. ongoing — инцидент активен, сервер сейчас недоступен. resolved — сервер восстановился, инцидент закрыт штатно. dismissed — инцидент вручную отклонён пользователем. auto_closed_changed — автоматически закрыт, потому что параметры проверки сервера изменились, и прежний инцидент стал нерелевантным. auto_closed_timeout — автоматически закрыт планировщиком после длительной неактивности.
root_error (string) required — Основная ошибка проверки сервера
keyword (object | null) required — Ключевое слово, которое искали при типе проверки keyword
screenshot (object) required — Ссылка на скриншот страницы
replay (object) required — Команда для повтора запроса
details (object) required — Детали проваленной проверки
Пример:
{
"id": 1,
"server_id": 1,
"started_at": "2023-01-01T00:00:00.000Z",
"ended_at": "2023-01-02T00:00:00.000Z",
"status": "resolved",
"root_error": "",
"keyword": "simple",
"screenshot": "https://s3.statuser.cloud/sreenshots/img.png",
"replay": "curl -X GET 1.1.1.1",
"details": {}
}
404 — Сервер не найден
GET /v1/incidents/{incidentId} — Получить инцидент
Возвращает подробную карточку инцидента: статус, время начала/окончания, root-причину, ключевое слово, replay-ссылку, а также скриншот и сетевую диагностику (заголовки, тело ответа, OpenSSL, ping/nmap/mtr/traceroute, тайминги) по каждой локации. Поле screenshot отдаётся только при включённой фиче тарифа screenshots_enabled, поле details — только при network_diagnostics_enabled; иначе они равны null.
Аутентификация: bearer
Параметры (path):
incidentId (number) required
Ответы:
200 — Инцидент успешно получен
application/json: object
id (number, пример: 1) required — ID инцидента
server_id (number, пример: 1) required — ID сервера
started_at (string (date-time), пример: "2023-01-01T00:00:00.000Z") required — Время начала инцидента
ended_at (object | null) required — Время окончания инцидента
status (string, enum: "ongoing", "resolved", "dismissed", "auto_closed_changed", "auto_closed_timeout", пример: "resolved") required — Текущий статус инцидента. ongoing — инцидент активен, сервер сейчас недоступен. resolved — сервер восстановился, инцидент закрыт штатно. dismissed — инцидент вручную отклонён пользователем. auto_closed_changed — автоматически закрыт, потому что параметры проверки сервера изменились, и прежний инцидент стал нерелевантным. auto_closed_timeout — автоматически закрыт планировщиком после длительной неактивности.
root_error (string) required — Основная ошибка проверки сервера
keyword (object | null) required — Ключевое слово, которое искали при типе проверки keyword
screenshot (object) required — Ссылка на скриншот страницы
replay (object) required — Команда для повтора запроса
details (object) required — Детали проваленной проверки
Пример:
{
"id": 1,
"server_id": 1,
"started_at": "2023-01-01T00:00:00.000Z",
"ended_at": "2023-01-02T00:00:00.000Z",
"status": "resolved",
"root_error": "",
"keyword": "simple",
"screenshot": "https://s3.statuser.cloud/sreenshots/img.png",
"replay": "curl -X GET 1.1.1.1",
"details": {}
}
404 — Инцидент не найден
GET /v1/incidents — Получить все инциденты на аккаунте
Возвращает плоский список инцидентов по всем серверам аккаунта, отсортированный по дате начала по убыванию. Можно отфильтровать по статусу через query-параметр status (ongoing, resolved, dismissed, auto_closed_changed, auto_closed_timeout). Глубина выборки ограничена incident_retention_days текущего тарифа.
Аутентификация: bearer
Параметры (query):
status (string, enum: "ongoing", "resolved", "dismissed", "auto_closed_changed", "auto_closed_timeout") — Статус инцидента (опционально)
Ответы:
200 — Инциденты успешно получены
application/json: object
id (number, пример: 1) required — ID инцидента
server_id (number, пример: 1) required — ID сервера
started_at (string (date-time), пример: "2023-01-01T00:00:00.000Z") required — Время начала инцидента
ended_at (object | null) required — Время окончания инцидента
status (string, enum: "ongoing", "resolved", "dismissed", "auto_closed_changed", "auto_closed_timeout", пример: "resolved") required — Текущий статус инцидента. ongoing — инцидент активен, сервер сейчас недоступен. resolved — сервер восстановился, инцидент закрыт штатно. dismissed — инцидент вручную отклонён пользователем. auto_closed_changed — автоматически закрыт, потому что параметры проверки сервера изменились, и прежний инцидент стал нерелевантным. auto_closed_timeout — автоматически закрыт планировщиком после длительной неактивности.
root_error (string) required — Основная ошибка проверки сервера
keyword (object | null) required — Ключевое слово, которое искали при типе проверки keyword
screenshot (object) required — Ссылка на скриншот страницы
replay (object) required — Команда для повтора запроса
details (object) required — Детали проваленной проверки
Пример:
{
"id": 1,
"server_id": 1,
"started_at": "2023-01-01T00:00:00.000Z",
"ended_at": "2023-01-02T00:00:00.000Z",
"status": "resolved",
"root_error": "",
"keyword": "simple",
"screenshot": "https://s3.statuser.cloud/sreenshots/img.png",
"replay": "curl -X GET 1.1.1.1",
"details": {}
}
GET /v1/incidents/{incidentId}/events — Получить события инцидента
Возвращает хронологическую ленту событий инцидента: смены статуса, отправленные уведомления (email/Telegram/MAX/вебхуки), подтверждения, авто-восстановления и т.п. Используется для отображения таймлайна на странице инцидента и для аудита, в какие каналы и когда уходили нотификации.
Аутентификация: bearer
Параметры (path):
incidentId (number) required
Ответы:
200 — События инцидента успешно получены
application/json: object
created_at (string (date-time), пример: "2023-01-01T00:00:00.000Z") required — Время создания события
type (string, enum: "error", "resolved", "notification", "comment", "start", "end", пример: "end") required — Тип события
meta (ErrorMeta | ResolvedMeta | NotificationMeta | CommentMeta | null) required — Метаданные события
Пример:
{
"created_at": "2023-01-01T00:00:00.000Z",
"type": "end",
"meta": {
"error": "",
"location": ""
}
}
404 — Инцидент не найден
GET /v1/incidents/{incidentId}/server — Получить сервер по инциденту
Удобный шорткат: по incidentId сразу возвращает связанный сервер с актуальными настройками мониторинга и статусом. Эквивалентно последовательному GET /v1/incidents/{id} + GET /v1/servers/{server_id} в один запрос.
Аутентификация: bearer
Параметры (path):
incidentId (number) required
Ответы:
200 — Сервер успешно получен
application/json: object
id (number, пример: 1) required — ID сервера
host (string, пример: "192.168.1.1") required — IP адрес сервера
protocol (string, пример: "http") required — Протокол сервера
heartbeat_token (object | null) required — Токен для heartbeat URL (только для protocol=heartbeat)
last_heartbeat_at (object | null) required — Время последнего полученного heartbeat (только для protocol=heartbeat)
heartbeat_grace_interval (object | null) required — Допустимое опоздание в секундах для heartbeat: сколько ждать сверх check_interval
port (object) required — Порт для проверки tcp
http_method (string, enum: "head", "get", "options", "post", "put", "patch", пример: "head") required — HTTP метод
request_timeout (number, пример: "10") required — Таймаут запроса
check_interval (number, пример: 60) required — Интервал проверки сервера в секундах
name (object) required — Название сервиса
description (object | null) required — Описание сервиса
status (string, enum: "online", "offline", "pending", "paused", "failed", пример: "online") required — Текущий статус сервера. online — последняя проверка прошла успешно. offline — сервер не отвечает или ответил с ошибкой. pending — ещё ни одной проверки не было (только что создан). paused — проверки приостановлены пользователем. failed — внутренняя ошибка при выполнении проверки.
body (object | null) required — Тело запроса для проверки
keyword (object | null) required — Ключевое слово для мониторинга
keyword_mode (string | null, enum: "present", "absent", пример: "present") required — Режим проверки ключевого слова
headers (array of object) required — Собственные заголовки запроса
key (string, пример: "Content-Type") required — Ключ заголовка
value (string, пример: "application/json") required — Значение заголовка
is_follow_redirects (boolean, пример: true) required — Следовать за редиректами или нет
success_http_codes (array of string) required — HTTP-коды, которые считаются успешными (коды или маски, например 2xx)
last_unavailable_at (object) required — Время, когда сервер в последний раз стал недоступен (начало текущего или последнего инцидента)
last_available_at (object) required — Время, когда сервер в последний раз восстановил доступность (завершение последнего инцидента или последняя успешная проверка)
last_checked_at (object) required — Время последней проверки сервера
is_ssl_check (boolean, пример: true) required — Включены ли проверки SSL-сертификата
ssl (object) required — Информация о SSL-сертификате
is_domain_check (boolean, пример: true) required — Включены ли проверки времени окончания домена
domain (object) required — Информация о домене
is_latency_alert_enabled (boolean, пример: true) required — Включены ли уведомления о медленном ответе
latency_trigger_ms (number, пример: 800) required — Порог в мс для перехода в состояние SLOW
locations (array of string) required — Локации, из которых выполняются проверки
dns_record_types (object | null) required — Типы DNS записей для мониторинга
dns_records (array of object | null) required — Текущие DNS записи домена
record_type (string, enum: "A", "AAAA", "CNAME", "MX", "TXT", "NS", "SOA", "PTR", "SRV", пример: "A") required — Тип DNS записи
records (array of string) required — Структурированные значения DNS записей
dns_error_code (string | null, enum: "NODATA", "NXDOMAIN", "SERVFAIL", "REFUSED", "FORMERR", "NOTIMP", "UNKNOWN", пример: "NODATA") required — Код последней DNS ошибки (только для protocol=dns)
created_at (string (date-time), пример: "2023-01-01T00:00:00.000Z") required — Время создания сервера
Пример:
{
"id": 1,
"host": "192.168.1.1",
"protocol": "http",
"heartbeat_token": "550e8400-e29b-41d4-a716-446655440000",
"last_heartbeat_at": "2025-12-31T23:59:59.000Z",
"heartbeat_grace_interval": 300,
"port": "22",
"http_method": "head",
"request_timeout": "10",
"check_interval": 60,
"name": "Восхитительный сервер",
"description": "Восхитительный сервер для проверки статуса",
"status": "online",
"body": "{\"key\": \"value\"}",
"keyword": "Welcome",
"keyword_mode": "present",
"headers": [
{
"key": "Authorization",
"value": "Bearer token"
}
],
"is_follow_redirects": true,
"success_http_codes": [
"2xx"
],
"last_unavailable_at": "2023-01-02T00:00:00.000Z",
"last_available_at": "2023-01-03T12:34:56.000Z",
"last_checked_at": "2023-01-02T00:00:00.000Z",
"is_ssl_check": true,
"ssl": {},
"is_domain_check": true,
"domain": {},
"is_latency_alert_enabled": true,
"latency_trigger_ms": 800,
"locations": [
"msk-1",
"ams-1",
"ala-1"
],
"dns_record_types": [
"A",
"AAAA",
"MX"
],
"dns_records": [
{
"record_type": "A",
"records": [
{
"value": "192.168.1.1"
},
{
"value": "192.168.1.2"
},
{
"priority": 10,
"exchange": "mail.example.com"
},
{
"priority": 10,
"weight": 5,
"port": 443,
"target": "service.example.com"
}
]
}
],
"dns_error_code": "NODATA",
"created_at": "2023-01-01T00:00:00.000Z"
}
404 — Инцидент не найден
GET /v1/incidents/{incidentId}/report — Скачать PDF отчет по инциденту
Возвращает готовый PDF-отчёт по инциденту в виде файла (application/pdf). Удобно для прикрепления к тикетам, постмортемам и отчётам клиенту. Состав секций настраивается через repeated query sections — допустимые значения: ai_summary, diagnostics, technical_reference, events (пример: ?sections=ai_summary§ions=events). Доступно только на тарифах с включённым отчётом по инциденту (incident_report_enabled) — иначе 403.
Аутентификация: bearer
Параметры (path):
incidentId (number) required
Параметры (query):
sections (array of string, enum: "ai_summary", "diagnostics", "technical_reference", "events") — Секции, которые будут включены в отчет. Требуется передавать как repeated query (?sections=ai_summary§ions=events)
Ответы:
200 — PDF отчет по инциденту успешно сформирован
403 — PDF отчет по инциденту недоступен на текущем тарифе
404 — Инцидент не найден
POST /v1/incidents/{incidentId}/ai-summary — Сгенерировать AI саммари инцидента
Генерирует (или возвращает закэшированное) AI-саммари инцидента: краткий человекочитаемый разбор того, что произошло и в чём вероятная причина, на основе диагностических данных. Идемпотентна: повторные вызовы для того же инцидента возвращают уже сгенерированную сводку. Требует тарифа с включённой сетевой диагностикой (network_diagnostics_enabled).
Аутентификация: bearer
Параметры (path):
incidentId (number) required
Ответы:
POST /v1/incidents/{incidentId}/ai-summary/rating — Оценить AI саммари инцидента
Проставляет пользовательскую оценку ранее сгенерированному AI-саммари инцидента: допустимые значения rating — positive или negative. Используется для сбора обратной связи о качестве AI-разбора. Передайте rating: null, чтобы сбросить ранее поставленную оценку.
Аутентификация: bearer
Параметры (path):
incidentId (number) required
Тело запроса (обязательное)
Content-Type: application/json
object
rating (string | null, enum: "positive", "negative", пример: "positive") — Оценка саммари
Пример:
{
"rating": "positive"
}
Ответы:
GET /v1/incidents/{incidentId}/comments — Получить все комментарии к инциденту
Возвращает список всех комментариев к инциденту в хронологическом порядке с прикреплёнными файлами и временем создания/обновления. Удобно для отображения обсуждения постмортема или хронологии действий дежурного.
Аутентификация: bearer
Параметры (path):
incidentId (number) required
Ответы:
200 — Комментарии успешно получены
application/json: array of object
id (number, пример: 1) required — ID комментария
comment_text (string, пример: "Комментарий") required — Текст комментария
attached_files (array of object) required — Прикрепленные к комментарию файлы
url (string, пример: "https://s3.statuser.cloud/incident-attachments-dev/uuid.png") required — URL вложенного файла
file_name (string, пример: "error-screenshot.png") required — Имя вложенного файла
created_at (string (date-time), пример: "2023-01-01T00:00:00.000Z") required — Дата создания комментария
updated_at (string (date-time), пример: "2023-01-01T00:00:00.000Z") required — Дата обновления комментария
Пример:
[
{
"id": 1,
"comment_text": "Комментарий",
"attached_files": [],
"created_at": "2023-01-01T00:00:00.000Z",
"updated_at": "2023-01-01T00:00:00.000Z"
}
]
POST /v1/incidents/{incidentId}/comments — Создать комментарий к инциденту
Добавляет текстовый комментарий к инциденту, опционально с вложениями (attached_files). Ссылки на вложения должны быть получены заранее через POST /v1/incidents/{incidentId}/comments/upload-url — произвольные внешние URL не принимаются. Требует тарифа с включёнными комментариями к инцидентам (incident_comments_enabled).
Аутентификация: bearer
Параметры (path):
incidentId (number) required
Тело запроса (обязательное)
Content-Type: application/json
object
comment_text (string, пример: "Текст комментария") required — Текст комментария
attached_files (array of object) — Список прикрепленных файлов
url (string, пример: "https://s3.statuser.cloud/incident-attachments-dev/uuid.png") required — URL вложенного файла
file_name (string, пример: "error-screenshot.png") required — Имя вложенного файла
Пример:
{
"comment_text": "Текст комментария",
"attached_files": [
{
"url": "https://s3.statuser.cloud/incident-attachments-dev/uuid.png",
"file_name": "error-screenshot.png"
}
]
}
Ответы:
201 — Комментарий успешно создан
application/json: object
id (number, пример: 1) required — ID комментария
comment_text (string, пример: "Комментарий") required — Текст комментария
attached_files (array of object) required — Прикрепленные к комментарию файлы
url (string, пример: "https://s3.statuser.cloud/incident-attachments-dev/uuid.png") required — URL вложенного файла
file_name (string, пример: "error-screenshot.png") required — Имя вложенного файла
created_at (string (date-time), пример: "2023-01-01T00:00:00.000Z") required — Дата создания комментария
updated_at (string (date-time), пример: "2023-01-01T00:00:00.000Z") required — Дата обновления комментария
Пример:
{
"id": 1,
"comment_text": "Комментарий",
"attached_files": [],
"created_at": "2023-01-01T00:00:00.000Z",
"updated_at": "2023-01-01T00:00:00.000Z"
}
POST /v1/incidents/{incidentId}/comments/upload-url — Получить ссылку для загрузки вложения к комментарию инцидента
Возвращает временную ссылку (uploadUrl), по которой клиент должен PUT-нуть содержимое файла напрямую, минуя API Statuser, и итоговый публичный URL (fileUrl). После успешной загрузки fileUrl передаётся в attached_files при создании/обновлении комментария. Лимиты: расширение файла должно быть разрешено, размер — не больше 5 МБ. Требует тарифа с включёнными комментариями к инцидентам (incident_comments_enabled).
Аутентификация: bearer
Параметры (path):
incidentId (number) required
Тело запроса (обязательное)
Content-Type: application/json
object
file_name (string, пример: "incident-log.txt") required — Имя файла для загрузки
content_type (string, пример: "text/plain") — MIME-тип файла
file_size (number, пример: 1024) — Размер файла в байтах
Пример:
{
"file_name": "incident-log.txt",
"content_type": "text/plain",
"file_size": 1024
}
Ответы:
PATCH /v1/incidents/{incidentId}/comments/{commentId} — Обновить комментарий
Редактирует текст и/или список вложений уже опубликованного комментария к инциденту. Поле attached_files, если передано, полностью заменяет предыдущий список вложений — передавайте все актуальные ссылки, а не только новые. Вложения, отсутствующие в новом списке, удаляются безвозвратно.
Аутентификация: bearer
Параметры (path):
incidentId (number) required
commentId (number) required
Тело запроса (обязательное)
Content-Type: application/json
object
comment_text (string, пример: "Текст комментария") — Текст комментария
attached_files (array of object) — Список прикрепленных файлов с именами
url (string, пример: "https://s3.statuser.cloud/incident-attachments-dev/uuid.png") required — URL вложенного файла
file_name (string, пример: "error-screenshot.png") required — Имя вложенного файла
Пример:
{
"comment_text": "Текст комментария",
"attached_files": [
{
"url": "https://s3.statuser.cloud/incident-attachments-dev/uuid.png",
"file_name": "error-screenshot.png"
}
]
}
Ответы:
200 — Комментарий успешно обновлен
application/json: object
id (number, пример: 1) required — ID комментария
comment_text (string, пример: "Комментарий") required — Текст комментария
attached_files (array of object) required — Прикрепленные к комментарию файлы
url (string, пример: "https://s3.statuser.cloud/incident-attachments-dev/uuid.png") required — URL вложенного файла
file_name (string, пример: "error-screenshot.png") required — Имя вложенного файла
created_at (string (date-time), пример: "2023-01-01T00:00:00.000Z") required — Дата создания комментария
updated_at (string (date-time), пример: "2023-01-01T00:00:00.000Z") required — Дата обновления комментария
Пример:
{
"id": 1,
"comment_text": "Комментарий",
"attached_files": [],
"created_at": "2023-01-01T00:00:00.000Z",
"updated_at": "2023-01-01T00:00:00.000Z"
}
DELETE /v1/incidents/{incidentId}/comments/{commentId} — Удалить комментарий
Окончательно удаляет комментарий и одновременно удаляет все его файлы-вложения. Операция необратима — восстановить ни комментарий, ни файлы будет нельзя.
Аутентификация: bearer
Параметры (path):
incidentId (number) required
commentId (number) required
Ответы:
204 — Комментарий успешно удалён
404 — Комментарий не найден
Страницы статуса
GET /v1/status-pages/check-slug/{slug} — Проверить, свободен ли путь
Возвращает { available: boolean } — занят ли указанный slug другой страницей статуса в системе. Используется перед созданием/переименованием страницы, чтобы дать пользователю мгновенную обратную связь до отправки формы.
Аутентификация: bearer
Параметры (path):
Ответы:
200 — Результат проверки пути
application/json: object
available (boolean, пример: true) required — Флаг, указывающий, свободен ли путь
Пример:
{
"available": true
}
GET /v1/status-pages/check-domain/{domain} — Проверить, свободен ли домен
Проверяет, не занят ли указанный кастомный домен другой страницей статуса, и одновременно проверяет, корректно ли настроен CNAME у этого домена (поле cname_valid). Удобно использовать перед привязкой кастомного домена к странице, чтобы помочь пользователю отладить DNS до сохранения настроек.
Аутентификация: bearer
Параметры (path):
Ответы:
POST /v1/status-pages/{id}/upload-url — Получить ссылку для загрузки логотипа или фавикона
Возвращает временную ссылку (uploadUrl) для прямого PUT-аплоада изображения (логотип или фавикон), а также итоговый публичный URL (fileUrl). Тип изображения указывается в теле через type. После успешной загрузки полученный fileUrl передаётся в logo_url / favicon_url при PATCH /v1/status-pages/{id}.
Аутентификация: bearer
Параметры (path):
Тело запроса (обязательное)
Content-Type: application/json
object
type (string, enum: "logo", "favicon") required
Пример:
{
"type": "logo"
}
Ответы:
GET /v1/status-pages — Получить все страницы статуса на аккаунте
Возвращает список всех страниц статуса аккаунта со всеми настройками: домен/slug, группы и привязанные серверы, тема, white-label, защита паролем и т.д. Используется для админ-дашбордов и интеграций, которым нужно увидеть все публичные страницы клиента сразу.
Аутентификация: bearer
Ответы:
200 — Страницы статуса успешно получены
application/json: array of object
id (number, пример: 1) required — ID страницы статуса
name (string, пример: "Statuser") required — Название страницы статуса
status (string, пример: "operational") required — Общий статус сервисов
slug (string, пример: "statuser") required — Уникальный путь страницы статуса
description (object | null) required — Описание страницы статуса
logo_url (object | null) required — URL логотипа
favicon_url (object | null) required — URL фавикона
company_url (object | null) required — URL сайта компании
support_url (object | null) required — Email службы поддержки
domains (array of object) required — Привязанные к странице статуса домены
domain (string, пример: "up.example.com") required — Домен страницы статуса
status (string, пример: "active") required — Статус домена
is_indexed (boolean, пример: true) required — Индексируется ли страница поисковиками
is_published (boolean, пример: true) required — Опубликована ли страница
is_white_labeled (boolean, пример: false) required — Вайт-лейблинг: скрыт ли бренд Statuser
timeline_days (number, пример: 60) required — Количество дней, показываемых в таймлайне
timezone (string, пример: "Europe/Moscow") required — Таймзона страницы статуса
uptime_decimal_places (number, пример: 2) required — Количество знаков после запятой у аптайма
theme_mode (string, enum: "user", "light", "dark", пример: "user") required — Режим темы страницы статуса
is_not_monitored_operational (boolean, пример: false) required — Показывать ли статус Не в мониторинге зелёным, как Доступен
minimum_incident_duration (number, пример: 0) required — Минимальная длительность инцидента в секундах для отображения на странице
is_password_protected (boolean, пример: true) required — Защищена ли страница статуса паролем
servers (array of object) required — Список серверов, добавленных на страницу статуса
name (string, пример: "My Server") required — Публичное имя сервера на странице статуса
description (string | null, пример: "My Server") required — Комментарий к серверу
uptime (number, пример: 99.93) required — Общее время безотказной работы сервера в процентах
current_status (string, enum: "operational", "downtime", "not_monitored", "degraded", "under_maintenance", пример: "operational") required — Статус доступности сервера
order (number, пример: 99.93) required — Общее время безотказной работы сервера в процентах
group_id (number, пример: 1) required — Идентификатор группы серверов
availability (array of array of unknown) required — Доступность сервера по датам
groups (array of object) required — Список групп серверов
id (number, пример: 1) required — Идентификатор группы
name (string, пример: "Бэкенд-сервисы") required — Имя группы
description (string | null, пример: "Группа для основных API-сервисов") required — Описание группы
order (number, пример: 0) required — Порядок отображения группы
status (string, пример: "operational") required — Статус группы
incident_reports (array of object) required — Публичные отчёты по инцидентам на странице статуса
id (number, пример: 10100) required — ID отчёта
title (string, пример: "Проблемы с доступностью API Gateway") required — Заголовок отчёта
started_at (string (date-time), пример: "2026-03-06T16:10:00.000Z") required — Время начала отчёта
current_status (string, enum: "not_affected", "downtime", "degraded", "resolved", пример: "degraded") required — Текущий статус отчёта по последнему известному состоянию сервисов
incidents (array of object) required — Инциденты, связанные с отчётом
incident_id (number, пример: 42) required — ID инцидента
server_id (number, пример: 7) required — ID сервера, к которому относится инцидент
server_name (string, пример: "API Gateway") required — Публичное имя сервера на странице статуса
status (string, enum: "ongoing", "resolved", "dismissed", "auto_closed_changed", "auto_closed_timeout", пример: "ongoing") required — Статус инцидента
started_at (string (date-time), пример: "2026-03-06T16:10:00.000Z") required — Время начала инцидента
ended_at (object | null) required — Время окончания инцидента
servers (array of object) required — Актуальные статусы сервисов внутри отчёта
id (number, пример: 1) required — ID сервиса на status page
name (string, пример: "API Gateway") required — Публичное имя сервиса на странице статуса
status (string, enum: "not_affected", "downtime", "degraded", "resolved", пример: "degraded") required — Статус влияния на сервис
updates (array of object) required — Таймлайн сообщений внутри отчёта
id (number, пример: 10100) required — ID обновления внутри отчёта
message (string, пример: "Мы нашли причину сбоя и уже выкатываем исправление. Следующее обновление через 10 минут") required — Текст апдейта
is_initial (boolean, пример: true) required — Является ли запись стартовым сообщением отчёта
published_at (string (date-time), пример: "2026-03-06T16:12:00.000Z") required — Когда обновление было опубликовано
servers (array of object) required — Статусы серверов на момент этого обновления
id (number, пример: 1) required — ID сервиса на status page
name (string, пример: "API Gateway") required — Публичное имя сервиса на странице статуса
status (string, enum: "not_affected", "downtime", "degraded", "resolved", пример: "degraded") required — Статус влияния на сервис
planned_maintenances (array of object) required — Плановые работы на странице статуса
id (number, пример: 10100) required — ID плановых работ
title (string, пример: "Плановое обновление API Gateway") required — Заголовок плановых работ
description (string, пример: "Во время обновления возможны кратковременные перерывы в работе API и панели управления.") required — Описание плановых работ
started_at (string (date-time), пример: "2026-03-20T01:00:00.000Z") required — Время начала плановых работ
ended_at (string (date-time), пример: "2026-03-20T03:00:00.000Z") required — Время завершения плановых работ
servers (array of object) required — Сервисы на странице статуса, затрагиваемые плановыми работами
id (number, пример: 1) required — ID сервиса на status page
name (string, пример: "API Gateway") required — Публичное имя сервиса на странице статуса
updates (array of object) required — История обновлений по плановым работам
id (number, пример: 10100) required — ID обновления внутри записи плановых работ
message (string, пример: "Работы идут по плану. Возможны кратковременные перерывы в работе API.") required — Текст апдейта
is_initial (boolean, пример: true) required — Является ли запись стартовым сообщением
published_at (string (date-time), пример: "2026-03-06T16:12:00.000Z") required — Когда обновление было опубликовано
servers (array of object) required — Сервисы, которых касается это обновление
id (number, пример: 1) required — ID сервиса на status page
name (string, пример: "API Gateway") required — Публичное имя сервиса на странице статуса
created_at (string (date-time), пример: "2026-03-18T12:00:00.000Z") required — Дата создания записи
created_at (string (date-time), пример: "2024-01-01T00:00:00.000Z") required — Дата создания страницы статуса
Пример:
[
{
"id": 1,
"name": "Statuser",
"status": "operational",
"slug": "statuser",
"description": "Описание страницы статуса",
"logo_url": "https://example.com/logo.png",
"favicon_url": "https://example.com/favicon.png",
"company_url": "https://example.com",
"support_url": "support@example.com",
"domains": [
{
"domain": "up.example.com",
"status": "active"
}
],
"is_indexed": true,
"is_published": true,
"is_white_labeled": false,
"timeline_days": 60,
"timezone": "Europe/Moscow",
"uptime_decimal_places": 2,
"theme_mode": "user",
"is_not_monitored_operational": false,
"minimum_incident_duration": 0,
"is_password_protected": true,
"servers": [
{
"name": "My Server",
"description": "My Server",
"uptime": 99.93,
"current_status": "operational",
"order": 99.93,
"group_id": 1,
"availability": [
[
null
]
]
}
],
"groups": [
{
"id": 1,
"name": "Бэкенд-сервисы",
"description": "Группа для основных API-сервисов",
"order": 0,
"status": "operational"
}
],
"incident_reports": [
{
"id": 10100,
"title": "Проблемы с доступностью API Gateway",
"started_at": "2026-03-06T16:10:00.000Z",
"current_status": "degraded",
"incidents": [
{
"incident_id": 42,
"server_id": 7,
"server_name": "API Gateway",
"status": "ongoing",
"started_at": "2026-03-06T16:10:00.000Z",
"ended_at": "2026-03-06T16:45:00.000Z"
}
],
"servers": [
{
"id": 1,
"name": "API Gateway",
"status": "degraded"
}
],
"updates": [
{
"id": 10100,
"message": "Мы нашли причину сбоя и уже выкатываем исправление. Следующее обновление через 10 минут",
"is_initial": true,
"published_at": "2026-03-06T16:12:00.000Z",
"servers": [
{
"id": 1,
"name": "API Gateway",
"status": "degraded"
}
]
}
]
}
],
"planned_maintenances": [
{
"id": 10100,
"title": "Плановое обновление API Gateway",
"description": "Во время обновления возможны кратковременные перерывы в работе API и панели управления.",
"started_at": "2026-03-20T01:00:00.000Z",
"ended_at": "2026-03-20T03:00:00.000Z",
"servers": [
{
"id": 1,
"name": "API Gateway"
}
],
"updates": [
{
"id": 10100,
"message": "Работы идут по плану. Возможны кратковременные перерывы в работе API.",
"is_initial": true,
"published_at": "2026-03-06T16:12:00.000Z",
"servers": [
{
"id": 1,
"name": "API Gateway"
}
]
}
],
"created_at": "2026-03-18T12:00:00.000Z"
}
],
"created_at": "2024-01-01T00:00:00.000Z"
}
]
POST /v1/status-pages — Создать новую страницу статуса
Создаёт публичную страницу статуса со списком серверов и инцидентов. Если slug не передан — генерируется случайный. Кастомный домен, защита паролем, отключение индексации, white-label, расширенный таймлайн и кастомный minimum_incident_duration валидируются по фичам тарифа. Учитывается лимит страниц на аккаунте (status_pages_limit): при превышении возвращается 403.
Аутентификация: bearer
Тело запроса (обязательное)
Content-Type: application/json
object
name (string, пример: "Statuser") required — Название страницы статуса
slug (string, пример: "statuser") — Уникальный путь страницы статуса
description (string | null, пример: "Описание страницы статуса") — Описание страницы статуса
logo_url (string | null, пример: "https://example.com/logo.png") — URL логотипа
favicon_url (string | null, пример: "https://example.com/favicon.png") — URL фавикона
company_url (string | null, пример: "https://example.com") — URL сайта компании
support_url (string | null, пример: "support@example.com") — Email службы поддержки
domain (string | null, пример: "status.example.com") — Собственный домен страницы статуса
is_indexed (boolean, пример: true) — Индексируется ли страница поисковиками
is_published (boolean, пример: true) — Опубликована ли страница
is_white_labeled (boolean, пример: false) — Вайт-лейблинг: скрыть бренд Statuser
timeline_days (number, enum: 7, 14, 30, 60, 90, 180, пример: 60) — Количество дней таймлайна на странице статуса
timezone (string, пример: "Europe/Moscow") — Таймзона, в которой считаются дни на странице статуса
uptime_decimal_places (number, пример: 2) — Количество знаков после запятой для аптайма
theme_mode (string, enum: "user", "light", "dark", пример: "user") — Режим темы страницы статуса
is_not_monitored_operational (boolean, пример: false) — Показывать ли статус Не в мониторинге зелёным, как Доступен
minimum_incident_duration (number, пример: 0) — Минимальная длительность инцидента в секундах для отображения на странице
password (string | null, пример: "mysecretpassword") — Пароль для доступа к странице статуса
Пример:
{
"name": "Statuser",
"slug": "statuser",
"description": "Описание страницы статуса",
"logo_url": "https://example.com/logo.png",
"favicon_url": "https://example.com/favicon.png",
"company_url": "https://example.com",
"support_url": "support@example.com",
"domain": "status.example.com",
"is_indexed": true,
"is_published": true,
"is_white_labeled": false,
"timeline_days": 60,
"timezone": "Europe/Moscow",
"uptime_decimal_places": 2,
"theme_mode": "user",
"is_not_monitored_operational": false,
"minimum_incident_duration": 0,
"password": "mysecretpassword"
}
Ответы:
201 — Страница статуса успешно создана
application/json: object
id (number, пример: 1) required — ID страницы статуса
name (string, пример: "Statuser") required — Название страницы статуса
status (string, пример: "operational") required — Общий статус сервисов
slug (string, пример: "statuser") required — Уникальный путь страницы статуса
description (object | null) required — Описание страницы статуса
logo_url (object | null) required — URL логотипа
favicon_url (object | null) required — URL фавикона
company_url (object | null) required — URL сайта компании
support_url (object | null) required — Email службы поддержки
domains (array of object) required — Привязанные к странице статуса домены
domain (string, пример: "up.example.com") required — Домен страницы статуса
status (string, пример: "active") required — Статус домена
is_indexed (boolean, пример: true) required — Индексируется ли страница поисковиками
is_published (boolean, пример: true) required — Опубликована ли страница
is_white_labeled (boolean, пример: false) required — Вайт-лейблинг: скрыт ли бренд Statuser
timeline_days (number, пример: 60) required — Количество дней, показываемых в таймлайне
timezone (string, пример: "Europe/Moscow") required — Таймзона страницы статуса
uptime_decimal_places (number, пример: 2) required — Количество знаков после запятой у аптайма
theme_mode (string, enum: "user", "light", "dark", пример: "user") required — Режим темы страницы статуса
is_not_monitored_operational (boolean, пример: false) required — Показывать ли статус Не в мониторинге зелёным, как Доступен
minimum_incident_duration (number, пример: 0) required — Минимальная длительность инцидента в секундах для отображения на странице
is_password_protected (boolean, пример: true) required — Защищена ли страница статуса паролем
servers (array of object) required — Список серверов, добавленных на страницу статуса
name (string, пример: "My Server") required — Публичное имя сервера на странице статуса
description (string | null, пример: "My Server") required — Комментарий к серверу
uptime (number, пример: 99.93) required — Общее время безотказной работы сервера в процентах
current_status (string, enum: "operational", "downtime", "not_monitored", "degraded", "under_maintenance", пример: "operational") required — Статус доступности сервера
order (number, пример: 99.93) required — Общее время безотказной работы сервера в процентах
group_id (number, пример: 1) required — Идентификатор группы серверов
availability (array of array of unknown) required — Доступность сервера по датам
groups (array of object) required — Список групп серверов
id (number, пример: 1) required — Идентификатор группы
name (string, пример: "Бэкенд-сервисы") required — Имя группы
description (string | null, пример: "Группа для основных API-сервисов") required — Описание группы
order (number, пример: 0) required — Порядок отображения группы
status (string, пример: "operational") required — Статус группы
incident_reports (array of object) required — Публичные отчёты по инцидентам на странице статуса
id (number, пример: 10100) required — ID отчёта
title (string, пример: "Проблемы с доступностью API Gateway") required — Заголовок отчёта
started_at (string (date-time), пример: "2026-03-06T16:10:00.000Z") required — Время начала отчёта
current_status (string, enum: "not_affected", "downtime", "degraded", "resolved", пример: "degraded") required — Текущий статус отчёта по последнему известному состоянию сервисов
incidents (array of object) required — Инциденты, связанные с отчётом
incident_id (number, пример: 42) required — ID инцидента
server_id (number, пример: 7) required — ID сервера, к которому относится инцидент
server_name (string, пример: "API Gateway") required — Публичное имя сервера на странице статуса
status (string, enum: "ongoing", "resolved", "dismissed", "auto_closed_changed", "auto_closed_timeout", пример: "ongoing") required — Статус инцидента
started_at (string (date-time), пример: "2026-03-06T16:10:00.000Z") required — Время начала инцидента
ended_at (object | null) required — Время окончания инцидента
servers (array of object) required — Актуальные статусы сервисов внутри отчёта
id (number, пример: 1) required — ID сервиса на status page
name (string, пример: "API Gateway") required — Публичное имя сервиса на странице статуса
status (string, enum: "not_affected", "downtime", "degraded", "resolved", пример: "degraded") required — Статус влияния на сервис
updates (array of object) required — Таймлайн сообщений внутри отчёта
id (number, пример: 10100) required — ID обновления внутри отчёта
message (string, пример: "Мы нашли причину сбоя и уже выкатываем исправление. Следующее обновление через 10 минут") required — Текст апдейта
is_initial (boolean, пример: true) required — Является ли запись стартовым сообщением отчёта
published_at (string (date-time), пример: "2026-03-06T16:12:00.000Z") required — Когда обновление было опубликовано
servers (array of object) required — Статусы серверов на момент этого обновления
id (number, пример: 1) required — ID сервиса на status page
name (string, пример: "API Gateway") required — Публичное имя сервиса на странице статуса
status (string, enum: "not_affected", "downtime", "degraded", "resolved", пример: "degraded") required — Статус влияния на сервис
planned_maintenances (array of object) required — Плановые работы на странице статуса
id (number, пример: 10100) required — ID плановых работ
title (string, пример: "Плановое обновление API Gateway") required — Заголовок плановых работ
description (string, пример: "Во время обновления возможны кратковременные перерывы в работе API и панели управления.") required — Описание плановых работ
started_at (string (date-time), пример: "2026-03-20T01:00:00.000Z") required — Время начала плановых работ
ended_at (string (date-time), пример: "2026-03-20T03:00:00.000Z") required — Время завершения плановых работ
servers (array of object) required — Сервисы на странице статуса, затрагиваемые плановыми работами
id (number, пример: 1) required — ID сервиса на status page
name (string, пример: "API Gateway") required — Публичное имя сервиса на странице статуса
updates (array of object) required — История обновлений по плановым работам
id (number, пример: 10100) required — ID обновления внутри записи плановых работ
message (string, пример: "Работы идут по плану. Возможны кратковременные перерывы в работе API.") required — Текст апдейта
is_initial (boolean, пример: true) required — Является ли запись стартовым сообщением
published_at (string (date-time), пример: "2026-03-06T16:12:00.000Z") required — Когда обновление было опубликовано
servers (array of object) required — Сервисы, которых касается это обновление
id (number, пример: 1) required — ID сервиса на status page
name (string, пример: "API Gateway") required — Публичное имя сервиса на странице статуса
created_at (string (date-time), пример: "2026-03-18T12:00:00.000Z") required — Дата создания записи
created_at (string (date-time), пример: "2024-01-01T00:00:00.000Z") required — Дата создания страницы статуса
Пример:
{
"id": 1,
"name": "Statuser",
"status": "operational",
"slug": "statuser",
"description": "Описание страницы статуса",
"logo_url": "https://example.com/logo.png",
"favicon_url": "https://example.com/favicon.png",
"company_url": "https://example.com",
"support_url": "support@example.com",
"domains": [
{
"domain": "up.example.com",
"status": "active"
}
],
"is_indexed": true,
"is_published": true,
"is_white_labeled": false,
"timeline_days": 60,
"timezone": "Europe/Moscow",
"uptime_decimal_places": 2,
"theme_mode": "user",
"is_not_monitored_operational": false,
"minimum_incident_duration": 0,
"is_password_protected": true,
"servers": [
{
"name": "My Server",
"description": "My Server",
"uptime": 99.93,
"current_status": "operational",
"order": 99.93,
"group_id": 1,
"availability": [
[
null
]
]
}
],
"groups": [
{
"id": 1,
"name": "Бэкенд-сервисы",
"description": "Группа для основных API-сервисов",
"order": 0,
"status": "operational"
}
],
"incident_reports": [
{
"id": 10100,
"title": "Проблемы с доступностью API Gateway",
"started_at": "2026-03-06T16:10:00.000Z",
"current_status": "degraded",
"incidents": [
{
"incident_id": 42,
"server_id": 7,
"server_name": "API Gateway",
"status": "ongoing",
"started_at": "2026-03-06T16:10:00.000Z",
"ended_at": "2026-03-06T16:45:00.000Z"
}
],
"servers": [
{
"id": 1,
"name": "API Gateway",
"status": "degraded"
}
],
"updates": [
{
"id": 10100,
"message": "Мы нашли причину сбоя и уже выкатываем исправление. Следующее обновление через 10 минут",
"is_initial": true,
"published_at": "2026-03-06T16:12:00.000Z",
"servers": [
{
"id": 1,
"name": "API Gateway",
"status": "degraded"
}
]
}
]
}
],
"planned_maintenances": [
{
"id": 10100,
"title": "Плановое обновление API Gateway",
"description": "Во время обновления возможны кратковременные перерывы в работе API и панели управления.",
"started_at": "2026-03-20T01:00:00.000Z",
"ended_at": "2026-03-20T03:00:00.000Z",
"servers": [
{
"id": 1,
"name": "API Gateway"
}
],
"updates": [
{
"id": 10100,
"message": "Работы идут по плану. Возможны кратковременные перерывы в работе API.",
"is_initial": true,
"published_at": "2026-03-06T16:12:00.000Z",
"servers": [
{
"id": 1,
"name": "API Gateway"
}
]
}
],
"created_at": "2026-03-18T12:00:00.000Z"
}
],
"created_at": "2024-01-01T00:00:00.000Z"
}
404 — Страница не найдена
GET /v1/status-pages/{id} — Получить страницу статуса
Возвращает полную конфигурацию одной страницы статуса по id: настройки, группы, привязанные серверы и кастомные домены. Не используется для публичного отображения страницы конечному пользователю — это эндпоинт для управления.
Аутентификация: bearer
Параметры (path):
Ответы:
200 — Страница статуса успешно получена
application/json: object
id (number, пример: 1) required — ID страницы статуса
name (string, пример: "Statuser") required — Название страницы статуса
status (string, пример: "operational") required — Общий статус сервисов
slug (string, пример: "statuser") required — Уникальный путь страницы статуса
description (object | null) required — Описание страницы статуса
logo_url (object | null) required — URL логотипа
favicon_url (object | null) required — URL фавикона
company_url (object | null) required — URL сайта компании
support_url (object | null) required — Email службы поддержки
domains (array of object) required — Привязанные к странице статуса домены
domain (string, пример: "up.example.com") required — Домен страницы статуса
status (string, пример: "active") required — Статус домена
is_indexed (boolean, пример: true) required — Индексируется ли страница поисковиками
is_published (boolean, пример: true) required — Опубликована ли страница
is_white_labeled (boolean, пример: false) required — Вайт-лейблинг: скрыт ли бренд Statuser
timeline_days (number, пример: 60) required — Количество дней, показываемых в таймлайне
timezone (string, пример: "Europe/Moscow") required — Таймзона страницы статуса
uptime_decimal_places (number, пример: 2) required — Количество знаков после запятой у аптайма
theme_mode (string, enum: "user", "light", "dark", пример: "user") required — Режим темы страницы статуса
is_not_monitored_operational (boolean, пример: false) required — Показывать ли статус Не в мониторинге зелёным, как Доступен
minimum_incident_duration (number, пример: 0) required — Минимальная длительность инцидента в секундах для отображения на странице
is_password_protected (boolean, пример: true) required — Защищена ли страница статуса паролем
servers (array of object) required — Список серверов, добавленных на страницу статуса
name (string, пример: "My Server") required — Публичное имя сервера на странице статуса
description (string | null, пример: "My Server") required — Комментарий к серверу
uptime (number, пример: 99.93) required — Общее время безотказной работы сервера в процентах
current_status (string, enum: "operational", "downtime", "not_monitored", "degraded", "under_maintenance", пример: "operational") required — Статус доступности сервера
order (number, пример: 99.93) required — Общее время безотказной работы сервера в процентах
group_id (number, пример: 1) required — Идентификатор группы серверов
availability (array of array of unknown) required — Доступность сервера по датам
groups (array of object) required — Список групп серверов
id (number, пример: 1) required — Идентификатор группы
name (string, пример: "Бэкенд-сервисы") required — Имя группы
description (string | null, пример: "Группа для основных API-сервисов") required — Описание группы
order (number, пример: 0) required — Порядок отображения группы
status (string, пример: "operational") required — Статус группы
incident_reports (array of object) required — Публичные отчёты по инцидентам на странице статуса
id (number, пример: 10100) required — ID отчёта
title (string, пример: "Проблемы с доступностью API Gateway") required — Заголовок отчёта
started_at (string (date-time), пример: "2026-03-06T16:10:00.000Z") required — Время начала отчёта
current_status (string, enum: "not_affected", "downtime", "degraded", "resolved", пример: "degraded") required — Текущий статус отчёта по последнему известному состоянию сервисов
incidents (array of object) required — Инциденты, связанные с отчётом
incident_id (number, пример: 42) required — ID инцидента
server_id (number, пример: 7) required — ID сервера, к которому относится инцидент
server_name (string, пример: "API Gateway") required — Публичное имя сервера на странице статуса
status (string, enum: "ongoing", "resolved", "dismissed", "auto_closed_changed", "auto_closed_timeout", пример: "ongoing") required — Статус инцидента
started_at (string (date-time), пример: "2026-03-06T16:10:00.000Z") required — Время начала инцидента
ended_at (object | null) required — Время окончания инцидента
servers (array of object) required — Актуальные статусы сервисов внутри отчёта
id (number, пример: 1) required — ID сервиса на status page
name (string, пример: "API Gateway") required — Публичное имя сервиса на странице статуса
status (string, enum: "not_affected", "downtime", "degraded", "resolved", пример: "degraded") required — Статус влияния на сервис
updates (array of object) required — Таймлайн сообщений внутри отчёта
id (number, пример: 10100) required — ID обновления внутри отчёта
message (string, пример: "Мы нашли причину сбоя и уже выкатываем исправление. Следующее обновление через 10 минут") required — Текст апдейта
is_initial (boolean, пример: true) required — Является ли запись стартовым сообщением отчёта
published_at (string (date-time), пример: "2026-03-06T16:12:00.000Z") required — Когда обновление было опубликовано
servers (array of object) required — Статусы серверов на момент этого обновления
id (number, пример: 1) required — ID сервиса на status page
name (string, пример: "API Gateway") required — Публичное имя сервиса на странице статуса
status (string, enum: "not_affected", "downtime", "degraded", "resolved", пример: "degraded") required — Статус влияния на сервис
planned_maintenances (array of object) required — Плановые работы на странице статуса
id (number, пример: 10100) required — ID плановых работ
title (string, пример: "Плановое обновление API Gateway") required — Заголовок плановых работ
description (string, пример: "Во время обновления возможны кратковременные перерывы в работе API и панели управления.") required — Описание плановых работ
started_at (string (date-time), пример: "2026-03-20T01:00:00.000Z") required — Время начала плановых работ
ended_at (string (date-time), пример: "2026-03-20T03:00:00.000Z") required — Время завершения плановых работ
servers (array of object) required — Сервисы на странице статуса, затрагиваемые плановыми работами
id (number, пример: 1) required — ID сервиса на status page
name (string, пример: "API Gateway") required — Публичное имя сервиса на странице статуса
updates (array of object) required — История обновлений по плановым работам
id (number, пример: 10100) required — ID обновления внутри записи плановых работ
message (string, пример: "Работы идут по плану. Возможны кратковременные перерывы в работе API.") required — Текст апдейта
is_initial (boolean, пример: true) required — Является ли запись стартовым сообщением
published_at (string (date-time), пример: "2026-03-06T16:12:00.000Z") required — Когда обновление было опубликовано
servers (array of object) required — Сервисы, которых касается это обновление
id (number, пример: 1) required — ID сервиса на status page
name (string, пример: "API Gateway") required — Публичное имя сервиса на странице статуса
created_at (string (date-time), пример: "2026-03-18T12:00:00.000Z") required — Дата создания записи
created_at (string (date-time), пример: "2024-01-01T00:00:00.000Z") required — Дата создания страницы статуса
Пример:
{
"id": 1,
"name": "Statuser",
"status": "operational",
"slug": "statuser",
"description": "Описание страницы статуса",
"logo_url": "https://example.com/logo.png",
"favicon_url": "https://example.com/favicon.png",
"company_url": "https://example.com",
"support_url": "support@example.com",
"domains": [
{
"domain": "up.example.com",
"status": "active"
}
],
"is_indexed": true,
"is_published": true,
"is_white_labeled": false,
"timeline_days": 60,
"timezone": "Europe/Moscow",
"uptime_decimal_places": 2,
"theme_mode": "user",
"is_not_monitored_operational": false,
"minimum_incident_duration": 0,
"is_password_protected": true,
"servers": [
{
"name": "My Server",
"description": "My Server",
"uptime": 99.93,
"current_status": "operational",
"order": 99.93,
"group_id": 1,
"availability": [
[
null
]
]
}
],
"groups": [
{
"id": 1,
"name": "Бэкенд-сервисы",
"description": "Группа для основных API-сервисов",
"order": 0,
"status": "operational"
}
],
"incident_reports": [
{
"id": 10100,
"title": "Проблемы с доступностью API Gateway",
"started_at": "2026-03-06T16:10:00.000Z",
"current_status": "degraded",
"incidents": [
{
"incident_id": 42,
"server_id": 7,
"server_name": "API Gateway",
"status": "ongoing",
"started_at": "2026-03-06T16:10:00.000Z",
"ended_at": "2026-03-06T16:45:00.000Z"
}
],
"servers": [
{
"id": 1,
"name": "API Gateway",
"status": "degraded"
}
],
"updates": [
{
"id": 10100,
"message": "Мы нашли причину сбоя и уже выкатываем исправление. Следующее обновление через 10 минут",
"is_initial": true,
"published_at": "2026-03-06T16:12:00.000Z",
"servers": [
{
"id": 1,
"name": "API Gateway",
"status": "degraded"
}
]
}
]
}
],
"planned_maintenances": [
{
"id": 10100,
"title": "Плановое обновление API Gateway",
"description": "Во время обновления возможны кратковременные перерывы в работе API и панели управления.",
"started_at": "2026-03-20T01:00:00.000Z",
"ended_at": "2026-03-20T03:00:00.000Z",
"servers": [
{
"id": 1,
"name": "API Gateway"
}
],
"updates": [
{
"id": 10100,
"message": "Работы идут по плану. Возможны кратковременные перерывы в работе API.",
"is_initial": true,
"published_at": "2026-03-06T16:12:00.000Z",
"servers": [
{
"id": 1,
"name": "API Gateway"
}
]
}
],
"created_at": "2026-03-18T12:00:00.000Z"
}
],
"created_at": "2024-01-01T00:00:00.000Z"
}
404 — Страница не найдена
PATCH /v1/status-pages/{id} — Обновить страницу статуса
Частичное обновление настроек страницы статуса: название, slug, описание, ссылки на лого/favicon, кастомный домен, тема, временная зона, точность uptime, защита паролем, white-label, индексация, длительность таймлайна и порог отображения инцидентов. Передавайте только меняющиеся поля. Конфликты по slug/домену → 409, недоступность фич тарифа (кастомный домен, защита паролем, отключение индексации, white-label, расширенный таймлайн, кастомный minimum_incident_duration) → 403.
Аутентификация: bearer
Параметры (path):
Тело запроса (обязательное)
Content-Type: application/json
object
name (string, пример: "Statuser") — Название страницы статуса
slug (string, пример: "statuser") — Уникальный путь страницы статуса
description (string | null, пример: "Описание страницы статуса") — Описание страницы статуса
logo_url (string | null, пример: "https://example.com/logo.png") — URL логотипа
favicon_url (string | null, пример: "https://example.com/favicon.png") — URL фавикона
company_url (string | null, пример: "https://example.com") — URL сайта компании
support_url (string | null, пример: "support@example.com") — Email службы поддержки
domain (string | null, пример: "status.example.com") — Собственный домен страницы статуса
is_indexed (boolean, пример: true) — Индексируется ли страница поисковиками
is_published (boolean, пример: true) — Опубликована ли страница
is_white_labeled (boolean, пример: false) — Вайт-лейблинг: скрыть бренд Statuser
timeline_days (number, пример: 60) — Количество дней таймлайна на странице статуса
timezone (string, пример: "Europe/Moscow") — Таймзона, в которой считаются дни на странице статуса
uptime_decimal_places (number, пример: 2) — Количество знаков после запятой для аптайма
theme_mode (string, enum: "user", "light", "dark", пример: "user") — Режим темы страницы статуса
is_not_monitored_operational (boolean, пример: false) — Показывать ли статус Не в мониторинге зелёным, как Доступен
minimum_incident_duration (number, пример: 0) — Минимальная длительность инцидента в секундах для отображения на странице
password (string | null, пример: "mysecretpassword") — Пароль для доступа к странице статуса
Пример:
{
"name": "Statuser",
"slug": "statuser",
"description": "Описание страницы статуса",
"logo_url": "https://example.com/logo.png",
"favicon_url": "https://example.com/favicon.png",
"company_url": "https://example.com",
"support_url": "support@example.com",
"domain": "status.example.com",
"is_indexed": true,
"is_published": true,
"is_white_labeled": false,
"timeline_days": 60,
"timezone": "Europe/Moscow",
"uptime_decimal_places": 2,
"theme_mode": "user",
"is_not_monitored_operational": false,
"minimum_incident_duration": 0,
"password": "mysecretpassword"
}
Ответы:
200 — Страница успешно обновлена
application/json: object
id (number, пример: 1) required — ID страницы статуса
name (string, пример: "Statuser") required — Название страницы статуса
status (string, пример: "operational") required — Общий статус сервисов
slug (string, пример: "statuser") required — Уникальный путь страницы статуса
description (object | null) required — Описание страницы статуса
logo_url (object | null) required — URL логотипа
favicon_url (object | null) required — URL фавикона
company_url (object | null) required — URL сайта компании
support_url (object | null) required — Email службы поддержки
domains (array of object) required — Привязанные к странице статуса домены
domain (string, пример: "up.example.com") required — Домен страницы статуса
status (string, пример: "active") required — Статус домена
is_indexed (boolean, пример: true) required — Индексируется ли страница поисковиками
is_published (boolean, пример: true) required — Опубликована ли страница
is_white_labeled (boolean, пример: false) required — Вайт-лейблинг: скрыт ли бренд Statuser
timeline_days (number, пример: 60) required — Количество дней, показываемых в таймлайне
timezone (string, пример: "Europe/Moscow") required — Таймзона страницы статуса
uptime_decimal_places (number, пример: 2) required — Количество знаков после запятой у аптайма
theme_mode (string, enum: "user", "light", "dark", пример: "user") required — Режим темы страницы статуса
is_not_monitored_operational (boolean, пример: false) required — Показывать ли статус Не в мониторинге зелёным, как Доступен
minimum_incident_duration (number, пример: 0) required — Минимальная длительность инцидента в секундах для отображения на странице
is_password_protected (boolean, пример: true) required — Защищена ли страница статуса паролем
servers (array of object) required — Список серверов, добавленных на страницу статуса
name (string, пример: "My Server") required — Публичное имя сервера на странице статуса
description (string | null, пример: "My Server") required — Комментарий к серверу
uptime (number, пример: 99.93) required — Общее время безотказной работы сервера в процентах
current_status (string, enum: "operational", "downtime", "not_monitored", "degraded", "under_maintenance", пример: "operational") required — Статус доступности сервера
order (number, пример: 99.93) required — Общее время безотказной работы сервера в процентах
group_id (number, пример: 1) required — Идентификатор группы серверов
availability (array of array of unknown) required — Доступность сервера по датам
groups (array of object) required — Список групп серверов
id (number, пример: 1) required — Идентификатор группы
name (string, пример: "Бэкенд-сервисы") required — Имя группы
description (string | null, пример: "Группа для основных API-сервисов") required — Описание группы
order (number, пример: 0) required — Порядок отображения группы
status (string, пример: "operational") required — Статус группы
incident_reports (array of object) required — Публичные отчёты по инцидентам на странице статуса
id (number, пример: 10100) required — ID отчёта
title (string, пример: "Проблемы с доступностью API Gateway") required — Заголовок отчёта
started_at (string (date-time), пример: "2026-03-06T16:10:00.000Z") required — Время начала отчёта
current_status (string, enum: "not_affected", "downtime", "degraded", "resolved", пример: "degraded") required — Текущий статус отчёта по последнему известному состоянию сервисов
incidents (array of object) required — Инциденты, связанные с отчётом
incident_id (number, пример: 42) required — ID инцидента
server_id (number, пример: 7) required — ID сервера, к которому относится инцидент
server_name (string, пример: "API Gateway") required — Публичное имя сервера на странице статуса
status (string, enum: "ongoing", "resolved", "dismissed", "auto_closed_changed", "auto_closed_timeout", пример: "ongoing") required — Статус инцидента
started_at (string (date-time), пример: "2026-03-06T16:10:00.000Z") required — Время начала инцидента
ended_at (object | null) required — Время окончания инцидента
servers (array of object) required — Актуальные статусы сервисов внутри отчёта
id (number, пример: 1) required — ID сервиса на status page
name (string, пример: "API Gateway") required — Публичное имя сервиса на странице статуса
status (string, enum: "not_affected", "downtime", "degraded", "resolved", пример: "degraded") required — Статус влияния на сервис
updates (array of object) required — Таймлайн сообщений внутри отчёта
id (number, пример: 10100) required — ID обновления внутри отчёта
message (string, пример: "Мы нашли причину сбоя и уже выкатываем исправление. Следующее обновление через 10 минут") required — Текст апдейта
is_initial (boolean, пример: true) required — Является ли запись стартовым сообщением отчёта
published_at (string (date-time), пример: "2026-03-06T16:12:00.000Z") required — Когда обновление было опубликовано
servers (array of object) required — Статусы серверов на момент этого обновления
id (number, пример: 1) required — ID сервиса на status page
name (string, пример: "API Gateway") required — Публичное имя сервиса на странице статуса
status (string, enum: "not_affected", "downtime", "degraded", "resolved", пример: "degraded") required — Статус влияния на сервис
planned_maintenances (array of object) required — Плановые работы на странице статуса
id (number, пример: 10100) required — ID плановых работ
title (string, пример: "Плановое обновление API Gateway") required — Заголовок плановых работ
description (string, пример: "Во время обновления возможны кратковременные перерывы в работе API и панели управления.") required — Описание плановых работ
started_at (string (date-time), пример: "2026-03-20T01:00:00.000Z") required — Время начала плановых работ
ended_at (string (date-time), пример: "2026-03-20T03:00:00.000Z") required — Время завершения плановых работ
servers (array of object) required — Сервисы на странице статуса, затрагиваемые плановыми работами
id (number, пример: 1) required — ID сервиса на status page
name (string, пример: "API Gateway") required — Публичное имя сервиса на странице статуса
updates (array of object) required — История обновлений по плановым работам
id (number, пример: 10100) required — ID обновления внутри записи плановых работ
message (string, пример: "Работы идут по плану. Возможны кратковременные перерывы в работе API.") required — Текст апдейта
is_initial (boolean, пример: true) required — Является ли запись стартовым сообщением
published_at (string (date-time), пример: "2026-03-06T16:12:00.000Z") required — Когда обновление было опубликовано
servers (array of object) required — Сервисы, которых касается это обновление
id (number, пример: 1) required — ID сервиса на status page
name (string, пример: "API Gateway") required — Публичное имя сервиса на странице статуса
created_at (string (date-time), пример: "2026-03-18T12:00:00.000Z") required — Дата создания записи
created_at (string (date-time), пример: "2024-01-01T00:00:00.000Z") required — Дата создания страницы статуса
Пример:
{
"id": 1,
"name": "Statuser",
"status": "operational",
"slug": "statuser",
"description": "Описание страницы статуса",
"logo_url": "https://example.com/logo.png",
"favicon_url": "https://example.com/favicon.png",
"company_url": "https://example.com",
"support_url": "support@example.com",
"domains": [
{
"domain": "up.example.com",
"status": "active"
}
],
"is_indexed": true,
"is_published": true,
"is_white_labeled": false,
"timeline_days": 60,
"timezone": "Europe/Moscow",
"uptime_decimal_places": 2,
"theme_mode": "user",
"is_not_monitored_operational": false,
"minimum_incident_duration": 0,
"is_password_protected": true,
"servers": [
{
"name": "My Server",
"description": "My Server",
"uptime": 99.93,
"current_status": "operational",
"order": 99.93,
"group_id": 1,
"availability": [
[
null
]
]
}
],
"groups": [
{
"id": 1,
"name": "Бэкенд-сервисы",
"description": "Группа для основных API-сервисов",
"order": 0,
"status": "operational"
}
],
"incident_reports": [
{
"id": 10100,
"title": "Проблемы с доступностью API Gateway",
"started_at": "2026-03-06T16:10:00.000Z",
"current_status": "degraded",
"incidents": [
{
"incident_id": 42,
"server_id": 7,
"server_name": "API Gateway",
"status": "ongoing",
"started_at": "2026-03-06T16:10:00.000Z",
"ended_at": "2026-03-06T16:45:00.000Z"
}
],
"servers": [
{
"id": 1,
"name": "API Gateway",
"status": "degraded"
}
],
"updates": [
{
"id": 10100,
"message": "Мы нашли причину сбоя и уже выкатываем исправление. Следующее обновление через 10 минут",
"is_initial": true,
"published_at": "2026-03-06T16:12:00.000Z",
"servers": [
{
"id": 1,
"name": "API Gateway",
"status": "degraded"
}
]
}
]
}
],
"planned_maintenances": [
{
"id": 10100,
"title": "Плановое обновление API Gateway",
"description": "Во время обновления возможны кратковременные перерывы в работе API и панели управления.",
"started_at": "2026-03-20T01:00:00.000Z",
"ended_at": "2026-03-20T03:00:00.000Z",
"servers": [
{
"id": 1,
"name": "API Gateway"
}
],
"updates": [
{
"id": 10100,
"message": "Работы идут по плану. Возможны кратковременные перерывы в работе API.",
"is_initial": true,
"published_at": "2026-03-06T16:12:00.000Z",
"servers": [
{
"id": 1,
"name": "API Gateway"
}
]
}
],
"created_at": "2026-03-18T12:00:00.000Z"
}
],
"created_at": "2024-01-01T00:00:00.000Z"
}
404 — Страница не найдена
DELETE /v1/status-pages/{id} — Удалить страницу статуса
Полностью удаляет страницу статуса вместе с её настройками, группами и привязкой кастомного домена. Операция необратима. Если страницу нужно временно скрыть от публики, лучше использовать PATCH /v1/status-pages/{id}/unpublished — это не удаляет конфигурацию.
Аутентификация: bearer
Параметры (path):
Ответы:
204 — Страница успешно удалена
404 — Страница не найдена
PATCH /v1/status-pages/{id}/servers — Обновить группы и серверы на странице статуса
Полностью заменяет структуру групп и список отображаемых серверов на странице (idempotent replace, не merge). Передавайте актуальный финальный набор групп со всеми вложенными server_id-ами в нужном порядке — отсутствующие в payload группы и серверы будут удалены со страницы.
Аутентификация: bearer
Параметры (path):
Тело запроса (обязательное)
Content-Type: application/json
object
groups (array of object) required — Группы серверов на странице статуса
id (number, пример: 123) — Уникальный ID группы серверов. Передайте, чтобы обновить существующую группу; опустите, чтобы создать новую.
name (string, пример: "Backend") required — Название группы серверов
order (number, пример: 0) required — Порядок отображения группы на странице статуса
description (string | null, пример: "Группа основных бэкенд-сервисов") — Описание группы
servers (array of object) required — Список серверов в этой группе
name (string, пример: "API Server") required — Отображаемое имя сервера на странице статуса
server_id (number, пример: 5) required — ID сервера из общего списка серверов
description (string | null, пример: "Описание сервера") — Комментарий к серверу
order (number, пример: 0) required — Порядок отображения сервера внутри группы
Пример:
{
"groups": [
{
"id": 123,
"name": "Backend",
"order": 0,
"description": "Группа основных бэкенд-сервисов",
"servers": [
{
"name": "API Server",
"server_id": 5,
"description": "Описание сервера",
"order": 0
}
]
}
]
}
Ответы:
200 — Группы и серверы обновлены
404 — Страница не найдена
PATCH /v1/status-pages/{id}/{action} — Опубликовать или снять с публикации страницу статуса
Меняет видимость страницы для конечных пользователей без удаления её настроек: action = published делает страницу доступной по slug/домену, unpublished — скрывает её. Подходит для «черновых» страниц, которые временно не нужно показывать публике.
Аутентификация: bearer
Параметры (path):
id (number) required
action (string) required
Ответы:
200 — Статус публикации страницы успешно обновлён
404 — Страница не найдена
GET /v1/status-pages/{id}/incident-reports — Получить отчёты инцидентов для страницы статуса
Возвращает список инцидент-отчётов, опубликованных на странице статуса: заголовок, текущий статус, привязанные серверы и хронологию обновлений (история сообщений). Используется для отображения публичной истории инцидентов и для админ-управления постмортемами на стороне клиента.
Аутентификация: bearer
Параметры (path):
Ответы:
200
application/json: array of object
id (number, пример: 10100) required — ID отчёта
title (string, пример: "Проблемы с доступностью API Gateway") required — Заголовок отчёта
started_at (string (date-time), пример: "2026-03-06T16:10:00.000Z") required — Время начала отчёта
current_status (string, enum: "not_affected", "downtime", "degraded", "resolved", пример: "degraded") required — Текущий статус отчёта по последнему известному состоянию сервисов
incidents (array of object) required — Инциденты, связанные с отчётом
incident_id (number, пример: 42) required — ID инцидента
server_id (number, пример: 7) required — ID сервера, к которому относится инцидент
server_name (string, пример: "API Gateway") required — Публичное имя сервера на странице статуса
status (string, enum: "ongoing", "resolved", "dismissed", "auto_closed_changed", "auto_closed_timeout", пример: "ongoing") required — Статус инцидента
started_at (string (date-time), пример: "2026-03-06T16:10:00.000Z") required — Время начала инцидента
ended_at (object | null) required — Время окончания инцидента
servers (array of object) required — Актуальные статусы сервисов внутри отчёта
id (number, пример: 1) required — ID сервиса на status page
name (string, пример: "API Gateway") required — Публичное имя сервиса на странице статуса
status (string, enum: "not_affected", "downtime", "degraded", "resolved", пример: "degraded") required — Статус влияния на сервис
updates (array of object) required — Таймлайн сообщений внутри отчёта
id (number, пример: 10100) required — ID обновления внутри отчёта
message (string, пример: "Мы нашли причину сбоя и уже выкатываем исправление. Следующее обновление через 10 минут") required — Текст апдейта
is_initial (boolean, пример: true) required — Является ли запись стартовым сообщением отчёта
published_at (string (date-time), пример: "2026-03-06T16:12:00.000Z") required — Когда обновление было опубликовано
servers (array of object) required — Статусы серверов на момент этого обновления
id (number, пример: 1) required — ID сервиса на status page
name (string, пример: "API Gateway") required — Публичное имя сервиса на странице статуса
status (string, enum: "not_affected", "downtime", "degraded", "resolved", пример: "degraded") required — Статус влияния на сервис
Пример:
[
{
"id": 10100,
"title": "Проблемы с доступностью API Gateway",
"started_at": "2026-03-06T16:10:00.000Z",
"current_status": "degraded",
"incidents": [
{
"incident_id": 42,
"server_id": 7,
"server_name": "API Gateway",
"status": "ongoing",
"started_at": "2026-03-06T16:10:00.000Z",
"ended_at": "2026-03-06T16:45:00.000Z"
}
],
"servers": [
{
"id": 1,
"name": "API Gateway",
"status": "degraded"
}
],
"updates": [
{
"id": 10100,
"message": "Мы нашли причину сбоя и уже выкатываем исправление. Следующее обновление через 10 минут",
"is_initial": true,
"published_at": "2026-03-06T16:12:00.000Z",
"servers": [
{
"id": 1,
"name": "API Gateway",
"status": "degraded"
}
]
}
]
}
]
POST /v1/status-pages/{id}/incident-reports — Создать отчёт по инциденту для страницы статуса
Публикует на странице статуса новый отчёт о текущем или прошедшем инциденте — со списком затронутых серверов, заголовком и первоначальным сообщением (initial update). Дальнейшие апдейты по ходу инцидента добавляются через POST /v1/status-pages/{id}/incident-reports/{reportId}/updates. Количество отчётов ограничено помесячной квотой тарифа (status_page_incident_reports_per_month_limit) — при превышении возвращается 403.
Аутентификация: bearer
Параметры (path):
Тело запроса (обязательное)
Content-Type: application/json
object
title (string, пример: "Проблемы с доступностью API Gateway") required — Заголовок отчёта
initial_message (string, пример: "Часть пользователей может сталкиваться с ошибками 502. Команда уже расследует причину") required — Текст стартового сообщения отчёта
started_at (string (date-time), пример: "2026-03-06T16:12:00.000Z") required — Время начала отчёта
incident_ids (array of number) — Связанные инциденты, если отчёт основан на существующих инцидентах
servers (array of object) required — Стартовые статусы серверов в рамках отчёта
server_id (number, пример: 1) required — ID сервера на странице статуса
status (string, enum: "not_affected", "downtime", "degraded", "resolved", пример: "downtime") required — Статус влияния на сервер в момент создания отчёта
Пример:
{
"title": "Проблемы с доступностью API Gateway",
"initial_message": "Часть пользователей может сталкиваться с ошибками 502. Команда уже расследует причину",
"started_at": "2026-03-06T16:12:00.000Z",
"incident_ids": [
42,
43
],
"servers": [
{
"server_id": 1,
"status": "downtime"
}
]
}
Ответы:
201
application/json: object
id (number, пример: 10100) required — ID отчёта
title (string, пример: "Проблемы с доступностью API Gateway") required — Заголовок отчёта
started_at (string (date-time), пример: "2026-03-06T16:10:00.000Z") required — Время начала отчёта
current_status (string, enum: "not_affected", "downtime", "degraded", "resolved", пример: "degraded") required — Текущий статус отчёта по последнему известному состоянию сервисов
incidents (array of object) required — Инциденты, связанные с отчётом
incident_id (number, пример: 42) required — ID инцидента
server_id (number, пример: 7) required — ID сервера, к которому относится инцидент
server_name (string, пример: "API Gateway") required — Публичное имя сервера на странице статуса
status (string, enum: "ongoing", "resolved", "dismissed", "auto_closed_changed", "auto_closed_timeout", пример: "ongoing") required — Статус инцидента
started_at (string (date-time), пример: "2026-03-06T16:10:00.000Z") required — Время начала инцидента
ended_at (object | null) required — Время окончания инцидента
servers (array of object) required — Актуальные статусы сервисов внутри отчёта
id (number, пример: 1) required — ID сервиса на status page
name (string, пример: "API Gateway") required — Публичное имя сервиса на странице статуса
status (string, enum: "not_affected", "downtime", "degraded", "resolved", пример: "degraded") required — Статус влияния на сервис
updates (array of object) required — Таймлайн сообщений внутри отчёта
id (number, пример: 10100) required — ID обновления внутри отчёта
message (string, пример: "Мы нашли причину сбоя и уже выкатываем исправление. Следующее обновление через 10 минут") required — Текст апдейта
is_initial (boolean, пример: true) required — Является ли запись стартовым сообщением отчёта
published_at (string (date-time), пример: "2026-03-06T16:12:00.000Z") required — Когда обновление было опубликовано
servers (array of object) required — Статусы серверов на момент этого обновления
id (number, пример: 1) required — ID сервиса на status page
name (string, пример: "API Gateway") required — Публичное имя сервиса на странице статуса
status (string, enum: "not_affected", "downtime", "degraded", "resolved", пример: "degraded") required — Статус влияния на сервис
Пример:
{
"id": 10100,
"title": "Проблемы с доступностью API Gateway",
"started_at": "2026-03-06T16:10:00.000Z",
"current_status": "degraded",
"incidents": [
{
"incident_id": 42,
"server_id": 7,
"server_name": "API Gateway",
"status": "ongoing",
"started_at": "2026-03-06T16:10:00.000Z",
"ended_at": "2026-03-06T16:45:00.000Z"
}
],
"servers": [
{
"id": 1,
"name": "API Gateway",
"status": "degraded"
}
],
"updates": [
{
"id": 10100,
"message": "Мы нашли причину сбоя и уже выкатываем исправление. Следующее обновление через 10 минут",
"is_initial": true,
"published_at": "2026-03-06T16:12:00.000Z",
"servers": [
{
"id": 1,
"name": "API Gateway",
"status": "degraded"
}
]
}
]
}
PATCH /v1/status-pages/{id}/incident-reports/{reportId} — Обновить отчёт для страницы статуса
Редактирует поля самого отчёта (заголовок, статус, список затронутых серверов, время начала и т.д.) — это не добавление нового сообщения в таймлайн. Чтобы опубликовать новое сообщение по ходу инцидента, используйте POST /v1/status-pages/{id}/incident-reports/{reportId}/updates.
Аутентификация: bearer
Параметры (path):
id (number) required
reportId (number) required
Тело запроса (обязательное)
Content-Type: application/json
object
title (string, пример: "Проблемы с доступностью API Gateway") — Заголовок отчёта
started_at (string (date-time), пример: "2026-03-06T16:12:00.000Z") — Время начала отчёта
Пример:
{
"title": "Проблемы с доступностью API Gateway",
"started_at": "2026-03-06T16:12:00.000Z"
}
Ответы:
200
application/json: object
id (number, пример: 10100) required — ID отчёта
title (string, пример: "Проблемы с доступностью API Gateway") required — Заголовок отчёта
started_at (string (date-time), пример: "2026-03-06T16:10:00.000Z") required — Время начала отчёта
current_status (string, enum: "not_affected", "downtime", "degraded", "resolved", пример: "degraded") required — Текущий статус отчёта по последнему известному состоянию сервисов
incidents (array of object) required — Инциденты, связанные с отчётом
incident_id (number, пример: 42) required — ID инцидента
server_id (number, пример: 7) required — ID сервера, к которому относится инцидент
server_name (string, пример: "API Gateway") required — Публичное имя сервера на странице статуса
status (string, enum: "ongoing", "resolved", "dismissed", "auto_closed_changed", "auto_closed_timeout", пример: "ongoing") required — Статус инцидента
started_at (string (date-time), пример: "2026-03-06T16:10:00.000Z") required — Время начала инцидента
ended_at (object | null) required — Время окончания инцидента
servers (array of object) required — Актуальные статусы сервисов внутри отчёта
id (number, пример: 1) required — ID сервиса на status page
name (string, пример: "API Gateway") required — Публичное имя сервиса на странице статуса
status (string, enum: "not_affected", "downtime", "degraded", "resolved", пример: "degraded") required — Статус влияния на сервис
updates (array of object) required — Таймлайн сообщений внутри отчёта
id (number, пример: 10100) required — ID обновления внутри отчёта
message (string, пример: "Мы нашли причину сбоя и уже выкатываем исправление. Следующее обновление через 10 минут") required — Текст апдейта
is_initial (boolean, пример: true) required — Является ли запись стартовым сообщением отчёта
published_at (string (date-time), пример: "2026-03-06T16:12:00.000Z") required — Когда обновление было опубликовано
servers (array of object) required — Статусы серверов на момент этого обновления
id (number, пример: 1) required — ID сервиса на status page
name (string, пример: "API Gateway") required — Публичное имя сервиса на странице статуса
status (string, enum: "not_affected", "downtime", "degraded", "resolved", пример: "degraded") required — Статус влияния на сервис
Пример:
{
"id": 10100,
"title": "Проблемы с доступностью API Gateway",
"started_at": "2026-03-06T16:10:00.000Z",
"current_status": "degraded",
"incidents": [
{
"incident_id": 42,
"server_id": 7,
"server_name": "API Gateway",
"status": "ongoing",
"started_at": "2026-03-06T16:10:00.000Z",
"ended_at": "2026-03-06T16:45:00.000Z"
}
],
"servers": [
{
"id": 1,
"name": "API Gateway",
"status": "degraded"
}
],
"updates": [
{
"id": 10100,
"message": "Мы нашли причину сбоя и уже выкатываем исправление. Следующее обновление через 10 минут",
"is_initial": true,
"published_at": "2026-03-06T16:12:00.000Z",
"servers": [
{
"id": 1,
"name": "API Gateway",
"status": "degraded"
}
]
}
]
}
DELETE /v1/status-pages/{id}/incident-reports/{reportId} — Удалить отчёт по инциденту для страницы статуса
Полностью удаляет инцидент-отчёт со страницы статуса вместе со всеми его обновлениями. Операция необратима. Сами серверы и инциденты в Statuser при этом не затрагиваются — удаляется только публикация на странице.
Аутентификация: bearer
Параметры (path):
id (number) required
reportId (number) required
Ответы:
POST /v1/status-pages/{id}/incident-reports/{reportId}/updates — Добавить обновление в отчёт для страницы статуса
Добавляет новое сообщение в таймлайн отчёта об инциденте (обычно — смена статуса инцидента + текст: «Расследуем», «Идентифицировали причину», «Решено» и т.п.). Каждое обновление — отдельная запись со своим временем и статусом, она не перезаписывает предыдущие. Если задан явный publish_date, он не должен быть в будущем и не должен быть раньше времени начала отчёта — иначе 400.
Аутентификация: bearer
Параметры (path):
id (number) required
reportId (number) required
Тело запроса (обязательное)
Content-Type: application/json
object
message (string, пример: "Мы нашли причину сбоя и уже выкатываем исправление. Следующее обновление через 10 минут") required — Текст апдейта
published_at (string (date-time), пример: "2026-03-06T16:22:00.000Z") — Время публикации апдейта
servers (array of object) required — Новые статусы сервисов в рамках апдейта
server_id (number, пример: 1) required — ID сервера на странице статуса
status (string, enum: "not_affected", "downtime", "degraded", "resolved", пример: "downtime") required — Новый статус влияния на сервер
Пример:
{
"message": "Мы нашли причину сбоя и уже выкатываем исправление. Следующее обновление через 10 минут",
"published_at": "2026-03-06T16:22:00.000Z",
"servers": [
{
"server_id": 1,
"status": "downtime"
}
]
}
Ответы:
201
application/json: object
id (number, пример: 10100) required — ID отчёта
title (string, пример: "Проблемы с доступностью API Gateway") required — Заголовок отчёта
started_at (string (date-time), пример: "2026-03-06T16:10:00.000Z") required — Время начала отчёта
current_status (string, enum: "not_affected", "downtime", "degraded", "resolved", пример: "degraded") required — Текущий статус отчёта по последнему известному состоянию сервисов
incidents (array of object) required — Инциденты, связанные с отчётом
incident_id (number, пример: 42) required — ID инцидента
server_id (number, пример: 7) required — ID сервера, к которому относится инцидент
server_name (string, пример: "API Gateway") required — Публичное имя сервера на странице статуса
status (string, enum: "ongoing", "resolved", "dismissed", "auto_closed_changed", "auto_closed_timeout", пример: "ongoing") required — Статус инцидента
started_at (string (date-time), пример: "2026-03-06T16:10:00.000Z") required — Время начала инцидента
ended_at (object | null) required — Время окончания инцидента
servers (array of object) required — Актуальные статусы сервисов внутри отчёта
id (number, пример: 1) required — ID сервиса на status page
name (string, пример: "API Gateway") required — Публичное имя сервиса на странице статуса
status (string, enum: "not_affected", "downtime", "degraded", "resolved", пример: "degraded") required — Статус влияния на сервис
updates (array of object) required — Таймлайн сообщений внутри отчёта
id (number, пример: 10100) required — ID обновления внутри отчёта
message (string, пример: "Мы нашли причину сбоя и уже выкатываем исправление. Следующее обновление через 10 минут") required — Текст апдейта
is_initial (boolean, пример: true) required — Является ли запись стартовым сообщением отчёта
published_at (string (date-time), пример: "2026-03-06T16:12:00.000Z") required — Когда обновление было опубликовано
servers (array of object) required — Статусы серверов на момент этого обновления
id (number, пример: 1) required — ID сервиса на status page
name (string, пример: "API Gateway") required — Публичное имя сервиса на странице статуса
status (string, enum: "not_affected", "downtime", "degraded", "resolved", пример: "degraded") required — Статус влияния на сервис
Пример:
{
"id": 10100,
"title": "Проблемы с доступностью API Gateway",
"started_at": "2026-03-06T16:10:00.000Z",
"current_status": "degraded",
"incidents": [
{
"incident_id": 42,
"server_id": 7,
"server_name": "API Gateway",
"status": "ongoing",
"started_at": "2026-03-06T16:10:00.000Z",
"ended_at": "2026-03-06T16:45:00.000Z"
}
],
"servers": [
{
"id": 1,
"name": "API Gateway",
"status": "degraded"
}
],
"updates": [
{
"id": 10100,
"message": "Мы нашли причину сбоя и уже выкатываем исправление. Следующее обновление через 10 минут",
"is_initial": true,
"published_at": "2026-03-06T16:12:00.000Z",
"servers": [
{
"id": 1,
"name": "API Gateway",
"status": "degraded"
}
]
}
]
}
PATCH /v1/status-pages/{id}/incident-reports/{reportId}/updates/{updateId} — Обновить сообщение в отчёте для страницы статуса
Редактирует ранее опубликованное обновление в таймлайне отчёта (например, исправить опечатку или уточнить формулировку). Меняется само сообщение по updateId, остальной таймлайн не затрагивается.
Аутентификация: bearer
Параметры (path):
id (number) required
reportId (number) required
updateId (number) required
Тело запроса (обязательное)
Content-Type: application/json
object
message (string, пример: "Мы нашли причину сбоя и уже выкатываем исправление. Следующее обновление через 10 минут") required — Обновлённый текст апдейта
Пример:
{
"message": "Мы нашли причину сбоя и уже выкатываем исправление. Следующее обновление через 10 минут"
}
Ответы:
200
application/json: object
id (number, пример: 10100) required — ID отчёта
title (string, пример: "Проблемы с доступностью API Gateway") required — Заголовок отчёта
started_at (string (date-time), пример: "2026-03-06T16:10:00.000Z") required — Время начала отчёта
current_status (string, enum: "not_affected", "downtime", "degraded", "resolved", пример: "degraded") required — Текущий статус отчёта по последнему известному состоянию сервисов
incidents (array of object) required — Инциденты, связанные с отчётом
incident_id (number, пример: 42) required — ID инцидента
server_id (number, пример: 7) required — ID сервера, к которому относится инцидент
server_name (string, пример: "API Gateway") required — Публичное имя сервера на странице статуса
status (string, enum: "ongoing", "resolved", "dismissed", "auto_closed_changed", "auto_closed_timeout", пример: "ongoing") required — Статус инцидента
started_at (string (date-time), пример: "2026-03-06T16:10:00.000Z") required — Время начала инцидента
ended_at (object | null) required — Время окончания инцидента
servers (array of object) required — Актуальные статусы сервисов внутри отчёта
id (number, пример: 1) required — ID сервиса на status page
name (string, пример: "API Gateway") required — Публичное имя сервиса на странице статуса
status (string, enum: "not_affected", "downtime", "degraded", "resolved", пример: "degraded") required — Статус влияния на сервис
updates (array of object) required — Таймлайн сообщений внутри отчёта
id (number, пример: 10100) required — ID обновления внутри отчёта
message (string, пример: "Мы нашли причину сбоя и уже выкатываем исправление. Следующее обновление через 10 минут") required — Текст апдейта
is_initial (boolean, пример: true) required — Является ли запись стартовым сообщением отчёта
published_at (string (date-time), пример: "2026-03-06T16:12:00.000Z") required — Когда обновление было опубликовано
servers (array of object) required — Статусы серверов на момент этого обновления
id (number, пример: 1) required — ID сервиса на status page
name (string, пример: "API Gateway") required — Публичное имя сервиса на странице статуса
status (string, enum: "not_affected", "downtime", "degraded", "resolved", пример: "degraded") required — Статус влияния на сервис
Пример:
{
"id": 10100,
"title": "Проблемы с доступностью API Gateway",
"started_at": "2026-03-06T16:10:00.000Z",
"current_status": "degraded",
"incidents": [
{
"incident_id": 42,
"server_id": 7,
"server_name": "API Gateway",
"status": "ongoing",
"started_at": "2026-03-06T16:10:00.000Z",
"ended_at": "2026-03-06T16:45:00.000Z"
}
],
"servers": [
{
"id": 1,
"name": "API Gateway",
"status": "degraded"
}
],
"updates": [
{
"id": 10100,
"message": "Мы нашли причину сбоя и уже выкатываем исправление. Следующее обновление через 10 минут",
"is_initial": true,
"published_at": "2026-03-06T16:12:00.000Z",
"servers": [
{
"id": 1,
"name": "API Gateway",
"status": "degraded"
}
]
}
]
}
DELETE /v1/status-pages/{id}/incident-reports/{reportId}/updates/{updateId} — Удалить сообщение из отчёта для страницы статуса
Удаляет одно конкретное обновление из таймлайна отчёта по updateId. Сам отчёт и остальные сообщения сохраняются. Первичное сообщение (initial update, созданное вместе с отчётом) удалить нельзя — попытка вернёт 400; чтобы убрать его, удаляйте весь отчёт целиком.
Аутентификация: bearer
Параметры (path):
id (number) required
reportId (number) required
updateId (number) required
Ответы:
GET /v1/status-pages/{id}/planned-maintenances — Получить плановые работы для страницы статуса
Возвращает все плановые работы (maintenance windows), опубликованные на странице статуса: заголовок, описание, окно времени start_at/end_at, затронутые серверы и хронологию апдейтов. Включает как ещё не наступившие, так и уже завершённые работы — фильтровать по времени надо на стороне клиента.
Аутентификация: bearer
Параметры (path):
Ответы:
200
application/json: array of object
id (number, пример: 10100) required — ID плановых работ
title (string, пример: "Плановое обновление API Gateway") required — Заголовок плановых работ
description (string, пример: "Во время обновления возможны кратковременные перерывы в работе API и панели управления.") required — Описание плановых работ
started_at (string (date-time), пример: "2026-03-20T01:00:00.000Z") required — Время начала плановых работ
ended_at (string (date-time), пример: "2026-03-20T03:00:00.000Z") required — Время завершения плановых работ
servers (array of object) required — Сервисы на странице статуса, затрагиваемые плановыми работами
id (number, пример: 1) required — ID сервиса на status page
name (string, пример: "API Gateway") required — Публичное имя сервиса на странице статуса
updates (array of object) required — История обновлений по плановым работам
id (number, пример: 10100) required — ID обновления внутри записи плановых работ
message (string, пример: "Работы идут по плану. Возможны кратковременные перерывы в работе API.") required — Текст апдейта
is_initial (boolean, пример: true) required — Является ли запись стартовым сообщением
published_at (string (date-time), пример: "2026-03-06T16:12:00.000Z") required — Когда обновление было опубликовано
servers (array of object) required — Сервисы, которых касается это обновление
id (number, пример: 1) required — ID сервиса на status page
name (string, пример: "API Gateway") required — Публичное имя сервиса на странице статуса
created_at (string (date-time), пример: "2026-03-18T12:00:00.000Z") required — Дата создания записи
Пример:
[
{
"id": 10100,
"title": "Плановое обновление API Gateway",
"description": "Во время обновления возможны кратковременные перерывы в работе API и панели управления.",
"started_at": "2026-03-20T01:00:00.000Z",
"ended_at": "2026-03-20T03:00:00.000Z",
"servers": [
{
"id": 1,
"name": "API Gateway"
}
],
"updates": [
{
"id": 10100,
"message": "Работы идут по плану. Возможны кратковременные перерывы в работе API.",
"is_initial": true,
"published_at": "2026-03-06T16:12:00.000Z",
"servers": [
{
"id": 1,
"name": "API Gateway"
}
]
}
],
"created_at": "2026-03-18T12:00:00.000Z"
}
]
POST /v1/status-pages/{id}/planned-maintenances — Создать плановые работы для страницы статуса
Анонсирует на странице статуса плановые работы: задаётся окно start_at/end_at, список затронутых серверов, заголовок и первичное сообщение (initial update). Когда работы начнутся/завершатся, добавляйте апдейты через POST /v1/status-pages/{id}/planned-maintenances/{maintenanceId}/updates. Количество записей о плановых работах ограничено помесячной квотой тарифа (status_page_planned_maintenances_per_month_limit) — при превышении возвращается 403.
Аутентификация: bearer
Параметры (path):
Тело запроса (обязательное)
Content-Type: application/json
object
title (string, пример: "Плановое обновление API Gateway") required — Заголовок плановых работ
description (string, пример: "Во время обновления возможны кратковременные перерывы в работе API и панели управления.") required — Описание плановых работ
started_at (string (date-time), пример: "2026-03-20T01:00:00.000Z") required — Время начала плановых работ
ended_at (string (date-time), пример: "2026-03-20T03:00:00.000Z") required — Время завершения плановых работ
servers (array of object) required — Сервисы на странице статуса, затрагиваемые плановыми работами
id (number, пример: 1) required — ID сервиса на странице статуса
Пример:
{
"title": "Плановое обновление API Gateway",
"description": "Во время обновления возможны кратковременные перерывы в работе API и панели управления.",
"started_at": "2026-03-20T01:00:00.000Z",
"ended_at": "2026-03-20T03:00:00.000Z",
"servers": [
{
"id": 1
},
{
"id": 2
},
{
"id": 3
}
]
}
Ответы:
201
application/json: object
id (number, пример: 10100) required — ID плановых работ
title (string, пример: "Плановое обновление API Gateway") required — Заголовок плановых работ
description (string, пример: "Во время обновления возможны кратковременные перерывы в работе API и панели управления.") required — Описание плановых работ
started_at (string (date-time), пример: "2026-03-20T01:00:00.000Z") required — Время начала плановых работ
ended_at (string (date-time), пример: "2026-03-20T03:00:00.000Z") required — Время завершения плановых работ
servers (array of object) required — Сервисы на странице статуса, затрагиваемые плановыми работами
id (number, пример: 1) required — ID сервиса на status page
name (string, пример: "API Gateway") required — Публичное имя сервиса на странице статуса
updates (array of object) required — История обновлений по плановым работам
id (number, пример: 10100) required — ID обновления внутри записи плановых работ
message (string, пример: "Работы идут по плану. Возможны кратковременные перерывы в работе API.") required — Текст апдейта
is_initial (boolean, пример: true) required — Является ли запись стартовым сообщением
published_at (string (date-time), пример: "2026-03-06T16:12:00.000Z") required — Когда обновление было опубликовано
servers (array of object) required — Сервисы, которых касается это обновление
id (number, пример: 1) required — ID сервиса на status page
name (string, пример: "API Gateway") required — Публичное имя сервиса на странице статуса
created_at (string (date-time), пример: "2026-03-18T12:00:00.000Z") required — Дата создания записи
Пример:
{
"id": 10100,
"title": "Плановое обновление API Gateway",
"description": "Во время обновления возможны кратковременные перерывы в работе API и панели управления.",
"started_at": "2026-03-20T01:00:00.000Z",
"ended_at": "2026-03-20T03:00:00.000Z",
"servers": [
{
"id": 1,
"name": "API Gateway"
}
],
"updates": [
{
"id": 10100,
"message": "Работы идут по плану. Возможны кратковременные перерывы в работе API.",
"is_initial": true,
"published_at": "2026-03-06T16:12:00.000Z",
"servers": [
{
"id": 1,
"name": "API Gateway"
}
]
}
],
"created_at": "2026-03-18T12:00:00.000Z"
}
PATCH /v1/status-pages/{id}/planned-maintenances/{maintenanceId} — Обновить плановые работы для страницы статуса
Изменяет параметры самих плановых работ: окно времени, заголовок, описание, набор затронутых серверов. Это не добавление сообщения в таймлайн. Чтобы оповестить о ходе работ (начались, продлеваются, завершены) — используйте POST .../updates.
Аутентификация: bearer
Параметры (path):
id (number) required
maintenanceId (number) required
Тело запроса (обязательное)
Content-Type: application/json
object
title (string, пример: "Плановое обновление API Gateway") — Заголовок плановых работ
description (string, пример: "Во время обновления возможны кратковременные перерывы в работе API и панели управления.") — Описание плановых работ
started_at (string (date-time), пример: "2026-03-20T01:00:00.000Z") — Время начала плановых работ
ended_at (string (date-time), пример: "2026-03-20T03:00:00.000Z") — Время завершения плановых работ
servers (array of object) — Сервисы на странице статуса, затрагиваемые плановыми работами
id (number, пример: 1) required — ID сервиса на странице статуса
Пример:
{
"title": "Плановое обновление API Gateway",
"description": "Во время обновления возможны кратковременные перерывы в работе API и панели управления.",
"started_at": "2026-03-20T01:00:00.000Z",
"ended_at": "2026-03-20T03:00:00.000Z",
"servers": [
{
"id": 1
},
{
"id": 2
},
{
"id": 3
}
]
}
Ответы:
200
application/json: object
id (number, пример: 10100) required — ID плановых работ
title (string, пример: "Плановое обновление API Gateway") required — Заголовок плановых работ
description (string, пример: "Во время обновления возможны кратковременные перерывы в работе API и панели управления.") required — Описание плановых работ
started_at (string (date-time), пример: "2026-03-20T01:00:00.000Z") required — Время начала плановых работ
ended_at (string (date-time), пример: "2026-03-20T03:00:00.000Z") required — Время завершения плановых работ
servers (array of object) required — Сервисы на странице статуса, затрагиваемые плановыми работами
id (number, пример: 1) required — ID сервиса на status page
name (string, пример: "API Gateway") required — Публичное имя сервиса на странице статуса
updates (array of object) required — История обновлений по плановым работам
id (number, пример: 10100) required — ID обновления внутри записи плановых работ
message (string, пример: "Работы идут по плану. Возможны кратковременные перерывы в работе API.") required — Текст апдейта
is_initial (boolean, пример: true) required — Является ли запись стартовым сообщением
published_at (string (date-time), пример: "2026-03-06T16:12:00.000Z") required — Когда обновление было опубликовано
servers (array of object) required — Сервисы, которых касается это обновление
id (number, пример: 1) required — ID сервиса на status page
name (string, пример: "API Gateway") required — Публичное имя сервиса на странице статуса
created_at (string (date-time), пример: "2026-03-18T12:00:00.000Z") required — Дата создания записи
Пример:
{
"id": 10100,
"title": "Плановое обновление API Gateway",
"description": "Во время обновления возможны кратковременные перерывы в работе API и панели управления.",
"started_at": "2026-03-20T01:00:00.000Z",
"ended_at": "2026-03-20T03:00:00.000Z",
"servers": [
{
"id": 1,
"name": "API Gateway"
}
],
"updates": [
{
"id": 10100,
"message": "Работы идут по плану. Возможны кратковременные перерывы в работе API.",
"is_initial": true,
"published_at": "2026-03-06T16:12:00.000Z",
"servers": [
{
"id": 1,
"name": "API Gateway"
}
]
}
],
"created_at": "2026-03-18T12:00:00.000Z"
}
DELETE /v1/status-pages/{id}/planned-maintenances/{maintenanceId} — Удалить плановые работы для страницы статуса
Полностью удаляет запись о плановых работах со страницы статуса вместе со всеми её обновлениями. Операция необратима. Если работы просто отменяются, лучше опубликовать апдейт с пояснением, а не удалять запись — иначе у пользователей не останется истории.
Аутентификация: bearer
Параметры (path):
id (number) required
maintenanceId (number) required
Ответы:
POST /v1/status-pages/{id}/planned-maintenances/{maintenanceId}/updates — Добавить обновление в запись плановых работ для страницы статуса
Добавляет новое сообщение в таймлайн плановых работ: «начали», «прогресс», «завершены», «перенесены» и т.п. Каждое обновление сохраняется отдельной записью со своим временем — старые сообщения не перезаписываются. Если задан явный publish_date, он не должен быть в будущем и не должен быть раньше времени начала работ — иначе 400.
Аутентификация: bearer
Параметры (path):
id (number) required
maintenanceId (number) required
Тело запроса (обязательное)
Content-Type: application/json
object
message (string, пример: "Работы идут по плану. Возможны кратковременные перерывы в работе API.") required — Текст апдейта о ходе плановых работ
published_at (string (date-time), пример: "2026-03-20T01:30:00.000Z") — Время публикации апдейта
Пример:
{
"message": "Работы идут по плану. Возможны кратковременные перерывы в работе API.",
"published_at": "2026-03-20T01:30:00.000Z"
}
Ответы:
201
application/json: object
id (number, пример: 10100) required — ID плановых работ
title (string, пример: "Плановое обновление API Gateway") required — Заголовок плановых работ
description (string, пример: "Во время обновления возможны кратковременные перерывы в работе API и панели управления.") required — Описание плановых работ
started_at (string (date-time), пример: "2026-03-20T01:00:00.000Z") required — Время начала плановых работ
ended_at (string (date-time), пример: "2026-03-20T03:00:00.000Z") required — Время завершения плановых работ
servers (array of object) required — Сервисы на странице статуса, затрагиваемые плановыми работами
id (number, пример: 1) required — ID сервиса на status page
name (string, пример: "API Gateway") required — Публичное имя сервиса на странице статуса
updates (array of object) required — История обновлений по плановым работам
id (number, пример: 10100) required — ID обновления внутри записи плановых работ
message (string, пример: "Работы идут по плану. Возможны кратковременные перерывы в работе API.") required — Текст апдейта
is_initial (boolean, пример: true) required — Является ли запись стартовым сообщением
published_at (string (date-time), пример: "2026-03-06T16:12:00.000Z") required — Когда обновление было опубликовано
servers (array of object) required — Сервисы, которых касается это обновление
id (number, пример: 1) required — ID сервиса на status page
name (string, пример: "API Gateway") required — Публичное имя сервиса на странице статуса
created_at (string (date-time), пример: "2026-03-18T12:00:00.000Z") required — Дата создания записи
Пример:
{
"id": 10100,
"title": "Плановое обновление API Gateway",
"description": "Во время обновления возможны кратковременные перерывы в работе API и панели управления.",
"started_at": "2026-03-20T01:00:00.000Z",
"ended_at": "2026-03-20T03:00:00.000Z",
"servers": [
{
"id": 1,
"name": "API Gateway"
}
],
"updates": [
{
"id": 10100,
"message": "Работы идут по плану. Возможны кратковременные перерывы в работе API.",
"is_initial": true,
"published_at": "2026-03-06T16:12:00.000Z",
"servers": [
{
"id": 1,
"name": "API Gateway"
}
]
}
],
"created_at": "2026-03-18T12:00:00.000Z"
}
PATCH /v1/status-pages/{id}/planned-maintenances/{maintenanceId}/updates/{updateId} — Обновить сообщение в записи плановых работ для страницы статуса
Редактирует ранее опубликованное обновление в таймлайне плановых работ (например, исправить текст или статус). Меняется только сообщение по updateId; остальные апдейты и сама запись о работах сохраняются.
Аутентификация: bearer
Параметры (path):
id (number) required
maintenanceId (number) required
updateId (number) required
Тело запроса (обязательное)
Content-Type: application/json
object
message (string, пример: "Работы идут по плану. Завершаем проверку и скоро опубликуем финальный апдейт.") required — Обновлённый текст апдейта
Пример:
{
"message": "Работы идут по плану. Завершаем проверку и скоро опубликуем финальный апдейт."
}
Ответы:
200
application/json: object
id (number, пример: 10100) required — ID плановых работ
title (string, пример: "Плановое обновление API Gateway") required — Заголовок плановых работ
description (string, пример: "Во время обновления возможны кратковременные перерывы в работе API и панели управления.") required — Описание плановых работ
started_at (string (date-time), пример: "2026-03-20T01:00:00.000Z") required — Время начала плановых работ
ended_at (string (date-time), пример: "2026-03-20T03:00:00.000Z") required — Время завершения плановых работ
servers (array of object) required — Сервисы на странице статуса, затрагиваемые плановыми работами
id (number, пример: 1) required — ID сервиса на status page
name (string, пример: "API Gateway") required — Публичное имя сервиса на странице статуса
updates (array of object) required — История обновлений по плановым работам
id (number, пример: 10100) required — ID обновления внутри записи плановых работ
message (string, пример: "Работы идут по плану. Возможны кратковременные перерывы в работе API.") required — Текст апдейта
is_initial (boolean, пример: true) required — Является ли запись стартовым сообщением
published_at (string (date-time), пример: "2026-03-06T16:12:00.000Z") required — Когда обновление было опубликовано
servers (array of object) required — Сервисы, которых касается это обновление
id (number, пример: 1) required — ID сервиса на status page
name (string, пример: "API Gateway") required — Публичное имя сервиса на странице статуса
created_at (string (date-time), пример: "2026-03-18T12:00:00.000Z") required — Дата создания записи
Пример:
{
"id": 10100,
"title": "Плановое обновление API Gateway",
"description": "Во время обновления возможны кратковременные перерывы в работе API и панели управления.",
"started_at": "2026-03-20T01:00:00.000Z",
"ended_at": "2026-03-20T03:00:00.000Z",
"servers": [
{
"id": 1,
"name": "API Gateway"
}
],
"updates": [
{
"id": 10100,
"message": "Работы идут по плану. Возможны кратковременные перерывы в работе API.",
"is_initial": true,
"published_at": "2026-03-06T16:12:00.000Z",
"servers": [
{
"id": 1,
"name": "API Gateway"
}
]
}
],
"created_at": "2026-03-18T12:00:00.000Z"
}
DELETE /v1/status-pages/{id}/planned-maintenances/{maintenanceId}/updates/{updateId} — Удалить сообщение из записи плановых работ для страницы статуса
Удаляет одно обновление из таймлайна плановых работ по updateId. Сама запись о работах и остальные сообщения остаются. Первичное сообщение (initial update, созданное вместе с записью о работах) удалить нельзя — попытка вернёт 400; чтобы убрать его, удаляйте всю запись целиком.
Аутентификация: bearer
Параметры (path):
id (number) required
maintenanceId (number) required
updateId (number) required
Ответы:
Модели данных
AccountResponseDto
object
id (number, пример: 1) required — ID аккаунта
email (string, пример: "user@example.com") required — Электронная почта пользователя
name (string, пример: "Иван Иванов") required — Имя пользователя
status (string, пример: "active") required — Статус аккаунта
avatar_url (object | null) required — URL аватара пользователя
created_at (string (date-time), пример: "2023-01-01T00:00:00.000Z") required — Дата создания аккаунта
password_changed_at (object | null) required — Дата последней смены пароля
timezone (string, пример: "Europe/Moscow") required — Часовой пояс, который используется для отображения времени в нотификациях
is_ai_assistant_enabled (boolean, пример: true) required — Отображается ли чат с ИИ помощником в панели управления
UpdateAccountDto
object
name (string, пример: "Иван Иванов") — Имя пользователя
timezone (string, пример: "Europe/Moscow") — Часовой пояс, который используется для отображения времени в нотификациях
is_ai_assistant_enabled (boolean, пример: true) — Отображается ли чат с ИИ помощником в панели управления
PlanFeaturesResponseDto
object
servers_limit (number, пример: 50) required — Максимальное количество серверов
available_locations (array of string) required — Список доступных локаций мониторинга
allow_location_selection (boolean, пример: true) required — Возможность ручного выбора локаций
min_check_interval_seconds (number, пример: 60) required — Минимальный интервал проверок (в секундах)
ssl_monitoring_enabled (boolean, пример: true) required — Поддержка мониторинга SSL
domain_monitoring_enabled (boolean, пример: true) required — Поддержка мониторинга доменов
dns_monitoring_enabled (boolean, пример: true) required — Поддержка мониторинга DNS
dns_history_retention_days (number, пример: 30) required — Срок хранения истории DNS записей (в днях)
keyword_monitoring_enabled (boolean, пример: true) required — Поддержка мониторинга ключевых слов
heartbeat_monitoring_enabled (boolean, пример: true) required — Поддержка мониторинга heartbeat
latency_alerts_enabled (boolean, пример: true) required — Поддержка уведомлений о медленном ответе
custom_success_http_codes_enabled (boolean, пример: true) required — Возможность задавать список HTTP-кодов, считающихся успешными
incident_retention_days (number, пример: 60) required — Срок хранения инцидентов (в днях)
network_diagnostics_enabled (boolean, пример: true) required — Доступность сетевой диагностики
screenshots_enabled (boolean, пример: true) required — Поддержка скриншотов при проверках
incident_comments_enabled (boolean, пример: true) required — Возможность комментирования инцидентов
incident_report_enabled (boolean, пример: true) required — Возможность скачивания отчета по инциденту
webhook_notifications_enabled (boolean, пример: false) required — Доступность вебхук-уведомлений
status_pages_limit (number, пример: 3) required — Максимальное количество страниц статуса
custom_domain_enabled (boolean, пример: true) required — Поддержка подключения собственного домена
password_protected_status_page (boolean, пример: true) required — Защита страниц паролем
indexing_control_enabled (boolean, пример: true) required — Исключение страниц из индексации поисковиками
white_label_enabled (boolean, пример: false) required — Возможность вайтлейбла (удаления логотипа Статусера)
status_page_minimum_incident_duration_enabled (boolean, пример: true) required — Возможность задавать минимальную длительность инцидента для отображения на странице статуса
status_page_incident_reports_per_month_limit (number, пример: 1) required — Лимит количества публичных отчётов по инцидентам для страниц статуса в месяц
status_page_planned_maintenances_per_month_limit (number, пример: 1) required — Лимит количества записей о плановых работах для страниц статуса в месяц
PlanResponseDto
object
id (number, пример: 2) required — ID тарифа
name (string, пример: "Pro") required — Название текущего тарифа
price_per_month (number, пример: 199) required — Стоимость тарифа в месяц (в рублях)
price_per_year (number, пример: 1990) required — Стоимость тарифа в год (в рублях)
features (object) required — Ограничения и возможности тарифа
servers_limit (number, пример: 50) required — Максимальное количество серверов
available_locations (array of string) required — Список доступных локаций мониторинга
allow_location_selection (boolean, пример: true) required — Возможность ручного выбора локаций
min_check_interval_seconds (number, пример: 60) required — Минимальный интервал проверок (в секундах)
ssl_monitoring_enabled (boolean, пример: true) required — Поддержка мониторинга SSL
domain_monitoring_enabled (boolean, пример: true) required — Поддержка мониторинга доменов
dns_monitoring_enabled (boolean, пример: true) required — Поддержка мониторинга DNS
dns_history_retention_days (number, пример: 30) required — Срок хранения истории DNS записей (в днях)
keyword_monitoring_enabled (boolean, пример: true) required — Поддержка мониторинга ключевых слов
heartbeat_monitoring_enabled (boolean, пример: true) required — Поддержка мониторинга heartbeat
latency_alerts_enabled (boolean, пример: true) required — Поддержка уведомлений о медленном ответе
custom_success_http_codes_enabled (boolean, пример: true) required — Возможность задавать список HTTP-кодов, считающихся успешными
incident_retention_days (number, пример: 60) required — Срок хранения инцидентов (в днях)
network_diagnostics_enabled (boolean, пример: true) required — Доступность сетевой диагностики
screenshots_enabled (boolean, пример: true) required — Поддержка скриншотов при проверках
incident_comments_enabled (boolean, пример: true) required — Возможность комментирования инцидентов
incident_report_enabled (boolean, пример: true) required — Возможность скачивания отчета по инциденту
webhook_notifications_enabled (boolean, пример: false) required — Доступность вебхук-уведомлений
status_pages_limit (number, пример: 3) required — Максимальное количество страниц статуса
custom_domain_enabled (boolean, пример: true) required — Поддержка подключения собственного домена
password_protected_status_page (boolean, пример: true) required — Защита страниц паролем
indexing_control_enabled (boolean, пример: true) required — Исключение страниц из индексации поисковиками
white_label_enabled (boolean, пример: false) required — Возможность вайтлейбла (удаления логотипа Статусера)
status_page_minimum_incident_duration_enabled (boolean, пример: true) required — Возможность задавать минимальную длительность инцидента для отображения на странице статуса
status_page_incident_reports_per_month_limit (number, пример: 1) required — Лимит количества публичных отчётов по инцидентам для страниц статуса в месяц
status_page_planned_maintenances_per_month_limit (number, пример: 1) required — Лимит количества записей о плановых работах для страниц статуса в месяц
CurrentPlanResponseDto
object
id (number, пример: 2) required — ID тарифа
name (string, пример: "Pro") required — Название текущего тарифа
price_per_month (number, пример: 199) required — Стоимость тарифа в месяц (в рублях)
price_per_year (number, пример: 1990) required — Стоимость тарифа в год (в рублях)
features (object) required — Ограничения и возможности тарифа
servers_limit (number, пример: 50) required — Максимальное количество серверов
available_locations (array of string) required — Список доступных локаций мониторинга
allow_location_selection (boolean, пример: true) required — Возможность ручного выбора локаций
min_check_interval_seconds (number, пример: 60) required — Минимальный интервал проверок (в секундах)
ssl_monitoring_enabled (boolean, пример: true) required — Поддержка мониторинга SSL
domain_monitoring_enabled (boolean, пример: true) required — Поддержка мониторинга доменов
dns_monitoring_enabled (boolean, пример: true) required — Поддержка мониторинга DNS
dns_history_retention_days (number, пример: 30) required — Срок хранения истории DNS записей (в днях)
keyword_monitoring_enabled (boolean, пример: true) required — Поддержка мониторинга ключевых слов
heartbeat_monitoring_enabled (boolean, пример: true) required — Поддержка мониторинга heartbeat
latency_alerts_enabled (boolean, пример: true) required — Поддержка уведомлений о медленном ответе
custom_success_http_codes_enabled (boolean, пример: true) required — Возможность задавать список HTTP-кодов, считающихся успешными
incident_retention_days (number, пример: 60) required — Срок хранения инцидентов (в днях)
network_diagnostics_enabled (boolean, пример: true) required — Доступность сетевой диагностики
screenshots_enabled (boolean, пример: true) required — Поддержка скриншотов при проверках
incident_comments_enabled (boolean, пример: true) required — Возможность комментирования инцидентов
incident_report_enabled (boolean, пример: true) required — Возможность скачивания отчета по инциденту
webhook_notifications_enabled (boolean, пример: false) required — Доступность вебхук-уведомлений
status_pages_limit (number, пример: 3) required — Максимальное количество страниц статуса
custom_domain_enabled (boolean, пример: true) required — Поддержка подключения собственного домена
password_protected_status_page (boolean, пример: true) required — Защита страниц паролем
indexing_control_enabled (boolean, пример: true) required — Исключение страниц из индексации поисковиками
white_label_enabled (boolean, пример: false) required — Возможность вайтлейбла (удаления логотипа Статусера)
status_page_minimum_incident_duration_enabled (boolean, пример: true) required — Возможность задавать минимальную длительность инцидента для отображения на странице статуса
status_page_incident_reports_per_month_limit (number, пример: 1) required — Лимит количества публичных отчётов по инцидентам для страниц статуса в месяц
status_page_planned_maintenances_per_month_limit (number, пример: 1) required — Лимит количества записей о плановых работах для страниц статуса в месяц
valid_until (object) required — Срок действия текущего тарифа
current_billing_period (string | null, enum: "month", "year", пример: "month") required — Период оплаты текущего тарифа
pending_plan (object | null) required — Планируемый тариф на который произойдет даунгрейд
id (number, пример: 2) required — ID тарифа
name (string, пример: "Pro") required — Название текущего тарифа
price_per_month (number, пример: 199) required — Стоимость тарифа в месяц (в рублях)
price_per_year (number, пример: 1990) required — Стоимость тарифа в год (в рублях)
features (object) required — Ограничения и возможности тарифа
servers_limit (number, пример: 50) required — Максимальное количество серверов
available_locations (array of string) required — Список доступных локаций мониторинга
allow_location_selection (boolean, пример: true) required — Возможность ручного выбора локаций
min_check_interval_seconds (number, пример: 60) required — Минимальный интервал проверок (в секундах)
ssl_monitoring_enabled (boolean, пример: true) required — Поддержка мониторинга SSL
domain_monitoring_enabled (boolean, пример: true) required — Поддержка мониторинга доменов
dns_monitoring_enabled (boolean, пример: true) required — Поддержка мониторинга DNS
dns_history_retention_days (number, пример: 30) required — Срок хранения истории DNS записей (в днях)
keyword_monitoring_enabled (boolean, пример: true) required — Поддержка мониторинга ключевых слов
heartbeat_monitoring_enabled (boolean, пример: true) required — Поддержка мониторинга heartbeat
latency_alerts_enabled (boolean, пример: true) required — Поддержка уведомлений о медленном ответе
custom_success_http_codes_enabled (boolean, пример: true) required — Возможность задавать список HTTP-кодов, считающихся успешными
incident_retention_days (number, пример: 60) required — Срок хранения инцидентов (в днях)
network_diagnostics_enabled (boolean, пример: true) required — Доступность сетевой диагностики
screenshots_enabled (boolean, пример: true) required — Поддержка скриншотов при проверках
incident_comments_enabled (boolean, пример: true) required — Возможность комментирования инцидентов
incident_report_enabled (boolean, пример: true) required — Возможность скачивания отчета по инциденту
webhook_notifications_enabled (boolean, пример: false) required — Доступность вебхук-уведомлений
status_pages_limit (number, пример: 3) required — Максимальное количество страниц статуса
custom_domain_enabled (boolean, пример: true) required — Поддержка подключения собственного домена
password_protected_status_page (boolean, пример: true) required — Защита страниц паролем
indexing_control_enabled (boolean, пример: true) required — Исключение страниц из индексации поисковиками
white_label_enabled (boolean, пример: false) required — Возможность вайтлейбла (удаления логотипа Статусера)
status_page_minimum_incident_duration_enabled (boolean, пример: true) required — Возможность задавать минимальную длительность инцидента для отображения на странице статуса
status_page_incident_reports_per_month_limit (number, пример: 1) required — Лимит количества публичных отчётов по инцидентам для страниц статуса в месяц
status_page_planned_maintenances_per_month_limit (number, пример: 1) required — Лимит количества записей о плановых работах для страниц статуса в месяц
pending_plan_effective_at (object | null) required — Дата применения запланированного даунгрейда
ServerHeader
object
key (string, пример: "Content-Type") required — Ключ заголовка
value (string, пример: "application/json") required — Значение заголовка
CreateServerDto
object
host (string, пример: "192.168.1.1") required — Адрес нового сервера
protocol (string, пример: "http") required — Протокол проверки
port (number, пример: 22) — Порт для проверки. Обязателен при protocol = tcp.
http_method (string, enum: "head", "get", "options", "post", "put", "patch", пример: "head") — HTTP метод. Обязателен при protocol = http или protocol = keyword.
body (string | null, пример: "{\"key\": \"value\"}") — Тело запроса. Применимо к protocol = http или keyword.
keyword (string | null, пример: "Welcome") — Ключевое слово для мониторинга. Обязательно при protocol = keyword.
keyword_mode (string | null, enum: "present", "absent", пример: "present") — Режим проверки ключевого слова: успех если слово есть/если слова нет. Обязательно при protocol = keyword.
headers (array of object) — Собственные заголовки запроса. Применимо к protocol = http или keyword. Если не задано — будет пустой массив.
key (string, пример: "Content-Type") required — Ключ заголовка
value (string, пример: "application/json") required — Значение заголовка
is_follow_redirects (boolean, пример: true) required — Следовать за редиректами или нет
success_http_codes (array of string) — HTTP-коды, которые считаются успешными. Поддерживаются конкретные коды (200, 301) и маски (2xx, 5xx). Применимо к protocol = http или keyword. Если не задано — используется дефолт ["2xx"].
request_timeout (number, пример: "10") required — Таймаут запроса
check_interval (number, пример: 60) required — Интервал проверки сервера в секундах
heartbeat_grace_interval (number | null, пример: 300) — Допустимое опоздание в секундах для heartbeat: сколько ждать сверх check_interval. Применимо к protocol = heartbeat.
name (string, пример: "Восхитительный сервер") — Название сервиса. Обязательно при protocol = heartbeat.
description (string, пример: "Восхитительный сервер для проверки статуса") — Описание сервиса
is_ssl_check (boolean, пример: true) required — Требуется ли выполнять проверку SSL-сертификата
is_domain_check (boolean, пример: true) required — Требуется ли выполнять проверку домена
is_latency_alert_enabled (boolean, пример: true) — Включить уведомления о медленном ответе сервера
latency_trigger_ms (number, пример: 800) — Порог в мс для определения медленного ответа
locations (array of string, enum: "msk-1", "spb-1", "ala-1", "nyc-1", "ams-1") — Локации, из которых требуется выполнять проверки
dns_record_types (array of string, enum: "A", "AAAA", "CNAME", "MX", "TXT", "NS", "SOA", "PTR", "SRV") — Типы DNS записей для мониторинга. Обязательно при protocol = dns.
DnsRecord
object
record_type (string, enum: "A", "AAAA", "CNAME", "MX", "TXT", "NS", "SOA", "PTR", "SRV", пример: "A") required — Тип DNS записи
records (array of string) required — Структурированные значения DNS записей
ServerResponseDto
object
id (number, пример: 1) required — ID сервера
host (string, пример: "192.168.1.1") required — IP адрес сервера
protocol (string, пример: "http") required — Протокол сервера
heartbeat_token (object | null) required — Токен для heartbeat URL (только для protocol=heartbeat)
last_heartbeat_at (object | null) required — Время последнего полученного heartbeat (только для protocol=heartbeat)
heartbeat_grace_interval (object | null) required — Допустимое опоздание в секундах для heartbeat: сколько ждать сверх check_interval
port (object) required — Порт для проверки tcp
http_method (string, enum: "head", "get", "options", "post", "put", "patch", пример: "head") required — HTTP метод
request_timeout (number, пример: "10") required — Таймаут запроса
check_interval (number, пример: 60) required — Интервал проверки сервера в секундах
name (object) required — Название сервиса
description (object | null) required — Описание сервиса
status (string, enum: "online", "offline", "pending", "paused", "failed", пример: "online") required — Текущий статус сервера. online — последняя проверка прошла успешно. offline — сервер не отвечает или ответил с ошибкой. pending — ещё ни одной проверки не было (только что создан). paused — проверки приостановлены пользователем. failed — внутренняя ошибка при выполнении проверки.
body (object | null) required — Тело запроса для проверки
keyword (object | null) required — Ключевое слово для мониторинга
keyword_mode (string | null, enum: "present", "absent", пример: "present") required — Режим проверки ключевого слова
headers (array of object) required — Собственные заголовки запроса
key (string, пример: "Content-Type") required — Ключ заголовка
value (string, пример: "application/json") required — Значение заголовка
is_follow_redirects (boolean, пример: true) required — Следовать за редиректами или нет
success_http_codes (array of string) required — HTTP-коды, которые считаются успешными (коды или маски, например 2xx)
last_unavailable_at (object) required — Время, когда сервер в последний раз стал недоступен (начало текущего или последнего инцидента)
last_available_at (object) required — Время, когда сервер в последний раз восстановил доступность (завершение последнего инцидента или последняя успешная проверка)
last_checked_at (object) required — Время последней проверки сервера
is_ssl_check (boolean, пример: true) required — Включены ли проверки SSL-сертификата
ssl (object) required — Информация о SSL-сертификате
is_domain_check (boolean, пример: true) required — Включены ли проверки времени окончания домена
domain (object) required — Информация о домене
is_latency_alert_enabled (boolean, пример: true) required — Включены ли уведомления о медленном ответе
latency_trigger_ms (number, пример: 800) required — Порог в мс для перехода в состояние SLOW
locations (array of string) required — Локации, из которых выполняются проверки
dns_record_types (object | null) required — Типы DNS записей для мониторинга
dns_records (array of object | null) required — Текущие DNS записи домена
record_type (string, enum: "A", "AAAA", "CNAME", "MX", "TXT", "NS", "SOA", "PTR", "SRV", пример: "A") required — Тип DNS записи
records (array of string) required — Структурированные значения DNS записей
dns_error_code (string | null, enum: "NODATA", "NXDOMAIN", "SERVFAIL", "REFUSED", "FORMERR", "NOTIMP", "UNKNOWN", пример: "NODATA") required — Код последней DNS ошибки (только для protocol=dns)
created_at (string (date-time), пример: "2023-01-01T00:00:00.000Z") required — Время создания сервера
UpdateServerDto
object
host (string, пример: "192.168.1.1") — Адрес сервера
protocol (string, enum: "ping", "http", "keyword", "tcp", "dns", "heartbeat", пример: "http") — Протокол проверки
port (number, пример: 22) — Порт для проверки. Применимо к protocol = tcp.
http_method (string, enum: "head", "get", "options", "post", "put", "patch", пример: "head") — HTTP метод. Применимо к protocol = http или keyword.
body (string | null, пример: "{\"key\": \"value\"}") — Тело запроса. Применимо к protocol = http или keyword.
keyword (string | null, пример: "Welcome") — Ключевое слово для мониторинга. Применимо к protocol = keyword.
keyword_mode (string | null, enum: "present", "absent", пример: "present") — Режим проверки ключевого слова. Применимо к protocol = keyword.
headers (array of object) — Собственные заголовки запроса. Применимо к protocol = http или keyword.
key (string, пример: "Content-Type") required — Ключ заголовка
value (string, пример: "application/json") required — Значение заголовка
is_follow_redirects (boolean, пример: true) — Следовать за редиректами или нет
success_http_codes (array of string) — HTTP-коды, которые считаются успешными. Поддерживаются конкретные коды (200, 301) и маски (2xx, 5xx). Применимо к protocol = http или keyword.
request_timeout (number, пример: 10) — Таймаут запроса в секундах
check_interval (number, пример: 60) — Интервал проверки сервера в секундах
heartbeat_grace_interval (number | null, пример: 300) — Период ожидания в секундах для heartbeat: сколько ждать сверх check_interval. Применимо к protocol = heartbeat.
name (string, пример: "Восхитительный сервер") — Название сервиса
description (string, пример: "Восхитительный сервер для проверки статуса") — Описание сервиса
is_ssl_check (boolean, пример: true) — Требуется ли выполнять проверку SSL-сертификата
is_domain_check (boolean, пример: true) — Требуется ли выполнять проверку домена
is_latency_alert_enabled (boolean, пример: true) — Включить уведомления о медленном ответе сервера
latency_trigger_ms (number, пример: 800) — Порог (мс) для определения медленного ответа
locations (array of string, enum: "msk-1", "spb-1", "ala-1", "nyc-1", "ams-1") — Локации, из которых требуется выполнять проверки
dns_record_types (array of string, enum: "A", "AAAA", "CNAME", "MX", "TXT", "NS", "SOA", "PTR", "SRV") — Типы DNS записей для мониторинга. Применимо к protocol = dns.
DnsRecordDiffResponseDto
object
id (number, пример: 1) required — Уникальный идентификатор изменения
domain (string, пример: "example.com") required — Доменное имя
record_type (string, enum: "A", "AAAA", "CNAME", "MX", "TXT", "NS", "SOA", "PTR", "SRV", пример: "A") required — Тип DNS записи
added_records (object | null) required — Добавленные DNS записи
removed_records (object | null) required — Удаленные DNS записи
change_type (string, enum: "added", "modified", "removed", пример: "modified") required — Тип изменения
changed_at (string (date-time), пример: "2023-01-01T00:00:00.000Z") required — Время изменения записи
NotificationRuleResponseDto
object
type (string, enum: "updates", "weekly_reports", "service_alerts", "test_alerts", "ssl_alerts", "domain_alerts", "dns_alerts", "ideas", "billing_alerts", "holiday_mode", "api_key_alerts", "security_alerts", "receipt", пример: "service_alerts") required — Тип подписки на уведомления, например, для оповещений или обновлений
channels (object) required — Каналы для уведомлений и их активный статус
email (boolean, пример: true) — Включены ли уведомления на емейл для данного типа подписки
telegram (boolean, пример: true) — Включены ли уведомления в Телеграм для данного типа подписки
max (boolean, пример: true) — Включены ли уведомления в MAX для данного типа подписки
CreateNotificationRuleDto
object
type (string, enum: "updates", "weekly_reports", "service_alerts", "test_alerts", "ssl_alerts", "domain_alerts", "dns_alerts", "ideas", "billing_alerts", "holiday_mode", "api_key_alerts", "security_alerts", "receipt", пример: "service_alerts") required — Тип подписки на уведомления, например, для оповещений или обновлений
email (boolean, пример: true) required — Включены ли уведомления по емейл для данного типа подписки
telegram (boolean, пример: true) required — Включены ли уведомления в Телеграм для данного типа подписки
max (boolean, пример: true) required — Включены ли уведомления в MAX для данного типа подписки
WebhookEndpointResponseDto
object
id (number, пример: 1) required — ID вебхука
name (string, пример: "Slack prod") required — Название вебхука
url (string, пример: "https://example.com/webhooks/statuser") required — URL, куда будет отправляться вебхук
subscriptions (array of string, enum: "updates", "weekly_reports", "service_alerts", "test_alerts", "ssl_alerts", "domain_alerts", "dns_alerts", "ideas", "billing_alerts", "holiday_mode", "api_key_alerts", "security_alerts", "receipt") required — Список подписок, которые отправляются на этот webhook
is_secret_set (boolean, пример: true) required — Указан ли секрет для подписи запросов вебхука
created_at (string (date-time), пример: "2026-02-08T12:00:00.000Z") required — Дата добавления вебхука
CreateWebhookEndpointDto
object
name (string, пример: "Slack prod") required — Название вебхука
url (string, пример: "https://example.com/webhooks/statuser") required — URL, куда будет отправляться вебхук
secret (string | null, пример: null) required — Секрет для подписи запросов вебхука. Не возвращается обратно из API
subscriptions (array of string, enum: "weekly_reports", "service_alerts", "ssl_alerts", "domain_alerts", "dns_alerts", "ideas", "billing_alerts", "holiday_mode", "api_key_alerts", "security_alerts") required — Список типов подписок, которые должны отправляться на этот вебхук
UpdateWebhookEndpointDto
object
name (string, пример: "Slack prod") — Название вебхука
url (string, пример: "https://example.com/webhooks/statuser") — URL, куда будет отправляться вебхук
secret (string | null, пример: "my-secret") — Секрет для подписи запросов вебхука. Не возвращается обратно из API
subscriptions (array of string, enum: "weekly_reports", "service_alerts", "ssl_alerts", "domain_alerts", "dns_alerts", "ideas", "billing_alerts", "holiday_mode", "api_key_alerts", "security_alerts") — Список типов подписок, которые должны отправляться на этот вебхук
CreateMaxLinkDto
object
link_user (string, пример: "https://max.ru/statuser_notify_bot?start=ab12cd34") required — Ссылка для привязки аккаунта MAX пользователя
link_group (string, пример: "https://max.ru/statuser_notify_bot?start=ab12cd34_group") required — Ссылка для запуска групповой привязки в MAX
MaxResponseDto
object
max_id (string, пример: "1234567890") required — ID чата в Max
max_name (object | null) required — Название чата или имя пользователя
avatar_url (object | null) required — Прямая ссылка на аватар в S3
type (string, enum: "user", "chat", пример: "chat") required — Тип получателя: пользователь или чат
created_at (string (date-time), пример: "2024-11-30T14:48:00.000Z") required — Дата привязки аккаунта MAX
is_2fa_account (boolean, пример: true) required — Используется ли аккаунт для двухфакторной аутентификации
UpdateMaxDto
object
max_id (string) required — ID чата в Max
NotificationEmailResponseDto
object
id (number) required — ID записи
email (string) required — Емейл
status (string, enum: "pending", "confirmed") required — Статус подтверждения емейл
created_at (string (date-time)) required — Дата создания
AddNotificationEmailDto
object
email (string, пример: "alerts@example.com") required — Емейл для уведомлений
ConfirmNotificationEmailDto
object
code (string, пример: "123456") required — Код подтверждения емейл из письма
HolidayModeResponseDto
object
holiday_until (string | null) required — Дата и время (UTC) до включения уведомлений, либо null, если режим отключен
CreateHolidayModeDto
object
holiday_until (string | null, пример: "2025-08-18 13:20:25.495746+00") — Дата и время (UTC) до включения уведомлений, либо null для выключения режима
IncidentResponseDto
object
id (number, пример: 1) required — ID инцидента
server_id (number, пример: 1) required — ID сервера
started_at (string (date-time), пример: "2023-01-01T00:00:00.000Z") required — Время начала инцидента
ended_at (object | null) required — Время окончания инцидента
status (string, enum: "ongoing", "resolved", "dismissed", "auto_closed_changed", "auto_closed_timeout", пример: "resolved") required — Текущий статус инцидента. ongoing — инцидент активен, сервер сейчас недоступен. resolved — сервер восстановился, инцидент закрыт штатно. dismissed — инцидент вручную отклонён пользователем. auto_closed_changed — автоматически закрыт, потому что параметры проверки сервера изменились, и прежний инцидент стал нерелевантным. auto_closed_timeout — автоматически закрыт планировщиком после длительной неактивности.
root_error (string) required — Основная ошибка проверки сервера
keyword (object | null) required — Ключевое слово, которое искали при типе проверки keyword
screenshot (object) required — Ссылка на скриншот страницы
replay (object) required — Команда для повтора запроса
details (object) required — Детали проваленной проверки
ErrorMeta
object
error (string) required — Ошибка проверки сервера
location (string) required — Регион проверки
ResolvedMeta
object
location (string) required — Регион проверки
NotificationMeta
object
channel (string) required — Канал уведомления
recipient (string) required — Получатель уведомления
type (string) required — Тип уведомления
status (string) required — Статус отправки
CommentMeta
object
id (number) required — ID комментария
comment_text (string) required — Сообщение комментария
attached_files (array of string) required — Прикрепленные к комментарию файлы
updated_at (string (date-time), пример: "2023-01-01T00:00:00.000Z") required — Дата обновления комментария
IncidentEventResponseDto
object
created_at (string (date-time), пример: "2023-01-01T00:00:00.000Z") required — Время создания события
type (string, enum: "error", "resolved", "notification", "comment", "start", "end", пример: "end") required — Тип события
meta (ErrorMeta | ResolvedMeta | NotificationMeta | CommentMeta | null) required — Метаданные события
IncidentSummaryResponseDto
object
summary (object) required — Сгенерированное ИИ саммари диагностики инцидента
rating (string | null, enum: "positive", "negative", пример: "positive") required — Оценка саммари пользователем
IncidentSummaryRatingDto
object
rating (string | null, enum: "positive", "negative", пример: "positive") — Оценка саммари
IncidentCommentAttachmentDto
object
url (string, пример: "https://s3.statuser.cloud/incident-attachments-dev/uuid.png") required — URL вложенного файла
file_name (string, пример: "error-screenshot.png") required — Имя вложенного файла
CreateIncidentCommentDto
object
comment_text (string, пример: "Текст комментария") required — Текст комментария
attached_files (array of object) — Список прикрепленных файлов
url (string, пример: "https://s3.statuser.cloud/incident-attachments-dev/uuid.png") required — URL вложенного файла
file_name (string, пример: "error-screenshot.png") required — Имя вложенного файла
CommentResponseDto
object
id (number, пример: 1) required — ID комментария
comment_text (string, пример: "Комментарий") required — Текст комментария
attached_files (array of object) required — Прикрепленные к комментарию файлы
url (string, пример: "https://s3.statuser.cloud/incident-attachments-dev/uuid.png") required — URL вложенного файла
file_name (string, пример: "error-screenshot.png") required — Имя вложенного файла
created_at (string (date-time), пример: "2023-01-01T00:00:00.000Z") required — Дата создания комментария
updated_at (string (date-time), пример: "2023-01-01T00:00:00.000Z") required — Дата обновления комментария
CreateIncidentCommentUploadUrlDto
object
file_name (string, пример: "incident-log.txt") required — Имя файла для загрузки
content_type (string, пример: "text/plain") — MIME-тип файла
file_size (number, пример: 1024) — Размер файла в байтах
PresignedUploadUrlResponseDto
object
uploadUrl (string, пример: "https://s3.timeweb.cloud/...") required
fileUrl (string, пример: "https://s3.statuser.cloud/status-pages/...") required
UpdateIncidentCommentDto
object
comment_text (string, пример: "Текст комментария") — Текст комментария
attached_files (array of object) — Список прикрепленных файлов с именами
url (string, пример: "https://s3.statuser.cloud/incident-attachments-dev/uuid.png") required — URL вложенного файла
file_name (string, пример: "error-screenshot.png") required — Имя вложенного файла
CheckSlugAvailabilityResponseDto
object
available (boolean, пример: true) required — Флаг, указывающий, свободен ли путь
CheckDomainAvailabilityResponseDto
object
available (boolean, пример: true) required — Флаг, указывающий, не занят ли домен другой страницей статуса
cname_valid (boolean, пример: true) required — Флаг, указывающий, корректно ли настроена CNAME-запись
PresignedUploadUrlDto
object
type (string, enum: "logo", "favicon") required
StatusPageDomain
object
domain (string, пример: "up.example.com") required — Домен страницы статуса
status (string, пример: "active") required — Статус домена
ReportServerStatusPage
object
name (string, пример: "My Server") required — Публичное имя сервера на странице статуса
description (string | null, пример: "My Server") required — Комментарий к серверу
uptime (number, пример: 99.93) required — Общее время безотказной работы сервера в процентах
current_status (string, enum: "operational", "downtime", "not_monitored", "degraded", "under_maintenance", пример: "operational") required — Статус доступности сервера
order (number, пример: 99.93) required — Общее время безотказной работы сервера в процентах
group_id (number, пример: 1) required — Идентификатор группы серверов
availability (array of array of unknown) required — Доступность сервера по датам
ReportServerGroupStatusPage
object
id (number, пример: 1) required — Идентификатор группы
name (string, пример: "Бэкенд-сервисы") required — Имя группы
description (string | null, пример: "Группа для основных API-сервисов") required — Описание группы
order (number, пример: 0) required — Порядок отображения группы
status (string, пример: "operational") required — Статус группы
StatusPageIncidentReportLinkedIncidentResponseDto
object
incident_id (number, пример: 42) required — ID инцидента
server_id (number, пример: 7) required — ID сервера, к которому относится инцидент
server_name (string, пример: "API Gateway") required — Публичное имя сервера на странице статуса
status (string, enum: "ongoing", "resolved", "dismissed", "auto_closed_changed", "auto_closed_timeout", пример: "ongoing") required — Статус инцидента
started_at (string (date-time), пример: "2026-03-06T16:10:00.000Z") required — Время начала инцидента
ended_at (object | null) required — Время окончания инцидента
StatusPageIncidentReportServerDto
object
id (number, пример: 1) required — ID сервиса на status page
name (string, пример: "API Gateway") required — Публичное имя сервиса на странице статуса
status (string, enum: "not_affected", "downtime", "degraded", "resolved", пример: "degraded") required — Статус влияния на сервис
StatusPageIncidentReportUpdateResponseDto
object
id (number, пример: 10100) required — ID обновления внутри отчёта
message (string, пример: "Мы нашли причину сбоя и уже выкатываем исправление. Следующее обновление через 10 минут") required — Текст апдейта
is_initial (boolean, пример: true) required — Является ли запись стартовым сообщением отчёта
published_at (string (date-time), пример: "2026-03-06T16:12:00.000Z") required — Когда обновление было опубликовано
servers (array of object) required — Статусы серверов на момент этого обновления
id (number, пример: 1) required — ID сервиса на status page
name (string, пример: "API Gateway") required — Публичное имя сервиса на странице статуса
status (string, enum: "not_affected", "downtime", "degraded", "resolved", пример: "degraded") required — Статус влияния на сервис
StatusPageIncidentReportResponseDto
object
id (number, пример: 10100) required — ID отчёта
title (string, пример: "Проблемы с доступностью API Gateway") required — Заголовок отчёта
started_at (string (date-time), пример: "2026-03-06T16:10:00.000Z") required — Время начала отчёта
current_status (string, enum: "not_affected", "downtime", "degraded", "resolved", пример: "degraded") required — Текущий статус отчёта по последнему известному состоянию сервисов
incidents (array of object) required — Инциденты, связанные с отчётом
incident_id (number, пример: 42) required — ID инцидента
server_id (number, пример: 7) required — ID сервера, к которому относится инцидент
server_name (string, пример: "API Gateway") required — Публичное имя сервера на странице статуса
status (string, enum: "ongoing", "resolved", "dismissed", "auto_closed_changed", "auto_closed_timeout", пример: "ongoing") required — Статус инцидента
started_at (string (date-time), пример: "2026-03-06T16:10:00.000Z") required — Время начала инцидента
ended_at (object | null) required — Время окончания инцидента
servers (array of object) required — Актуальные статусы сервисов внутри отчёта
id (number, пример: 1) required — ID сервиса на status page
name (string, пример: "API Gateway") required — Публичное имя сервиса на странице статуса
status (string, enum: "not_affected", "downtime", "degraded", "resolved", пример: "degraded") required — Статус влияния на сервис
updates (array of object) required — Таймлайн сообщений внутри отчёта
id (number, пример: 10100) required — ID обновления внутри отчёта
message (string, пример: "Мы нашли причину сбоя и уже выкатываем исправление. Следующее обновление через 10 минут") required — Текст апдейта
is_initial (boolean, пример: true) required — Является ли запись стартовым сообщением отчёта
published_at (string (date-time), пример: "2026-03-06T16:12:00.000Z") required — Когда обновление было опубликовано
servers (array of object) required — Статусы серверов на момент этого обновления
id (number, пример: 1) required — ID сервиса на status page
name (string, пример: "API Gateway") required — Публичное имя сервиса на странице статуса
status (string, enum: "not_affected", "downtime", "degraded", "resolved", пример: "degraded") required — Статус влияния на сервис
StatusPagePlannedMaintenanceServerDto
object
id (number, пример: 1) required — ID сервиса на status page
name (string, пример: "API Gateway") required — Публичное имя сервиса на странице статуса
StatusPagePlannedMaintenanceUpdateResponseDto
object
id (number, пример: 10100) required — ID обновления внутри записи плановых работ
message (string, пример: "Работы идут по плану. Возможны кратковременные перерывы в работе API.") required — Текст апдейта
is_initial (boolean, пример: true) required — Является ли запись стартовым сообщением
published_at (string (date-time), пример: "2026-03-06T16:12:00.000Z") required — Когда обновление было опубликовано
servers (array of object) required — Сервисы, которых касается это обновление
id (number, пример: 1) required — ID сервиса на status page
name (string, пример: "API Gateway") required — Публичное имя сервиса на странице статуса
StatusPagePlannedMaintenanceResponseDto
object
id (number, пример: 10100) required — ID плановых работ
title (string, пример: "Плановое обновление API Gateway") required — Заголовок плановых работ
description (string, пример: "Во время обновления возможны кратковременные перерывы в работе API и панели управления.") required — Описание плановых работ
started_at (string (date-time), пример: "2026-03-20T01:00:00.000Z") required — Время начала плановых работ
ended_at (string (date-time), пример: "2026-03-20T03:00:00.000Z") required — Время завершения плановых работ
servers (array of object) required — Сервисы на странице статуса, затрагиваемые плановыми работами
id (number, пример: 1) required — ID сервиса на status page
name (string, пример: "API Gateway") required — Публичное имя сервиса на странице статуса
updates (array of object) required — История обновлений по плановым работам
id (number, пример: 10100) required — ID обновления внутри записи плановых работ
message (string, пример: "Работы идут по плану. Возможны кратковременные перерывы в работе API.") required — Текст апдейта
is_initial (boolean, пример: true) required — Является ли запись стартовым сообщением
published_at (string (date-time), пример: "2026-03-06T16:12:00.000Z") required — Когда обновление было опубликовано
servers (array of object) required — Сервисы, которых касается это обновление
id (number, пример: 1) required — ID сервиса на status page
name (string, пример: "API Gateway") required — Публичное имя сервиса на странице статуса
created_at (string (date-time), пример: "2026-03-18T12:00:00.000Z") required — Дата создания записи
StatusPageResponseDto
object
id (number, пример: 1) required — ID страницы статуса
name (string, пример: "Statuser") required — Название страницы статуса
status (string, пример: "operational") required — Общий статус сервисов
slug (string, пример: "statuser") required — Уникальный путь страницы статуса
description (object | null) required — Описание страницы статуса
logo_url (object | null) required — URL логотипа
favicon_url (object | null) required — URL фавикона
company_url (object | null) required — URL сайта компании
support_url (object | null) required — Email службы поддержки
domains (array of object) required — Привязанные к странице статуса домены
domain (string, пример: "up.example.com") required — Домен страницы статуса
status (string, пример: "active") required — Статус домена
is_indexed (boolean, пример: true) required — Индексируется ли страница поисковиками
is_published (boolean, пример: true) required — Опубликована ли страница
is_white_labeled (boolean, пример: false) required — Вайт-лейблинг: скрыт ли бренд Statuser
timeline_days (number, пример: 60) required — Количество дней, показываемых в таймлайне
timezone (string, пример: "Europe/Moscow") required — Таймзона страницы статуса
uptime_decimal_places (number, пример: 2) required — Количество знаков после запятой у аптайма
theme_mode (string, enum: "user", "light", "dark", пример: "user") required — Режим темы страницы статуса
is_not_monitored_operational (boolean, пример: false) required — Показывать ли статус Не в мониторинге зелёным, как Доступен
minimum_incident_duration (number, пример: 0) required — Минимальная длительность инцидента в секундах для отображения на странице
is_password_protected (boolean, пример: true) required — Защищена ли страница статуса паролем
servers (array of object) required — Список серверов, добавленных на страницу статуса
name (string, пример: "My Server") required — Публичное имя сервера на странице статуса
description (string | null, пример: "My Server") required — Комментарий к серверу
uptime (number, пример: 99.93) required — Общее время безотказной работы сервера в процентах
current_status (string, enum: "operational", "downtime", "not_monitored", "degraded", "under_maintenance", пример: "operational") required — Статус доступности сервера
order (number, пример: 99.93) required — Общее время безотказной работы сервера в процентах
group_id (number, пример: 1) required — Идентификатор группы серверов
availability (array of array of unknown) required — Доступность сервера по датам
groups (array of object) required — Список групп серверов
id (number, пример: 1) required — Идентификатор группы
name (string, пример: "Бэкенд-сервисы") required — Имя группы
description (string | null, пример: "Группа для основных API-сервисов") required — Описание группы
order (number, пример: 0) required — Порядок отображения группы
status (string, пример: "operational") required — Статус группы
incident_reports (array of object) required — Публичные отчёты по инцидентам на странице статуса
id (number, пример: 10100) required — ID отчёта
title (string, пример: "Проблемы с доступностью API Gateway") required — Заголовок отчёта
started_at (string (date-time), пример: "2026-03-06T16:10:00.000Z") required — Время начала отчёта
current_status (string, enum: "not_affected", "downtime", "degraded", "resolved", пример: "degraded") required — Текущий статус отчёта по последнему известному состоянию сервисов
incidents (array of object) required — Инциденты, связанные с отчётом
incident_id (number, пример: 42) required — ID инцидента
server_id (number, пример: 7) required — ID сервера, к которому относится инцидент
server_name (string, пример: "API Gateway") required — Публичное имя сервера на странице статуса
status (string, enum: "ongoing", "resolved", "dismissed", "auto_closed_changed", "auto_closed_timeout", пример: "ongoing") required — Статус инцидента
started_at (string (date-time), пример: "2026-03-06T16:10:00.000Z") required — Время начала инцидента
ended_at (object | null) required — Время окончания инцидента
servers (array of object) required — Актуальные статусы сервисов внутри отчёта
id (number, пример: 1) required — ID сервиса на status page
name (string, пример: "API Gateway") required — Публичное имя сервиса на странице статуса
status (string, enum: "not_affected", "downtime", "degraded", "resolved", пример: "degraded") required — Статус влияния на сервис
updates (array of object) required — Таймлайн сообщений внутри отчёта
id (number, пример: 10100) required — ID обновления внутри отчёта
message (string, пример: "Мы нашли причину сбоя и уже выкатываем исправление. Следующее обновление через 10 минут") required — Текст апдейта
is_initial (boolean, пример: true) required — Является ли запись стартовым сообщением отчёта
published_at (string (date-time), пример: "2026-03-06T16:12:00.000Z") required — Когда обновление было опубликовано
servers (array of object) required — Статусы серверов на момент этого обновления
id (number, пример: 1) required — ID сервиса на status page
name (string, пример: "API Gateway") required — Публичное имя сервиса на странице статуса
status (string, enum: "not_affected", "downtime", "degraded", "resolved", пример: "degraded") required — Статус влияния на сервис
planned_maintenances (array of object) required — Плановые работы на странице статуса
id (number, пример: 10100) required — ID плановых работ
title (string, пример: "Плановое обновление API Gateway") required — Заголовок плановых работ
description (string, пример: "Во время обновления возможны кратковременные перерывы в работе API и панели управления.") required — Описание плановых работ
started_at (string (date-time), пример: "2026-03-20T01:00:00.000Z") required — Время начала плановых работ
ended_at (string (date-time), пример: "2026-03-20T03:00:00.000Z") required — Время завершения плановых работ
servers (array of object) required — Сервисы на странице статуса, затрагиваемые плановыми работами
id (number, пример: 1) required — ID сервиса на status page
name (string, пример: "API Gateway") required — Публичное имя сервиса на странице статуса
updates (array of object) required — История обновлений по плановым работам
id (number, пример: 10100) required — ID обновления внутри записи плановых работ
message (string, пример: "Работы идут по плану. Возможны кратковременные перерывы в работе API.") required — Текст апдейта
is_initial (boolean, пример: true) required — Является ли запись стартовым сообщением
published_at (string (date-time), пример: "2026-03-06T16:12:00.000Z") required — Когда обновление было опубликовано
servers (array of object) required — Сервисы, которых касается это обновление
id (number, пример: 1) required — ID сервиса на status page
name (string, пример: "API Gateway") required — Публичное имя сервиса на странице статуса
created_at (string (date-time), пример: "2026-03-18T12:00:00.000Z") required — Дата создания записи
created_at (string (date-time), пример: "2024-01-01T00:00:00.000Z") required — Дата создания страницы статуса
CreateStatusPageDto
object
name (string, пример: "Statuser") required — Название страницы статуса
slug (string, пример: "statuser") — Уникальный путь страницы статуса
description (string | null, пример: "Описание страницы статуса") — Описание страницы статуса
logo_url (string | null, пример: "https://example.com/logo.png") — URL логотипа
favicon_url (string | null, пример: "https://example.com/favicon.png") — URL фавикона
company_url (string | null, пример: "https://example.com") — URL сайта компании
support_url (string | null, пример: "support@example.com") — Email службы поддержки
domain (string | null, пример: "status.example.com") — Собственный домен страницы статуса
is_indexed (boolean, пример: true) — Индексируется ли страница поисковиками
is_published (boolean, пример: true) — Опубликована ли страница
is_white_labeled (boolean, пример: false) — Вайт-лейблинг: скрыть бренд Statuser
timeline_days (number, enum: 7, 14, 30, 60, 90, 180, пример: 60) — Количество дней таймлайна на странице статуса
timezone (string, пример: "Europe/Moscow") — Таймзона, в которой считаются дни на странице статуса
uptime_decimal_places (number, пример: 2) — Количество знаков после запятой для аптайма
theme_mode (string, enum: "user", "light", "dark", пример: "user") — Режим темы страницы статуса
is_not_monitored_operational (boolean, пример: false) — Показывать ли статус Не в мониторинге зелёным, как Доступен
minimum_incident_duration (number, пример: 0) — Минимальная длительность инцидента в секундах для отображения на странице
password (string | null, пример: "mysecretpassword") — Пароль для доступа к странице статуса
UpdateStatusPageDto
object
name (string, пример: "Statuser") — Название страницы статуса
slug (string, пример: "statuser") — Уникальный путь страницы статуса
description (string | null, пример: "Описание страницы статуса") — Описание страницы статуса
logo_url (string | null, пример: "https://example.com/logo.png") — URL логотипа
favicon_url (string | null, пример: "https://example.com/favicon.png") — URL фавикона
company_url (string | null, пример: "https://example.com") — URL сайта компании
support_url (string | null, пример: "support@example.com") — Email службы поддержки
domain (string | null, пример: "status.example.com") — Собственный домен страницы статуса
is_indexed (boolean, пример: true) — Индексируется ли страница поисковиками
is_published (boolean, пример: true) — Опубликована ли страница
is_white_labeled (boolean, пример: false) — Вайт-лейблинг: скрыть бренд Statuser
timeline_days (number, пример: 60) — Количество дней таймлайна на странице статуса
timezone (string, пример: "Europe/Moscow") — Таймзона, в которой считаются дни на странице статуса
uptime_decimal_places (number, пример: 2) — Количество знаков после запятой для аптайма
theme_mode (string, enum: "user", "light", "dark", пример: "user") — Режим темы страницы статуса
is_not_monitored_operational (boolean, пример: false) — Показывать ли статус Не в мониторинге зелёным, как Доступен
minimum_incident_duration (number, пример: 0) — Минимальная длительность инцидента в секундах для отображения на странице
password (string | null, пример: "mysecretpassword") — Пароль для доступа к странице статуса
UpdateStatusPageServerDto
object
name (string, пример: "API Server") required — Отображаемое имя сервера на странице статуса
server_id (number, пример: 5) required — ID сервера из общего списка серверов
description (string | null, пример: "Описание сервера") — Комментарий к серверу
order (number, пример: 0) required — Порядок отображения сервера внутри группы
UpdateStatusPageGroupDto
object
id (number, пример: 123) — Уникальный ID группы серверов. Передайте, чтобы обновить существующую группу; опустите, чтобы создать новую.
name (string, пример: "Backend") required — Название группы серверов
order (number, пример: 0) required — Порядок отображения группы на странице статуса
description (string | null, пример: "Группа основных бэкенд-сервисов") — Описание группы
servers (array of object) required — Список серверов в этой группе
name (string, пример: "API Server") required — Отображаемое имя сервера на странице статуса
server_id (number, пример: 5) required — ID сервера из общего списка серверов
description (string | null, пример: "Описание сервера") — Комментарий к серверу
order (number, пример: 0) required — Порядок отображения сервера внутри группы
UpdateStatusPageGroupsDto
object
groups (array of object) required — Группы серверов на странице статуса
id (number, пример: 123) — Уникальный ID группы серверов. Передайте, чтобы обновить существующую группу; опустите, чтобы создать новую.
name (string, пример: "Backend") required — Название группы серверов
order (number, пример: 0) required — Порядок отображения группы на странице статуса
description (string | null, пример: "Группа основных бэкенд-сервисов") — Описание группы
servers (array of object) required — Список серверов в этой группе
name (string, пример: "API Server") required — Отображаемое имя сервера на странице статуса
server_id (number, пример: 5) required — ID сервера из общего списка серверов
description (string | null, пример: "Описание сервера") — Комментарий к серверу
order (number, пример: 0) required — Порядок отображения сервера внутри группы
CreateStatusPageIncidentReportServerDto
object
server_id (number, пример: 1) required — ID сервера на странице статуса
status (string, enum: "not_affected", "downtime", "degraded", "resolved", пример: "downtime") required — Статус влияния на сервер в момент создания отчёта
CreateStatusPageIncidentReportDto
object
title (string, пример: "Проблемы с доступностью API Gateway") required — Заголовок отчёта
initial_message (string, пример: "Часть пользователей может сталкиваться с ошибками 502. Команда уже расследует причину") required — Текст стартового сообщения отчёта
started_at (string (date-time), пример: "2026-03-06T16:12:00.000Z") required — Время начала отчёта
incident_ids (array of number) — Связанные инциденты, если отчёт основан на существующих инцидентах
servers (array of object) required — Стартовые статусы серверов в рамках отчёта
server_id (number, пример: 1) required — ID сервера на странице статуса
status (string, enum: "not_affected", "downtime", "degraded", "resolved", пример: "downtime") required — Статус влияния на сервер в момент создания отчёта
UpdateStatusPageIncidentReportDto
object
title (string, пример: "Проблемы с доступностью API Gateway") — Заголовок отчёта
started_at (string (date-time), пример: "2026-03-06T16:12:00.000Z") — Время начала отчёта
CreateStatusPageIncidentReportUpdateServerDto
object
server_id (number, пример: 1) required — ID сервера на странице статуса
status (string, enum: "not_affected", "downtime", "degraded", "resolved", пример: "downtime") required — Новый статус влияния на сервер
CreateStatusPageIncidentReportUpdateDto
object
message (string, пример: "Мы нашли причину сбоя и уже выкатываем исправление. Следующее обновление через 10 минут") required — Текст апдейта
published_at (string (date-time), пример: "2026-03-06T16:22:00.000Z") — Время публикации апдейта
servers (array of object) required — Новые статусы сервисов в рамках апдейта
server_id (number, пример: 1) required — ID сервера на странице статуса
status (string, enum: "not_affected", "downtime", "degraded", "resolved", пример: "downtime") required — Новый статус влияния на сервер
UpdateStatusPageIncidentReportUpdateDto
object
message (string, пример: "Мы нашли причину сбоя и уже выкатываем исправление. Следующее обновление через 10 минут") required — Обновлённый текст апдейта
CreateStatusPagePlannedMaintenanceServerDto
object
id (number, пример: 1) required — ID сервиса на странице статуса
CreateStatusPagePlannedMaintenanceDto
object
title (string, пример: "Плановое обновление API Gateway") required — Заголовок плановых работ
description (string, пример: "Во время обновления возможны кратковременные перерывы в работе API и панели управления.") required — Описание плановых работ
started_at (string (date-time), пример: "2026-03-20T01:00:00.000Z") required — Время начала плановых работ
ended_at (string (date-time), пример: "2026-03-20T03:00:00.000Z") required — Время завершения плановых работ
servers (array of object) required — Сервисы на странице статуса, затрагиваемые плановыми работами
id (number, пример: 1) required — ID сервиса на странице статуса
UpdateStatusPagePlannedMaintenanceServerDto
object
id (number, пример: 1) required — ID сервиса на странице статуса
UpdateStatusPagePlannedMaintenanceDto
object
title (string, пример: "Плановое обновление API Gateway") — Заголовок плановых работ
description (string, пример: "Во время обновления возможны кратковременные перерывы в работе API и панели управления.") — Описание плановых работ
started_at (string (date-time), пример: "2026-03-20T01:00:00.000Z") — Время начала плановых работ
ended_at (string (date-time), пример: "2026-03-20T03:00:00.000Z") — Время завершения плановых работ
servers (array of object) — Сервисы на странице статуса, затрагиваемые плановыми работами
id (number, пример: 1) required — ID сервиса на странице статуса
CreateStatusPagePlannedMaintenanceUpdateDto
object
message (string, пример: "Работы идут по плану. Возможны кратковременные перерывы в работе API.") required — Текст апдейта о ходе плановых работ
published_at (string (date-time), пример: "2026-03-20T01:30:00.000Z") — Время публикации апдейта
UpdateStatusPagePlannedMaintenanceUpdateDto
object
message (string, пример: "Работы идут по плану. Завершаем проверку и скоро опубликуем финальный апдейт.") required — Обновлённый текст апдейта
Info2faResponseDto
object
preferred_method (string | null, enum: "telegram", "max", "email", "totp", пример: "telegram") required — Предпочитаемый метод двухфакторной аутентификации
allowed_methods (array of string, enum: "telegram", "max", "email", "totp") required — Список доступных методов двухфакторной аутентификации