Документация
REST API
HTTP API для чтения статуса и управления проектами. Для Cursor и AI-редакторов есть отдельный MCP.
См. также: Подключение MCP
Публичный API
Чтение статуса открытой страницы — без авторизации. Приватные страницы возвращают 404.
/v1/public/status/{slug}без ключаПубличный JSON статуса
Текущий статус открытой status page без API-ключа. В path подойдёт slug страницы или id проекта из кабинета.
Параметры
slug(path) · обяз.Slug status page или id проекта (cuid).
Ответы
- 200 — Общий статус, компоненты, uptime за 7 дней, активный инцидент (если есть).
- 404 — Страница не найдена или visibility = private.
- 429 — Лимит: 60 запросов в минуту с IP (заголовок Retry-After).
{
"slug": "demo",
"status": "operational",
"updated_at": "2026-05-27T12:00:00.000Z",
"components": [
{
"name": "Website",
"url": "https://example.com",
"status": "operational",
"uptime_7d": 99.9
}
],
"active_incident": null
}status / статус компонента: "operational" | "degraded" | "down" | "unknown". Ответ кэшируется ~60 с (Cache-Control).
GET https://api.stillonline.tech/v1/public/status/{slug}Приватный REST API
Тариф Pro или Ultimate. Создайте API-ключ в кабинете.
Authorization: Bearer sk_live_…
Base: https://api.stillonline.tech/v1Ошибки: 401 — неверный или отозванный ключ, Free без API; 403 — лимит плана (код в теле: PLAN_LIMIT_*); 429 — rate limit на публичном endpoint.
/v1/healthбез ключаПроверка API
Простая проверка доступности API для мониторинга и smoke-тестов.
Ответы
- 200 — Сервис отвечает.
{
"status": "ok",
"service": "stillonline-api",
"version": "v1"
}GET https://api.stillonline.tech/v1/health/v1/projectsBearer sk_live_…Список проектов
Все неудалённые проекты владельца ключа, сначала новые.
Ответы
- 200 — Массив projects со status_page_id.
- 401 — Нет или неверный Bearer-ключ.
{
"projects": [
{
"id": "clx…",
"name": "Acme",
"description": null,
"slug": "acme",
"timezone": "UTC",
"status_page_id": "clx…",
"created_at": "2026-05-27T10:00:00.000Z"
}
]
}GET https://api.stillonline.tech/v1/projects/v1/projectsBearer sk_live_…Создать проект
Создаёт проект, status page и первую HTTP-проверку одним запросом.
Тело запроса
JSON. Обязательны name и url.
{
"name": "Acme API",
"url": "https://api.example.com/health",
"description": "Optional note"
}Ответы
- 201 — Объект project.
- 400 — Невалидный JSON или нет name/url.
- 403 — Лимит плана (код PLAN_LIMIT_PROJECTS) или Free без API.
- 401 — Не авторизован.
POST https://api.stillonline.tech/v1/projects/v1/projects/{id}/checksBearer sk_live_…Список проверок
Все uptime-проверки проекта, принадлежащего вам.
Параметры
id(path) · обяз.Id проекта.
Ответы
- 200 — Массив checks.
- 404 — Проект не найден.
- 401 — Не авторизован.
{
"checks": [
{
"id": "clx…",
"project_id": "clx…",
"name": "API",
"url": "https://api.example.com/health",
"method": "GET",
"interval_seconds": 300,
"enabled": true,
"last_status": "OPERATIONAL",
"last_probed_at": "2026-05-27T12:00:00.000Z"
}
]
}GET https://api.stillonline.tech/v1/projects/{id}/checks/v1/projects/{id}/checksBearer sk_live_…Создать проверку
Добавляет HTTP-проверку. interval_seconds должен соответствовать тарифу (Pro/Ultimate).
Параметры
id(path) · обяз.Id проекта.
Тело запроса
url обязателен; name по умолчанию = url; interval_seconds опционален.
{
"name": "API",
"url": "https://api.example.com/health",
"interval_seconds": 300
}Ответы
- 201 — Созданная check.
- 403 — PLAN_LIMIT_CHECKS или PLAN_LIMIT_INTERVAL.
- 404 — Проект не найден.
- 401 — Не авторизован.
POST https://api.stillonline.tech/v1/projects/{id}/checks/v1/checks/{id}Bearer sk_live_…Обновить проверку
Частичное обновление: name, enabled или interval_seconds.
Параметры
id(path) · обяз.Id проверки.
Тело запроса
Передавайте только изменяемые поля.
{
"enabled": false,
"interval_seconds": 300
}Ответы
- 200 — Обновлённая check.
- 403 — PLAN_LIMIT_INTERVAL.
- 404 — Проверка не найдена.
- 401 — Не авторизован.
PATCH https://api.stillonline.tech/v1/checks/{id}/v1/checks/{id}Bearer sk_live_…Удалить проверку
Безвозвратно удаляет вашу проверку.
Параметры
id(path) · обяз.Id проверки.
Ответы
- 200 — Удалено.
- 404 — Проверка не найдена.
- 401 — Не авторизован.
{ "deleted": true }DELETE https://api.stillonline.tech/v1/checks/{id}/v1/status-pages/{id}Bearer sk_live_…Получить status page
Метаданные status page: slug, visibility (public/private), связанный проект.
Параметры
id(path) · обяз.Id status page.
Ответы
- 200 — Объект status_page.
- 404 — Не найдено.
- 401 — Не авторизован.
{
"status_page": {
"id": "clx…",
"project_id": "clx…",
"slug": "acme",
"visibility": "public",
"project_name": "Acme"
}
}GET https://api.stillonline.tech/v1/status-pages/{id}/v1/status-pages/{id}/incidentsBearer sk_live_…Создать инцидент
Открывает ручной инцидент на status page (виден на публичной странице, пока open).
Параметры
id(path) · обяз.Id status page.
Тело запроса
Обязателен title.
{ "title": "Investigating API errors" }Ответы
- 201 — Созданный incident.
- 404 — Status page не найдена.
- 401 — Не авторизован.
POST https://api.stillonline.tech/v1/status-pages/{id}/incidents/v1/incidents/{id}Bearer sk_live_…Получить инцидент
Один инцидент по id (open или resolved).
Параметры
id(path) · обяз.Id инцидента.
Ответы
- 200 — Объект incident.
- 404 — Не найдено.
- 401 — Не авторизован.
{
"incident": {
"id": "clx…",
"status_page_id": "clx…",
"title": "Investigating API errors",
"status": "open",
"started_at": "2026-05-27T12:00:00.000Z",
"resolved_at": null
}
}GET https://api.stillonline.tech/v1/incidents/{id}Машиночитаемая спецификация: openapi.json (те же пути и краткие описания на английском).