STEADRUN

API

Обновлено 02.10.2026

API доступен на тарифе «Команда». Через него можно создавать проверки, ставить их на паузу и менять статус компонентов статус-страницы, например из CI или скрипта деплоя.

Адрес API — https://steadrun.ru/api/v1. Ответы приходят в JSON, время в них указано в UTC в формате ISO 8601.

Ключ доступа

Ключ создаётся в профиле, в блоке «API-ключи». Полностью он показывается один раз, при создании, у нас хранится только его хэш. Ключей может быть несколько, например отдельный для каждой CI-системы. Любой ключ можно отозвать.

Ключ передаётся в заголовке Authorization:

curl https://steadrun.ru/api/v1/status-pages \
  -H "Authorization: Bearer ВАШ_КЛЮЧ" \
  -H "Accept: application/json"

Лимит — 60 запросов в минуту на аккаунт.

Ошибки

Код Когда
401 Ключ не передан, неверен или отозван
403 Тариф без API, чужой объект или достигнут лимит проверок тарифа
404 Объект не найден
422 Ошибка в данных запроса, подробности в поле errors
429 Превышен лимит запросов. Повторите через время из заголовка Retry-After

Проверки

GET /checks возвращает все проверки, GET /checks/{id} — одну:

{
  "data": {
    "id": 5, "name": "Бэкап БД", "type": "cron", "status": "up",
    "cron_expression": "0 3 * * *", "interval_seconds": null,
    "timezone": "Europe/Moscow", "grace_period_seconds": 600,
    "ping_url": "https://steadrun.ru/ping/…",
    "http": null, "ssl": null,
    "last_ping_at": "2026-09-29T00:00:12+00:00",
    "next_expected_at": "2026-09-30T00:10:00+00:00",
    "created_at": "2026-09-20T10:00:00+00:00"
  }
}

Поле status принимает значения new (сигнала ещё не было), up, down и paused. Поля ping_url и grace_period_seconds есть только у типов cron и queue.

Создать проверку

POST /checks создаёт проверку и возвращает её с кодом 201. Какие поля нужны:

  • для всех типов: name, type (cron, queue, http, ssl), timezone (например, Europe/Moscow);
  • cron: cron_expression, grace_period_seconds;
  • queue: interval_value, interval_unit (seconds, minutes, hours, days), grace_period_seconds;
  • http: url, expected_status_code, keyword (необязательно), failure_threshold (1–10), interval_value и interval_unit (не чаще раза в минуту);
  • ssl: domain, alert_days_before_expiry (1–90), failure_threshold, interval_value и interval_unit (не чаще раза в час).

Что значат эти поля, подробно описано на странице о типах проверок.

curl -X POST https://steadrun.ru/api/v1/checks \
  -H "Authorization: Bearer ВАШ_КЛЮЧ" \
  -H "Accept: application/json" \
  -H "Content-Type: application/json" \
  -d '{"name":"Бэкап БД","type":"cron","cron_expression":"0 3 * * *","timezone":"Europe/Moscow","grace_period_seconds":600}'

Пауза

POST /checks/{id}/pause ставит проверку на паузу, POST /checks/{id}/resume возобновляет. В ответе проверка с новым статусом.

На паузе алертов и напоминаний нет. Если пришёл пинг, пауза снимается сама. Возобновить проверку можно, только если в лимите тарифа есть место, иначе ответ будет 403. После возобновления статус становится new, и Steadrun ждёт сигнал заново с этого момента. Подробнее о паузе написано на странице «Как это работает».

Паузу удобно ставить из скрипта деплоя перед php artisan down и снимать после up:

curl -X POST https://steadrun.ru/api/v1/checks/5/pause \
  -H "Authorization: Bearer ВАШ_КЛЮЧ" \
  -H "Accept: application/json"

Статус-страницы и компоненты

GET /status-pages возвращает Ваши статус-страницы вместе с компонентами. Отсюда берутся id компонентов:

{
  "data": [{
    "id": 1, "title": "Мой сервис", "slug": "my-service", "is_public": true,
    "url": "https://steadrun.ru/status/my-service",
    "components": [{ "id": 3, "name": "API", "status": "operational", "check_id": 5 }]
  }]
}

PATCH /components/{id} меняет статус компонента. Допустимые значения: operational, degraded, partial_outage, major_outage, maintenance.

curl -X PATCH https://steadrun.ru/api/v1/components/3 \
  -H "Authorization: Bearer ВАШ_КЛЮЧ" \
  -H "Accept: application/json" \
  -d status=major_outage

Меняется только статус компонента на публичной странице. Инцидент при этом не создаётся, и подписчики уведомлений не получают. Инцидент с описанием публикуется в кабинете. Если компонент привязан к проверке, его статус по-прежнему меняет и мониторинг. При падении проверки будет major_outage, при восстановлении operational.

Что дальше