MG

Mask Gate — щит данных

sale@maskgate.ru

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

Проверка файлов на персональные данные, маскирование и управление API-ключами.

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

СпособЗаголовокГде применяется
Access-токен (B2C)Authorization: Bearer <token>все методы ниже
B2B API-ключX-API-Key: <key>файловые эндпоинты /process-file*

Файловые эндпоинты дополнительно проверяют заголовок Origin (защита от кросс-доменных вызовов). Для server-to-server (CLI, бэкенд) заголовок Origin можно не отправлять — запрос разрешён.

Тест текста

Методы принимают application/json. Обработка текста доступна и анонимно (бесплатная квота 1 проверка в день), и по токену/API-ключу.

POST/analyze

Найти ПДн в тексте (без маскирования): список находок с категорией, позицией и уверенностью.

curl -X POST https://maskgate.ru/analyze \
  -H "Content-Type: application/json" \
  -d '{"text": "Карта 4111 1111 1111 1111"}'

Ответ: findings[], anon_quota (для анонима).

POST/process

Обработать текст по политике: замаскировать/удалить/пометить, вернуть обезличенный output_text.

curl -X POST https://maskgate.ru/process \
  -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
  -d '{"text": "Карта 4111 1111 1111 1111", "session_id": "chat1", "use_vault": true}'

Ответ: output_text, blocked, findings[], applied.

Тест файлов

Все методы принимают multipart/form-data: файлы передаются в поле files (можно несколько). Поддерживаются .docx, .xlsx, .pdf, изображения, .txt/.csv.

POST/process-file

Проверка файлов на ПДн: извлечение текста → находки → стратегия политики (блокировать / удалить / замаскировать / пометить). В том же ответе сразу два артефакта для скачивания: download_url — обратимый маскированный документ (токены [VAULT:…], расшифровывается через /process-file/restore), и redacted_download_url — PDF без данных (только для PDF, необратимо).

curl -X POST https://maskgate.ru/process-file \
  -H "Authorization: Bearer $TOKEN" \
  -F "files=@report.docx" -F "files=@scan.pdf"

Ответ: files[] (по файлу: segments, findings, blocked, error, download_url, redacted_download_url, elapsed_ms), batch_blocked, batch_has_errors, charged_units, supported_formats, analysis_ms.

POST/process-file/download

Проверка + скачивание файла в исходном формате (устаревший способ — новый поток идёт через /process-file с download_url). Для .docx/.xlsx документ пересобирается в исходном формате; для .pdf ПДн затёрто (растеризовано); для текстовых форматов отдаётся маскированный текст. Результат — по capability-URL (download_url).

curl -X POST https://maskgate.ru/process-file/download \
  -H "Authorization: Bearer $TOKEN" \
  -F "files=@report.docx"

Ответ: files[] (по файлу: download_url, error; masked_content — только для текстовых форматов), charged_units.

POST/process-file/restore

Обратная операция: загружается замаскированный файл, [VAULT:...]-токены восстанавливаются в исходные значения (требует включённого обратимого маскирования).

curl -X POST https://maskgate.ru/process-file/restore \
  -H "Authorization: Bearer $TOKEN" \
  -F "files=@masked.txt"

Ответ: files[] (по файлу: restored_text, error), charged_units.

GET/download/{filename}

Скачать ранее замаскированный файл. Авторизация не требуется — capability-URL со сроком жизни 5 минут. Параметр ?redact=1 отдаёт необратимый PDF-вариант без данных.

curl -OJ https://maskgate.ru/download/report.docx

Восстановление токенов (обратимое маскирование)

POST/vault/restore

Заменить [VAULT:…]-токены в тексте на исходные значения (по session_id).

curl -X POST https://maskgate.ru/vault/restore \
  -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
  -d '{"text": "карта [VAULT:…]", "session_id": "chat1"}'

Ответ: restored_text.

Шлюз к нейросети

POST/proxy/chat

Прокси-запрос к внешней языковой модели: маскирует ПДн на входе, восстанавливает на выходе.

curl -X POST https://maskgate.ru/proxy/chat \
  -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
  -d '{"message": "…", "session_id": "chat1"}'

API-ключи (self-service B2B)

Ключ хранится как хэш; открытый текст показывается ровно один раз при создании.

GET/auth/me/keys

Список ключей текущего пользователя (метаданные, хэш не возвращается).

curl -H "Authorization: Bearer $TOKEN" https://maskgate.ru/auth/me/keys
POST/auth/me/keys

Создать ключ. Тело — JSON {"name": "мой скрипт"} (необязательно, до 100 символов).

curl -X POST https://maskgate.ru/auth/me/keys \
  -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
  -d '{"name": "мой скрипт"}'

Ответ: {"key": "mg_...", "id": 12, "name": "мой скрипт", "created_at": "..."}.

DELETE/auth/me/keys/{key_id}

Отозвать один из своих ключей.

curl -X DELETE https://maskgate.ru/auth/me/keys/12 \
  -H "Authorization: Bearer $TOKEN"

Коды ошибок

КодЗначение
401нет или невалидная авторизация
403раздел отключён администратором или чужой Origin
404ключ/файл не найден или истёк
413превышено количество файлов в батче
422невалидный запрос
429исчерпана квота/лимит запросов
← Вернуться на главную