Запустить типизатор на многих документах
Один прогон на файл, у всех одна версия типизатора, format, mode и metadata: JSON с file_ids или multipart с частями files (одна из них может быть .zip). Сначала страницы всех прогонов сверяются с балансом (402 insufficient_balance, ничего не создаётся), затем резервируются по прогону. Всё или ничего: если прогон создать не удаётся (например, 402, потому что страницы тем временем израсходованы), запрос завершается этой ошибкой, ничего из пакета не запускается, а страницы возвращаются; уже созданные прогоны остаются в списке как неудачные в пакете completed. Пакет завершается, когда закончены все прогоны (вебхук batch.completed). Не больше 500 документов (.zip считается по числу файлов). Загрузки: не больше 2 одновременно на организацию (429), тело с .zip занимает обе; всё тело за 100 с без пауз дольше 15 с (408). На весь запрос — 100 с: пакет, который не удалось сохранить за это время, отклоняется с 503 «batch too large to process in one request; split it», и ничего из него не сохраняется. Поддерживает Idempotency-Key; повтор пакета, который из-за обрыва получил меньше прогонов, чем было прислано, — 409 conflict «batch was only partially created; create a new batch for the remaining documents» с batch_id, created и expected. Не больше 2 пакетов в секунду и 60 в минуту на ключ API или пользователя (429). Доступ: ключ API со скоупом runs:write или сессия.
AuthorizationBearer <token>Ключ API (tz_live_…). Если операция требует скоупы, они нужны ключу; у сессии есть все скоупы.
Typizer-Organization?stringОрганизация, от имени которой выполняется запрос (org_…). По умолчанию сессия действует от имени своей активной организации; ключ API может указать только свою.
Idempotency-Key?string1–255 печатных символов ASCII, уникальных для каждой задуманной операции. Повтор с тем же ключом и тем же запросом в течение 24 часов возвращает первый результат (Idempotent-Replayed: true); тот же ключ с другим запросом или пока первый ещё выполняется — 409 idempotency_conflict.
^[\x20-\x7E]+$1 <= length <= 255- body
typizer_id*stringlength <= 64file_ids*array<>1–500 файлов, загруженных через POST /v1/files, по прогону на каждый, в этом порядке
1 <= items <= 500format?stringformat каждого прогона. По умолчанию — default_format типизатора
"json""xml""csv""xlsx"mode?stringmode каждого прогона. По умолчанию — mode типизатора
"standard""precise"metadata?Передаётся каждому прогону
Пакет в обработке
application/json- response
id*stringobject*"batch""batch"typizer_id*stringstatus*string"processing""completed"total*integersucceeded*integerfailed*integercreated_at*stringdate-timecompleted_at*|date-timecurl -X POST 'https://api.typizer.ru/v1/batches' \ -H 'Content-Type: application/json' \ -d '{ "typizer_id": "string", "file_ids": [ "string" ]}'{ "id": "string", "object": "batch", "typizer_id": "string", "status": "processing", "total": 0, "succeeded": 0, "failed": 0, "created_at": "2019-08-24T14:15:22Z", "completed_at": "2019-08-24T14:15:22Z"}Повторить неудачный прогон
Создаёт новый прогон с версией типизатора неудачного прогона (даже если типизатор с тех пор изменён или удалён) или его разовой схемой и инструкциями, файлом, format, mode и metadata, а также его webhook_url, пока у активной конечной точки вебхуков есть этот URL (но не у отключённой вами). Страницы резервируются как для любого прогона (402 insufficient_balance). 409, если прогон не завершился неудачей, если его файл больше не хранится («source file expired») или если прогон сделан ассистентом (запустите его снова из ассистента). Входит в лимит новых прогонов (20 в секунду на ключ API или пользователя, 429). Поддерживает Idempotency-Key; передавайте его: каждый вызов без ключа создаёт ещё один прогон и резервирует под него страницы. Доступ: ключ API со скоупом runs:write или сессия.
Скачать результаты пакета
Результаты успешных прогонов пакета, которые ещё хранятся, в порядке создания прогонов (Content-Disposition: attachment; filename="<batch id>.<ext>"). csv — одна таблица со столбцом run_id или zip из data.csv и отдельного файла на каждое поле-массив; xlsx — то же в виде листов; zip — по одному <run id>.json на прогон. В csv и xlsx текстовое значение, которое таблица могла бы выполнить как формулу, записывается с ведущим '. 409, пока пакет обрабатывается. Передаётся потоком по мере формирования (без Content-Length); сбой на середине обрывает передачу, а не завершает её раньше. xlsx отклоняется (413), если в таблице больше строк, чем вмещает лист. Не больше 2 выгрузок одновременно на организацию (429), 503, пока сервер занят; оба ответа с Retry-After. Доступ: ключ API со скоупом runs:read или сессия.