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

Модерация URL API: классификация содержимого страницы

POST /v1/seo/moderation проверяет, что находится по ссылке: сервис загружает страницу (с переходом по редиректам), берёт заголовок, meta description, заголовки h1–h3 и начало видимого текста и передаёт их ИИ-модели. Модель относит страницу к одной категории и оценивает уверенность. Подходит для проверки ссылок, которые пользователи оставляют в вашем сервисе.

Поле тела Тип Обязательное Описание
url string да адрес страницы со схемой http:// или https://, до 2048 символов
Окно терминала
curl https://proxy.seyka.ru/v1/seo/moderation \
-H "Authorization: Bearer $SEYKA_API_KEY" \
-H "Content-Type: application/json" \
-d '{"url": "https://example.com"}'
{
"verdict": {
"category": "benign",
"confidence": 0.95,
"reasoning": "Placeholder page reserved for documentation examples; no abuse signals."
},
"finalUrl": "https://example.com/",
"fetchedAt": "2026-10-02T09:15:27.481Z"
}
Поле Описание
verdict.category категория страницы (см. ниже)
verdict.confidence уверенность модели, от 0 до 1
verdict.reasoning короткое обоснование от модели, до 500 символов, обычно на английском
finalUrl адрес после всех редиректов — классифицируется именно он
fetchedAt время начала проверки, ISO 8601 (UTC)
fetchError есть, только если страницу не удалось загрузить

Если страницу загрузить не удалось, ответ всё равно 200: category — unknown, confidence — 0, finalUrl равен запрошенному адресу, а причина — в fetchError. Такой результат значит «не проверено», а не «безопасно».

Модель выбирает одну, самую конкретную категорию. Если подходят несколько, приоритет у ограничений РФ, затем у опасных категорий, затем у чувствительных.

Категория Что означает
benign обычная страница без признаков нарушений
unknown данных не хватает для вывода: страница пустая, требует JavaScript или не загрузилась

Опасные — незаконны почти везде:

Категория Что означает
phishing выдаёт себя за бренд или сервис, чтобы получить пароли или платёжные данные
malware распространяет вредоносное ПО
illegal торговля запрещённым, краденые данные, доксинг, услуги насилия
csam сексуальный контент с участием несовершеннолетних
fraud мошенничество: фейковые магазины, «инвестиции», лотереи, крипто-схемы

Чувствительные — законны в одних странах, ограничены в других:

Категория Что означает
adult контент для взрослых
gambling азартные игры на деньги, онлайн-казино, ставки
weapons продажа оружия
hate язык вражды, призывы к насилию против групп людей
violence натуралистичное насилие, не подпадающее под другие категории

Ограничения РФ — содержимое, запрещённое или ограниченное по российскому законодательству:

Категория Что означает
lgbt_propaganda материалы, которые закон РФ относит к «пропаганде ЛГБТ»
religious_offense оскорбление чувств верующих, глумление над религиозными символами
war_sensitive материалы о военных операциях РФ, которые могут подпадать под статьи о «дискредитации» армии
political_dissent_ru оппозиционная политическая агитация против власти РФ
extremist_org_ru вербовка и пропаганда экстремистских и террористических движений
separatism_ru призывы к нарушению территориальной целостности РФ
drug_propaganda пропаганда наркотиков, инструкции, площадки продажи
suicide_promotion пропаганда суицида или инструкции к нему
nazism_rehabilitation реабилитация нацизма, одобрительное использование нацистской символики, отрицание Холокоста

Значение prompt_injection есть в схеме ответа, но относится к модерации текстов, а не ссылок: для URL оно не выставляется.

Модель настроена так: 0.85 и выше — нарушение явное и видно прямо в тексте страницы; от 0.55 до 0.85 — сильные признаки без полной уверенности; ниже 0.55 — признаки слабые или противоречивые. При сомнении модель выбирает unknown с низкой уверенностью, а не конкретную категорию. Порог блокировки выбирайте под свою задачу — например, отклонять опасные категории от 0.55, а остальные отправлять на ручную проверку.

  • На загрузку страницы отводится около 10 секунд. Страница читается как HTML, без выполнения JavaScript: у одностраничных приложений текста может не оказаться, и вердикт будет unknown.
  • Модель видит запрошенный и конечный URL, <title>, meta description, до 10 заголовков и первые 4000 символов видимого текста.
  • url длиннее 2048 символов или без поля url — 422. Адрес, который не является URL или использует схему кроме http/https, — 502; так же 502 приходит, если загрузка страницы оборвалась по таймауту или модель не дала ответа. Коды — на странице Ошибки.
  • Вердикт не кэшируется: каждый вызов заново спрашивает модель. Загруженная страница может переиспользоваться до 12 часов.

Схема запроса и ответа — в интерактивном справочнике proxy.seyka.ru/api-docs.

Каждая проверка — один вызов. Цена — в таблице цен.