Пакетная обработка
Как обработать много документов сразу: мультизагрузка, zip-архив, POST /v1/batches и выгрузка результатов.
Для обработки многих документов одним типизатором используйте POST /v1/batches вместо отдельного
POST /v1/extract/прогона на каждый файл — это один запрос вместо множества и один объект для
отслеживания статуса.
Создание пакета: два способа
Пакет всегда идёт по сохранённому типизатору (typizer_id), не по разовой схеме — но файлы в него
можно передать двумя разными способами.
Способ 1: мультизагрузка (multipart/form-data)
Подходит для разовой пачки файлов целиком в одном запросе:
curl https://api.typizer.ru/v1/batches \
-H "Authorization: Bearer $TYPIZER_API_KEY" \
-H "Idempotency-Key: $(uuidgen)" \
-F typizer_id=$TYPIZER_ID \
-F files=@invoice-1.pdf \
-F files=@invoice-2.pdf \
-F files=@invoice-3.pdfУ мультизагрузки есть предел на тело запроса целиком — 51 МиБ, независимо от предела на один
файл (MAX_FILE_BYTES, см. «Лимиты»). Пачка документов суммарно больше 51 МиБ
этим способом не загрузится — используйте способ 2.
Вместо (или вместе с) отдельных файлов один из элементов files может быть архивом .zip — по
имени файла. Каждый документ внутри архива становится отдельным прогоном пакета, как если бы он
был загружен отдельным файлом; папки, служебные файлы (__MACOSX, файлы, начинающиеся с точки)
пропускаются, а вложенный архив внутри архива отклоняется.
Способ 2: file_ids (JSON)
Для большой пачки или файлов, которые уже лежат в Typizer, загрузите каждый заранее через
POST /v1/files («Большие файлы») и передайте их идентификаторы списком —
этот способ не ограничен 51 МиБ, потому что сами файлы в запрос не входят:
curl https://api.typizer.ru/v1/batches \
-H "Authorization: Bearer $TYPIZER_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{
"typizer_id": "'"$TYPIZER_ID"'",
"file_ids": ["file_…", "file_…", "file_…"]
}'Независимо от способа, пакет — не больше 500 документов (файлов в file_ids, либо файлов и
записей zip-архива вместе для мультизагрузки).
Отслеживание статуса
curl https://api.typizer.ru/v1/batches/$BATCH_ID \
-H "Authorization: Bearer $TYPIZER_API_KEY"Поле status — processing или completed; total/succeeded/failed — счётчики прогонов
пакета. Чтобы не опрашивать вручную, подпишитесь на событие batch.completed — см. «Приём
вебхуков» и «Получить результат».
Выгрузка результата: CSV, XLSX, ZIP
GET /v1/batches/{id}/export?format=csv|xlsx|zip отдаёт результаты успешных прогонов пакета, в
порядке их создания, одним файлом:
csv/xlsx— одна таблица со столбцомrun_id, либо (дляcsv)zipсdata.csvи отдельным файлом на каждое поле-массив;zip— по одному<id прогона>.jsonна прогон.
Пока пакет ещё обрабатывается (status: "processing"), экспорт вернёт 409 conflict — дождитесь
completed.
Что дальше
- «Получить результат» — опрос и вебхуки для отслеживания статуса.
- «Большие файлы» — ограничения на размер одного файла и число страниц.