Osminog

API документация

Информация о сервере
Базовый URL
https://www.osminog.app/api/v1
Аутентификация
API-ключ через заголовок X-Api-Key
Аутентификация

Все API-запросы должны содержать ваш API-ключ в заголовке X-Api-Key:

curl -H "X-Api-Key: <your-api-key>" https://www.osminog.app/api/v1/{endpoint}?{params}

Для получения API-ключа:

  1. Перейдите в Настройки аккаунта и нажмите «Запросить API-ключ».
  2. Администратор рассмотрит и одобрит ваш запрос.
  3. После одобрения ключ появится в Настройках аккаунта.

Возвращает текущий статус и сводку производительности задачи мониторинга.

Запрос

Заголовки

Заголовок Тип Обязательно Описание
X-Api-Key string Да Ваш персональный API-ключ

Параметры запроса

Параметр Тип Обязательно Описание
task_id string (UUID) Да UUID задачи мониторинга

Пример запроса

GET /api/v1/task/status?task_id=019cdeae-d393-7d65-8044-c07dd0fe2a17 HTTP/1.1
Host: www.osminog.app
X-Api-Key: your-api-key-here

Ответ
200 OK
Поле Тип Описание
task_id string UUID задачи
website string Доменное имя мониторируемого сайта
uri string Мониторируемый путь URI
http_code integer|null Последний HTTP-статус (null, если результатов ещё нет)
last_check string|null Время последней проверки (ISO 8601, UTC)
response_time_ms float|null Последнее время отклика в миллисекундах
min_ms float|null Минимальное время отклика по всем проверкам (мс)
max_ms float|null Максимальное время отклика по всем проверкам (мс)
avg_ms float|null Среднее время отклика по всем проверкам (мс)
last_spike object|null Последнее событие превышения порога (null, если нет)
last_spike.datetime string Время превышения (ISO 8601, UTC)
last_spike.response_time_ms float Время отклика при превышении (мс)
last_spike.baseline_avg_ms float Базовое среднее значение на момент превышения (мс)
last_spike.diff_percent float|null Процент превышения базовой линии (null, если базовая линия = 0)

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

{
    "task_id": "019cdeae-d393-7d65-8044-c07dd0fe2a17",
    "website": "example.com",
    "uri": "/api/health",
    "http_code": 200,
    "last_check": "2026-03-12T18:45:30Z",
    "response_time_ms": 142.35,
    "min_ms": 98.12,
    "max_ms": 1523.67,
    "avg_ms": 187.44,
    "last_spike": {
        "datetime": "2026-03-12T18:30:10Z",
        "response_time_ms": 482.15,
        "baseline_avg_ms": 187.44,
        "diff_percent": 157.2
    }
}

Ответы об ошибках
400 Bad Request Отсутствует или недействительный параметр task_id
{ "error": "task_id is required." }
401 Unauthorized Отсутствует или недействительный API-ключ
{ "error": "Invalid API key." }
404 Not Found Задача не существует или не принадлежит вам
{ "error": "Task not found." }

Возвращает все задачи и их статус/производительность для сайта.

Запрос

Заголовки

Заголовок Тип Обязательно Описание
X-Api-Key string Да Ваш персональный API-ключ

Параметры запроса

Параметр Тип Обязательно Описание
website_id string (UUID) Да UUID сайта

Пример запроса

GET /api/v1/website/tasks?website_id=019cdeae-a1b2-7c3d-9044-abcdef123456 HTTP/1.1
Host: www.osminog.app
X-Api-Key: your-api-key-here

Ответ
200 OK
Поле Тип Описание
website_id string UUID сайта
domain string Доменное имя мониторируемого сайта
is_verified boolean Подтверждено ли владение сайтом
tasks array Массив задач с данными о статусе
tasks[].task_id string UUID задачи
tasks[].uri string Мониторируемый путь URI
tasks[].http_method string HTTP-метод (GET, POST и т.д.)
tasks[].frequency_seconds integer Интервал проверки в секундах
tasks[].concurrency integer Количество параллельных запросов за тик
tasks[].execution_mode string "background" или "on_demand"
tasks[].is_active boolean Активна ли задача в данный момент
tasks[].http_code integer|null Последний HTTP-статус (null, если результатов ещё нет)
tasks[].last_check string|null Время последней проверки (ISO 8601, UTC)
tasks[].response_time_ms float|null Последнее время отклика в миллисекундах
tasks[].min_ms float|null Минимальное время отклика по всем проверкам (мс)
tasks[].max_ms float|null Максимальное время отклика по всем проверкам (мс)
tasks[].avg_ms float|null Среднее время отклика по всем проверкам (мс)
tasks[].last_spike object|null Последнее событие превышения порога (null, если нет)

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

{
    "website_id": "019cdeae-a1b2-7c3d-9044-abcdef123456",
    "domain": "example.com",
    "is_verified": true,
    "tasks": [
        {
            "task_id": "019cdeae-d393-7d65-8044-c07dd0fe2a17",
            "uri": "/api/health",
            "http_method": "GET",
            "frequency_seconds": 60,
            "concurrency": 1,
            "execution_mode": "background",
            "is_active": true,
            "http_code": 200,
            "last_check": "2026-03-12T18:45:30Z",
            "response_time_ms": 142.35,
            "min_ms": 98.12,
            "max_ms": 1523.67,
            "avg_ms": 187.44,
            "last_spike": null
        },
        {
            "task_id": "019cdeae-e4f5-7a2b-8055-fedcba987654",
            "uri": "/",
            "http_method": "GET",
            "frequency_seconds": 300,
            "concurrency": 2,
            "execution_mode": "background",
            "is_active": true,
            "http_code": 200,
            "last_check": "2026-03-12T18:40:00Z",
            "response_time_ms": 85.20,
            "min_ms": 45.00,
            "max_ms": 920.10,
            "avg_ms": 112.33,
            "last_spike": {
                "datetime": "2026-03-12T17:15:00Z",
                "response_time_ms": 482.15,
                "baseline_avg_ms": 112.33,
                "diff_percent": 329.2
            }
        }
    ]
}

Ответы об ошибках
400 Bad Request Отсутствует или недействительный параметр website_id
{ "error": "website_id is required." }
401 Unauthorized Отсутствует или недействительный API-ключ
{ "error": "Invalid API key." }
404 Not Found Сайт не существует или не принадлежит вам
{ "error": "Website not found." }