Перейти к содержимому
Skip to content

API Enterno.io

Программный доступ ко всем инструментам enterno.io: HTTP-заголовки, DNS, SSL, пинг, IP-геолокация, оценка здоровья, мониторы и страницы статуса. REST API с ответами в формате JSON.

Интерактивная документация (Swagger) →

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

Все запросы API v3 требуют ключ. Передайте его через заголовок X-API-Key (рекомендуется) или параметр api_key. Поддерживается также JSON body.

Сохраняется в браузере. Используется всеми формами ниже.

Получите API-ключ, зарегистрировав аккаунт или в личном кабинете.

curl -H "X-API-Key: YOUR_KEY" \
  "https://enterno.io/api/v3/check.php?url=example.com"

Каждый ответ содержит заголовок X-Request-Id для отслеживания.

Формат ответа

API v3 использует JSON:API-стиль с метаданными:

{
  "data": { ... },
  "meta": {
    "request_id": "a1b2c3d4e5f6a7b8c9d0e1f2",
    "duration_ms": 142,
    "cached": false,
    "api_version": "3.0"
  }
}

При ошибке:

{
  "error": {
    "code": "invalid_url",
    "message": "URL обязателен"
  },
  "meta": {
    "request_id": "a1b2c3d4e5f6a7b8c9d0e1f2",
    "duration_ms": 2
  }
}

Для пагинированных эндпоинтов meta включает объект pagination:

"pagination": {
  "total": 15,
  "page": 1,
  "per_page": 25,
  "pages": 1
}

Лимиты запросов

Информация о лимитах включена в заголовки ответа:

ЗаголовокОписание
X-RateLimit-LimitМаксимум запросов в минуту
X-RateLimit-RemainingОставшиеся запросы в текущем окне
X-RateLimit-ResetUnix timestamp сброса лимита
Retry-AfterСекунды до повтора (только при 429)
Тариф Запросов/мин Дневной лимит Области
Free10100check, dns
Pro605 000check, dns, ssl, ip, ping, monitors
Business12050 000check, dns, ssl, ip, ping, monitors

Области

Каждый API-ключ имеет набор разрешённых областей. Запрос к недоступному эндпоинту вернёт ошибку 403.

Область Эндпоинт Описание
check/api/v3/check.phpПроверка HTTP-заголовков + оценка здоровья
dns/api/v3/dns.phpDNS-запрос + DNSSEC
ssl/api/v3/ssl.phpПроверка SSL/TLS + детали цепочки
ip/api/v3/ip.phpГеолокация IP
ping/api/v3/ping.phpПинг, проверка портов, трассировка
monitors/api/v3/monitors.phpCRUD мониторов + страницы статуса

Check — Проверка HTTP-заголовков

Получение HTTP-заголовков ответа с детальной разбивкой времени (DNS, подключение, TLS, TTFB).

GET POST /api/v3/check.php

Параметры

ИмяТипОбязательныйОписание
urlstringДаURL для проверки
methodstringНетGET, HEAD, POST (default: GET)
followstringНет0/1 (default: 1)
timeoutintegerНет1-30 (default: 15)
uastringНетПользовательский User-Agent

Пример

curl -H "X-API-Key: YOUR_KEY" \
  "https://enterno.io/api/v3/check.php?url=https://example.com"

Ответ

{
  "data": {
    "url": "https://example.com",
    "final_url": "https://example.com/",
    "method": "GET",
    "code": 200,
    "http_version": "HTTP/2",
    "ip": "93.184.216.34",
    "headers": [...],
    "timing": {
      "dns_ms": 12,
      "connect_ms": 45,
      "tls_ms": 78,
      "ttfb_ms": 120,
      "transfer_ms": 142,
      "redirect_ms": 0,
      "redirect_count": 0
    },
    "elapsed_ms": 142
  },
  "meta": {"request_id": "...", "duration_ms": 150, "cached": false, "api_version": "3.0"}
}

DNS — DNS-запрос

Получение DNS-записей с опциональной проверкой DNSSEC.

GET POST /api/v3/dns.php

Параметры

ИмяТипОбязательныйОписание
domainstringДаДоменное имя
typesstringНетЧерез запятую: A,AAAA,MX,NS,TXT,CNAME,SOA
dnssecstringНет1 для проверки DNSSEC

Пример

curl -H "X-API-Key: YOUR_KEY" \
  "https://enterno.io/api/v3/dns.php?domain=example.com&dnssec=1"

SSL — Проверка SSL/TLS

Проверка SSL-сертификата с детальной информацией о цепочке.

GET POST /api/v3/ssl.php

Параметры

ИмяТипОбязательныйОписание
hoststringДаИмя хоста
portintegerНетПорт (по умолчанию 443)

Пример

curl -H "X-API-Key: YOUR_KEY" \
  "https://enterno.io/api/v3/ssl.php?host=example.com"

IP — Геолокация

Определение местоположения, провайдера и организации по IP-адресу или домену.

GET POST /api/v3/ip.php

Параметры

ИмяТипОбязательныйОписание
hoststringДаIP-адрес или домен

Пример

curl -H "X-API-Key: YOUR_KEY" \
  "https://enterno.io/api/v3/ip.php?host=8.8.8.8"

Ping — Пинг, порты и трассировка

Пинг хоста, проверка портов или трассировка маршрута.

GET POST /api/v3/ping.php

Параметры

ИмяТипОбязательныйОписание
hoststringДаХост или IP
actionstringНетping, ports, traceroute (default: ping)
countintegerНетКоличество пингов 1-10 (по умолчанию 4)
portsstringНетПорты через запятую (для action=ports)
max_hopsintegerНетМакс. хопов 1-30 (для action=traceroute)

Пример

curl -H "X-API-Key: YOUR_KEY" \
  "https://enterno.io/api/v3/ping.php?host=example.com&action=traceroute"

Health — Оценка здоровья сайта

Комплексный анализ здоровья сайта: заголовки безопасности (30 баллов), SSL/TLS (25 баллов), производительность (25 баллов), лучшие практики (20 баллов). Возвращает оценку 0-100 с грейдом от A+ до F.

GET POST /api/v3/health.php область: check

Параметры

ИмяТипОбязательныйОписание
urlstringДаURL для анализа

Пример

curl -H "X-API-Key: YOUR_KEY" \
  "https://enterno.io/api/v3/health.php?url=example.com"

Ответ

{
  "data": {
    "url": "https://example.com",
    "score": 82,
    "grade": "A",
    "categories": [
      {"name": "Security Headers", "score": 22, "max": 30, "checks": [...]},
      {"name": "SSL/TLS", "score": 25, "max": 25, "checks": [...]},
      {"name": "Performance", "score": 20, "max": 25, "checks": [...]},
      {"name": "Best Practices", "score": 15, "max": 20, "checks": [...]}
    ],
    "recommendations": [
      {"type": "critical", "check": "Permissions-Policy"},
      {"type": "warning", "check": "Server info hidden"}
    ]
  },
  "meta": {"request_id": "...", "duration_ms": 2400, "cached": false, "api_version": "3.0"}
}

Monitors — CRUD

Создание, чтение, обновление и удаление мониторов аптайма через API.

Список мониторов

GET /api/v3/monitors.php область: monitors
ИмяТипОписание
pageintegerНомер страницы (по умолчанию 1)
per_pageintegerЭлементов на странице, макс. 100 (по умолчанию 25)
statusstringФильтр: up, down, unknown

Получить монитор

GET /api/v3/monitors.php?id=N

Возвращает детали монитора с 20 последними проверками.

Создать монитор

POST /api/v3/monitors.php
curl -X POST "https://enterno.io/api/v3/monitors.php" \
  -H "X-API-Key: YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "url": "https://example.com",
    "check_type": "http",
    "interval_minutes": 5,
    "expected_code": 200,
    "notify_email": true
  }'

Обновить монитор

PUT /api/v3/monitors.php?id=N
curl -X PUT "https://enterno.io/api/v3/monitors.php?id=5" \
  -H "X-API-Key: YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"interval_minutes": 10, "is_active": false}'

Удалить монитор

DELETE /api/v3/monitors.php?id=N
curl -X DELETE "https://enterno.io/api/v3/monitors.php?id=5" \
  -H "X-API-Key: YOUR_KEY"

Status — Публичная страница статуса

Получение данных страницы статуса в JSON. Аутентификация не требуется при указании slug.

GET /api/v3/status.php?slug=SLUG публичный

Пример

curl "https://enterno.io/api/v3/status.php?slug=my-company"

Ответ

{
  "data": {
    "title": "My Company Status",
    "slug": "my-company",
    "overall_status": "operational",
    "monitors_total": 5,
    "monitors_down": 0,
    "monitors": [
      {"id": 1, "name": "example.com", "status": "up", "response_time_ms": 120}
    ],
    "recent_incidents": []
  },
  "meta": {"request_id": "...", "duration_ms": 15, "cached": false, "api_version": "3.0"}
}

Коды ошибок

HTTP код Код ошибки Описание
400missing_parameterОтсутствуют или некорректны параметры
401auth_requiredОтсутствует API-ключ
401invalid_api_keyНеверный или неактивный API-ключ
403insufficient_scopeКлюч не имеет нужной области доступа
404not_foundРесурс не найден
405method_not_allowedHTTP-метод не разрешён
429rate_limit_exceededПревышен лимит
429daily_limit_exceededПревышен дневной лимит запросов
502request_failedОшибка целевого сервера