Необходимые cookie-файлы нужны для работы сайта. Аналитические cookie (Яндекс Метрика) — только с вашего согласия. Политика cookie-файлов

Тема оформления
Инструкции

Пакетная обработка

Как обработать много документов сразу: мультизагрузка, zip-архив, POST /v1/batches и выгрузка результатов.

Для обработки многих документов одним типизатором используйте POST /v1/batches вместо отдельного POST /v1/extract/прогона на каждый файл — это один запрос вместо множества и один объект для отслеживания статуса.

Создание пакета: два способа

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

Способ 1: мультизагрузка (multipart/form-data)

Подходит для разовой пачки файлов целиком в одном запросе:

bash
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 МиБ, потому что сами файлы в запрос не входят:

bash
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-архива вместе для мультизагрузки).

Отслеживание статуса

bash
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.

Что дальше