НОРМОСКАН Документация
API v1Загрузка комплекта и задание клиента

Загрузка комплекта и задание клиента

Обновлено 8 октября 2026

POST /runs принимает multipart/form-data. Передавайте каждый файл отдельным полем files. Можно загрузить архив ZIP, RAR или 7z. curl или HTTP-библиотека задаёт Content-Type и границу multipart. Не задавайте этот заголовок вручную.

ПолеОбязательноЧто передать
filesДаДокументы или архивы. Для каждого файла повторите поле files.
object_addressНетАдрес объекта. Допустимая длина указана в справочнике POST /runs.
user_requestНетЗадание проверяющему. Сервер сохраняет его с комплектом. Допустимая длина указана в справочнике POST /runs.
kindsНетJSON-строка с именами файлов и кодами разделов. Пример: {"AR.pdf":"АР"}. Получите справочник через GET /docset. Получите профиль организации через GET /me.
bundle_idНетbundle_id из ответа POST /bundles. Он связывает проверки одного проекта в истории.
rolesНетJSON-строка с точными путями документов и ролями context или review. При разделении ролей укажите каждый документ. Назначьте хотя бы один review.

Отправка двух файлов

bash
curl --fail-with-body "$NK_BASE/runs" \
  -H "Authorization: Bearer $NK_KEY" \
  -H "Idempotency-Key: object-001-v1" \
  -F "files=@AR.pdf" \
  -F "files=@EOM.pdf" \
  --form-string "object_address=г. Москва, ул. Примерная, д. 1" \
  --form-string "user_request=Сопоставьте нагрузки ЭОМ с архитектурными решениями." \
  --form-string 'kinds={"AR.pdf":"АР"}' \
  --output accepted.json

Пример ответа 201 — новый комплект принят

json
{
  "run_id": "9f1c3b7a-2d4e-4c8b-9a1f-6e5d4c3b2a10",
  "status": "queued",
  "checks_left": 11,
  "double_volume": false,
  "volume_units": 1,
  "user_request": "Сопоставьте нагрузки ЭОМ с архитектурными решениями.",
  "bundle": null,
  "object": {"address": "г. Москва, ул. Примерная, д. 1", "works": null},
  "documents": [
    {"index": 1, "name": "AR.pdf", "kind": "АР", "kind_chosen": true,
     "kind_guess": null, "pages": null, "converted": false, "page_from": null, "page_to": null},
    {"index": 2, "name": "EOM.pdf", "kind": null, "kind_chosen": false,
     "kind_guess": null, "pages": null, "converted": false, "page_from": null, "page_to": null}
  ]
}

Ответ 201 означает, что сервер принял комплект. Проверка ещё не завершена. Повтор того же запроса с прежним Idempotency-Key может вернуть 200 и прежний run_id. После приёма status обычно равен queued или running. Сервер запускает обработку автоматически.

Для длинного задания используйте файл UTF-8: -F "user_request=<task.txt". kinds задаёт раздел документа. user_request содержит задание проверяющему. roles задаёт роль: context для справочного документа или review для проверяемого документа. Указывайте точные пути файлов в roles.

Сервер также распознаёт папки Context и Reviews в архиве. Роль из roles имеет приоритет над именем папки.

Основные форматы: PDF, Word, Excel, JPEG, PNG и XML. Сервер распаковывает архивы ZIP, RAR и 7z при приёме. После загрузки проверьте documents.

После проверки прочитайте ограничения в отчёте.