02 / Документация API
Сначала очистить.
Потом передать.
Два защищённых метода. Ключ processor создаётся владельцем в консоли и передаётся в Authorization: Bearer. Примеры содержат только заглушку PLACEHOLDER_API_KEY.
POST /api/v1/process
text — строка до 30 000 символов. reversible — строго boolean, по умолчанию false. Иные поля запрещены: политики, словарь, scope и модель задаёт сервер.
curl https://sx-i.ru/api/v1/process \
-H 'Authorization: Bearer PLACEHOLDER_API_KEY' \
-H 'Content-Type: application/json' \
-d '{"text":"Почта: ivan@example.invalid", "reversible":true}'Упрощённая схема ответа (не буквальный JSON):
request_id: string
action: allow | redact | deny
text: string | null
entities: [{type, start, end, action}]
counts: {TYPE: number}
restore_id: string | null
expires_in: number | null
elapsed_ms: numberentities содержит типы и символьные позиции, но не исходные значения. При deny текст и restore_id равны null. Даже при reversible=true карта появляется только при наличии замен.
POST /api/v1/restore
curl https://sx-i.ru/api/v1/restore \
-H 'Authorization: Bearer PLACEHOLDER_API_KEY' \
-H 'Content-Type: application/json' \
-d '{"restore_id":"ID_FROM_PROCESS", "text":"TEXT_FROM_PROCESS"}'Подставьте restore_id и text из ответа process. Ответ: {"text": "…"}. Восстанавливаются только точные токены; карта привязана к тому же ключу или сессии владельца. Чужой или истёкший идентификатор возвращает 404.
Ошибки и лимиты
| HTTP | Ситуация |
|---|---|
| 400 | invalid_host — недопустимый Host |
| 401 | authentication_required / invalid_key — нет доступа |
| 403 | owner_required / invalid_origin / invalid_csrf / ambiguous_authentication |
| 404 | restore_not_found |
| 408 | request_timeout — превышено время чтения тела |
| 413 | body_too_large — тело больше 128 КиБ |
| 422 | invalid_request — неверные поля, длина или формат |
| 429 | busy / rate_limited / capacity_exceeded — занято или исчерпан бюджет |
| 503 | model_unavailable — модель недоступна; текст не выдаётся |
| 500 | internal_error — без исходного текста и traceback |
Обработка и восстановление: 30 запросов на IP и 120 суммарно в минуту. Общий вход: 180 на IP и 1200 суммарно в минуту. Одна обработка текста (process, restore, демо) и отдельно одна проверка пароля одновременно, обе без очереди. За прокси учитывается реальный сетевой сосед, не произвольный X-Forwarded-For. Лимиты — ограничения реализации, не обещание SLA.
Готовность и доступ
GET /healthz — {"status":"ok"}; GET /readyz — {"ready":boolean}, 503 при недоступности модели. Вход владельца использует защищённую cookie и CSRF; ключ processor не даёт доступа к админке. Не смешивайте cookie и Bearer.
API не перехватывает сетевой трафик и не отправляет результат в ИИ самостоятельно. OCR и вложения не входят в эту версию.
Прочитать о границах безопасности ↗