API status-страниц

Status-страницы публикуют актуальное состояние выбранных мониторов по публичному (или приватному) URL. Эта страница документирует публичный эндпоинт статуса, который любой клиент может читать без аутентификации, а также эндпоинты User API для получения списка и чтения ваших status-страниц.

Существует три различные поверхности, и они не используют один и тот же хост или схему аутентификации:

Поверхность Эндпоинт Аутентификация Хост
Публичные данные статуса GET /api/status/{slug} Нет api.statusradar.dev
User API (чтение) GET /v1/status-pages, GET /v1/status-pages/{id} Authorization: Bearer <token> api.statusradar.dev
Страница для людей GET /status/{slug} Нет (публичные страницы) statusradar.dev

Сами status-страницы создаются и редактируются из дашборда, а не через API — User API предоставляет их только на чтение. См. Управление status-страницами.

Публичный эндпоинт статуса

GET /api/status/{slug}

Возвращает опубликованное состояние status-страницы, идентифицированной по её slug. Без аутентификации. Обслуживаются только страницы с is_public = true; приватный или неизвестный slug возвращает 404.

curl https://api.statusradar.dev/v1/status/my-status-page

Параметры пути

Параметр Тип Описание
slug string Уникальный URL-slug страницы (нижний регистр, a-z0-9-_).

Поля ответа

Полезная нагрузка описывает страницу и мониторы, назначенные ей.

Поле Тип Описание
slug string Уникальный URL-slug страницы.
title string Отображаемый заголовок.
description string | null Опциональное описание, показываемое под заголовком.
is_public boolean Доступна ли страница для публичного чтения. Этот эндпоинт всегда возвращает здесь true.
language string Язык отображения, ISO 639-1 (например, en, ru, es).
show_history_days integer Длина окна истории uptime в днях. Одно из 30, 60, 90, 180, 365.
theme object Настройки темы (см. ниже).
overall_status string Сводное состояние по всем мониторам: operational или partial.
monitors array Мониторы, назначенные странице, сгруппированные по их group_name.
incidents array До 10 самых недавних инцидентов, затрагивающих мониторы страницы.
uptime_history array Ежедневные точки uptime за последние show_history_days дней.

Объект theme

Поле Тип Описание
primary_color string Акцентный цвет в hex, например #10b981.
layout string Имя макета/темы, например modern-light.

Объект monitors[]

Каждая запись монитора объединяет определение монитора с его настройками отображения для конкретной страницы и актуальным статусом.

Поле Тип Описание
id integer ID монитора.
name string Имя монитора.
display_name string | null Опциональное переопределение, показываемое на этой странице вместо name.
group_name string Группа, под которой отображается монитор (по умолчанию General).
current_status string operational, down или unknown.
response_time_ms number | null Последнее время ответа в миллисекундах.
last_check string | null Временная метка последней проверки.
show_uptime boolean Показывается ли полоса uptime для этого монитора.
show_response_time boolean Показывается ли значение времени ответа.

Объект uptime_history[]

Поле Тип Описание
date string Календарный день, YYYY-MM-DD.
uptime number | null Процент uptime за этот день или null, когда данных нет.
hasData boolean Были ли записаны метрики за этот день.

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

{
  "slug": "my-status-page",
  "title": "Acme Status",
  "description": "Live status of the Acme platform.",
  "is_public": true,
  "language": "en",
  "show_history_days": 90,
  "theme": {
    "primary_color": "#10b981",
    "layout": "modern-light"
  },
  "overall_status": "operational",
  "monitors": [
    {
      "id": 42,
      "name": "API",
      "display_name": "Public API",
      "group_name": "Core",
      "current_status": "operational",
      "response_time_ms": 128,
      "last_check": "2026-06-23T09:14:02Z",
      "show_uptime": true,
      "show_response_time": true
    },
    {
      "id": 43,
      "name": "Website",
      "display_name": null,
      "group_name": "Core",
      "current_status": "down",
      "response_time_ms": null,
      "last_check": "2026-06-23T09:13:55Z",
      "show_uptime": true,
      "show_response_time": false
    }
  ],
  "incidents": [
    {
      "id": 9,
      "monitor_name": "Website",
      "title": "Elevated error rate",
      "status": "investigating",
      "severity": "major",
      "started_at": "2026-06-23T09:00:00Z"
    }
  ],
  "uptime_history": [
    { "date": "2026-06-22", "uptime": 100, "hasData": true },
    { "date": "2026-06-23", "uptime": 99.86, "hasData": true }
  ]
}

Когда любой назначенный монитор имеет статус down, overall_status становится partial, и группа этого монитора также отмечается как partial. В полезной нагрузке появляются только активные мониторы (is_active = true).

Ошибки

Статус Значение
404 Для этого slug не существует публичной status-страницы (неизвестный slug или страница приватная).

User API — Status-страницы

Эти эндпоинты требуют пользовательского API-токена. Сгенерируйте его в Dashboard → Settings → API (/dashboard/settings/api) и отправляйте как Bearer-токен. Результаты ограничены status-страницами, которыми владеют ваш аккаунт и команда. User API доступен только на чтение для status-страниц; создавайте и редактируйте их из дашборда.

Authorization: Bearer YOUR_API_TOKEN

Список status-страниц

GET /v1/status-pages
curl -H "Authorization: Bearer YOUR_API_TOKEN" \
  https://api.statusradar.dev/v1/status-pages

Возвращает status-страницы, принадлежащие вашей команде, включая как публичные, так и приватные страницы, каждая со своим slug, title, is_public, show_history_days, language, темой и количеством назначенных мониторов.

Получение status-страницы

GET /v1/status-pages/{id}
curl -H "Authorization: Bearer YOUR_API_TOKEN" \
  https://api.statusradar.dev/v1/status-pages/12

Возвращает отдельную status-страницу по числовому id с её полной конфигурацией и назначенными мониторами. Возвращает 404, если страница не существует или не принадлежит вашей команде.

Параметр Тип Описание
id integer Числовой ID status-страницы (не slug).

Поля status-страницы

Эти поля определяют status-страницу. Они задаются в дашборде и предоставляются эндпоинтами выше.

Поле Тип По умолчанию Описание
slug string Уникальный URL-slug, 3–100 символов, a-z0-9-_ (приводится к нижнему регистру при сохранении). Используется для /status/{slug} и /api/status/{slug}.
title string Отображаемый заголовок, 3–255 символов.
description string | null null Опциональное описание, до 1000 символов.
is_public boolean true Публичные страницы обслуживаются публичным эндпоинтом и по адресу /status/{slug}; приватные — нет.
language string en Язык отображения (ISO 639-1). Задаёт локаль отрендеренной страницы.
show_history_days integer 90 Окно истории uptime. Допустимые значения: 30, 60, 90, 180, 365. Любое другое значение откатывается к 90.
theme.primary_color string #10b981 Акцентный цвет (hex).
theme.layout string modern-light Имя макета/темы.
monitors array [] Мониторы, назначенные странице. Каждое назначение может переопределить отображаемое имя и переключить виджеты uptime / времени ответа.

Настройки отображения для каждого монитора

Когда вы назначаете монитор странице, эти настройки на каждое назначение управляют тем, как он отображается:

Настройка Тип По умолчанию Описание
display_name string | null null Переопределение, показываемое вместо имени монитора.
group_name string General Заголовок раздела, под которым группируется монитор.
order_index integer 0 Порядок сортировки внутри группы.
show_uptime boolean true Показывать полосу истории uptime.
show_response_time boolean true Показывать последнее время ответа.

Управление status-страницами (Dashboard)

Создавайте и настраивайте status-страницы из дашборда — эти действия не предоставляются через Public/User API:

  • СоздатьDashboard → Status Pages → Create (/dashboard/status-pages/create). Задайте title, slug, description, видимость, язык, окно истории и тему.
  • Редактировать/dashboard/status-pages/{slug}/edit.
  • Назначить мониторы/dashboard/status-pages/{slug}/manage-monitors. Выберите мониторы и задайте опции отображения для каждого монитора.
  • Удалить — удаляет страницу и назначения её мониторов.

Создание status-страниц ограничено квотой status-страниц вашего тарифа; достижение лимита предложит апгрейд. См. Status-страницы.

URL публичной страницы

Каждая публичная status-страница также доступна для просмотра как HTML-страница по адресу:

https://statusradar.dev/status/{slug}

Это версия для людей тех же данных, которые возвращает GET /api/status/{slug} — поделитесь ею со своими пользователями. Приватные страницы возвращают 404 по этому URL.

Дальнейшие шаги

  • Обзор API — полная поверхность API и базовые URL
  • Аутентификация API — типы токенов и как их отправлять
  • Status-страницы — создание и кастомизация status-страниц
  • Мониторы — создание мониторов, которые вы назначаете странице
  • Оповещения — оповещения, которые отображаются как инциденты на странице