МедиаСканер

Для разработчиков

Проверка текста — это в первую очередь REST API: /v1/check возвращает тот же отчёт, что и веб-форма, — находки со спанами, ссылками на нормы и рекомендациями. Веб-витрина лишь обёртка над ним.

Quickstart

curl
curl -X POST https://<host>/v1/check \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"text": "Дедлайн по проекту — завтра."}'
Python (httpx)
import httpx

r = httpx.post(
    "https://<host>/v1/check",
    headers={"Authorization": f"Bearer {API_KEY}"},
    json={"text": "Дедлайн по проекту — завтра."},
)
findings = r.json()["findings"]
JavaScript (fetch)
const r = await fetch("https://<host>/v1/check", {
  method: "POST",
  headers: { Authorization: `Bearer ${API_KEY}`, "Content-Type": "application/json" },
  body: JSON.stringify({ text: "Дедлайн по проекту — завтра." }),
});
const { findings } = await r.json();

Интерактивная спецификация OpenAPI — Swagger UI.

Лимиты и заголовки

  • Без ключа: 20 проверок в час с одного IP, до 2 000 символов на запрос и 2 000 символов в сутки. С ключом или после регистрации лимиты выше (до 50 000 символов на запрос).
  • Каждый ответ /v1/check несёт заголовки X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset; при превышении — 429 с Retry-After.
  • Ошибки в едином формате: {"error": {"code", "message", "details"}}.

Пилотный доступ

Самостоятельный выпуск ключей появится вместе с личным кабинетом. До этого API-ключи выдаются вручную по запросу: ключ передаётся в заголовке Authorization: Bearer и снимает анонимный лимит. Напишите нам — подключим в течение рабочего дня.

Версионирование

Префикс /v1 стабилен: изменения схем — только аддитивные (новые поля и категории). Несовместимые изменения выйдут под /v2, /v1 продолжит работать параллельно.