Перейти к содержанию

API

Подтягивайте результаты проверок в свою CRM или панель и запускайте проверки из своих систем. API доступен на тарифе Pro.

Авторизация

  1. Создайте токен в кабинете: Настройки, блок API.
  2. Сохраните его в переменную окружения PDCHECK_TOKEN.
  3. Передавайте его в заголовке Authorization: Bearer …. Лимит — 120 запросов в минуту на токен.

Список сайтов

GET/api/v1/sites

Сайты аккаунта с итогами последней проверки.

curl "https://pdguard.ru/api/v1/sites" \
  -H "Authorization: Bearer $PDCHECK_TOKEN"

Ответ

{
  "sites": [
    {
      "id": 12,
      "url": "https://example.ru",
      "domain": "example.ru",
      "monitoring": "daily",
      "lastScan": {
        "status": "done",
        "crit": 2,
        "warn": 3,
        "ok": 9,
        "finishedAt": "2026-09-28T09:12:00.000Z"
      }
    }
  ]
}

Проверки сайта

GET/api/v1/sites/12/scans?issues=1

Последние 20 проверок сайта. С параметром issues=1 в ответ попадёт список нарушений с инструкциями по исправлению.

curl "https://pdguard.ru/api/v1/sites/12/scans?issues=1" \
  -H "Authorization: Bearer $PDCHECK_TOKEN"

Ответ

{
  "scans": [
    {
      "id": 481,
      "status": "done",
      "trigger": "schedule",
      "summary": { "crit": 2, "warn": 3, "ok": 9 },
      "error": null,
      "createdAt": "2026-09-28T09:10:41.000Z",
      "finishedAt": "2026-09-28T09:12:00.000Z",
      "issues": [
        {
          "id": "form_prechecked",
          "level": "crit",
          "title": "Галочка согласия отмечена заранее",
          "text": "В форме «Обратный звонок» галочка согласия уже отмечена…",
          "fix": { "text": "Снимите отметку по умолчанию…", "steps": ["…"] }
        }
      ]
    }
  ]
}

Запустить проверку

POST/api/v1/sites/12/scans

Ставит проверку в очередь и отвечает 202. Если проверка уже идёт, вернётся её id. Запуск расходует суточный лимит ручных проверок тарифа.

curl -X POST "https://pdguard.ru/api/v1/sites/12/scans" \
  -H "Authorization: Bearer $PDCHECK_TOKEN"

Ответ

{ "id": 482, "queued": true }

Ошибки

В теле ответа приходит statusMessage с описанием на русском.

401
Нет токена или он неверный
402
Тариф аккаунта не Pro
404
Сайт не найден в аккаунте
429
Превышен лимит запросов или проверок за сутки