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-страниц
- Мониторы — создание мониторов, которые вы назначаете странице
- Оповещения — оповещения, которые отображаются как инциденты на странице