Обзор API

StatusRadar предоставляет версионированный REST API для программного доступа к данным мониторинга, а также эндпоинты приёма данных от probe, серверных агентов и телеметрии observability. На этой странице перечислена вся поверхность API, сгруппированная по семействам, с указанием схемы аутентификации, которую использует каждое семейство.

Базовые URL

Все эндпоинты находятся под префиксом /v1. Хост зависит от семейства:

Хост Используется
https://api.statusradar.dev/v1 Public API, User API, Probe API, Agent API
https://statusradar.dev/v1 То же, что и выше (псевдоним)
https://otlp.statusradar.dev/v1 Приём OTLP (traces, logs, metrics)
https://rum.statusradar.dev/v1 Приём RUM

Версия API

Текущая версия API: v1. Версия является частью пути URL. Будущие версии будут выходить под новыми префиксами (v2, …), при этом v1 останется стабильной.

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

Схемы аутентификации различаются в зависимости от семейства. Не предполагайте, что везде используется Bearer-токен.

Семейство Схема Где
Public API Нет
User API Authorization: Bearer <user_api_token> Заголовок
Probe API Authorization: Bearer <probe_token> Заголовок
Agent API Authorization: Bearer <agent_token> Заголовок
Приём OTLP X-App-Token: <app_token> Заголовок
Приём RUM api_key=<key> Параметр запроса

Типы токенов и управление ими см. в разделе Аутентификация API.

Формат запроса и ответа

API следует соглашениям REST:

  • GET — получение ресурсов
  • POST — создание ресурсов / отправка данных
  • PUT — обновление существующих ресурсов
  • DELETE — удаление ресурсов

Запросы POST и PUT отправляют тело в формате JSON и должны включать:

Content-Type: application/json

Успешные запросы возвращают JSON со статусом HTTP 2xx. Ошибки возвращают статус 4xx/5xx с телом в формате JSON:

{
  "error": true,
  "message": "Resource not found",
  "status": 404
}

Типичные коды статусов: 400 неверный запрос, 401 не авторизован, 403 запрещено, 404 не найдено, 422 ошибка валидации, 429 превышен лимит запросов, 500 ошибка сервера.

Public API

Без аутентификации. Доступ только на чтение к опубликованным данным статуса.

GET /v1/status/{slug}              # Public status-page payload
GET /v1/monitors/{id}/uptime       # Public uptime for a monitor
curl https://api.statusradar.dev/v1/status/my-status-page

User API

Требуется пользовательский API-токен (Authorization: Bearer <token>). Сгенерируйте его в Dashboard → Settings → API. Ограничен ресурсами, которыми владеет ваш аккаунт (и команда).

Мониторы

GET    /v1/monitors                # List monitors
POST   /v1/monitors                # Create a monitor
GET    /v1/monitors/{id}           # Get a monitor
PUT    /v1/monitors/{id}           # Update a monitor
DELETE /v1/monitors/{id}           # Delete a monitor
GET    /v1/monitors/{id}/checks    # Recent check results
GET    /v1/monitors/{id}/metrics   # Performance metrics
GET    /v1/monitors/{id}/uptime    # Uptime summary
curl -H "Authorization: Bearer YOUR_API_TOKEN" \
  https://api.statusradar.dev/v1/monitors

Инциденты

Только чтение через API.

GET /v1/incidents                  # List incidents
GET /v1/incidents/{id}             # Get an incident

Status-страницы

Только чтение через API.

GET /v1/status-pages               # List status pages
GET /v1/status-pages/{id}          # Get a status page

Probe API

Используется распределёнными Python-probe. Аутентификация через probe-токен (Authorization: Bearer <token>). Доступен как на api.statusradar.dev, так и на statusradar.dev.

POST /v1/probe/check-result        # Submit a check result
GET  /v1/probe/get-checks          # Fetch checks assigned to this probe
POST /v1/probe/heartbeat           # Report probe liveness

Agent API

Используется серверным агентом StatusRadar. Аутентификация через agent-токен (Authorization: Bearer <token>).

POST /v1/agent/register            # Register an agent
POST /v1/agent/metrics             # Submit server / plugin metrics
GET  /v1/agent/config              # Fetch agent configuration

См. Установка агента и Настройка агента.

Приём OTLP

Бэкенд-телеметрия observability. Отправляйте на otlp.statusradar.dev с токеном приложения в заголовке X-App-Token. Создайте приложение и токен в Dashboard → Observability.

POST /v1/traces                    # Spans
POST /v1/logs                      # Log records
POST /v1/metrics                   # Metrics
curl -X POST https://otlp.statusradar.dev/v1/logs \
  -H "X-App-Token: YOUR_APP_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{ ... }'

См. Обзор OTLP.

Приём RUM

Real User Monitoring из браузерного SDK. Отправляйте на rum.statusradar.dev с ключом приложения в качестве параметра запроса api_key.

POST /v1/ingest?api_key=YOUR_API_KEY   # Browser RUM events

Типы событий включают vital, pageload, error, console, click, network и replay_chunk. См. Обзор RUM.

Ограничение частоты запросов

Запросы к API ограничены по частоте на каждый токен/IP. При превышении лимита API возвращает HTTP 429 со значением retry_after. Кэшируйте ответы и используйте экспоненциальную задержку при повторных попытках.

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