Start a mass upload
/document-mass-uploadsRecords a zip upload and opens its multipart upload. Returns 201, status uploading, an upload block (part_count parts of part_size) and a Location. Gate: view-all-documents or super admin only; no folder rights or locks are checked. Else 403. 422 mass_upload_limit_reached at 5 in progress per organisation (uploading before upload.expires_at, queued, processing), validation_failed over 50 GiB; 502. dry_run skips storage. Emits document_mass_upload.created. cancel undoes it.
Query parameters
Validate and run the call without committing it, returning what the real call would return with
meta.dry_runset.
Headers
Makes a retry safe. Send a new UUID for each new request and reuse it only to retry that request; the first response is replayed for 24 hours.
Request body
application/json, required · DocumentMassUploadCreate
The name of the zip file. It must end in .zip.
The size of the zip file in bytes. At most 50 GiB (53687091200) unless the deployment sets API_SUITE_MASS_UPLOAD_MAX_SIZE_BYTES.
{
"filename": "string",
"size": 1
}Responses
{
"data": {
"id": "9a9d1c5e-4f2b-4c8e-9a7d-2f1e6b3c4d5a",
"status": "uploading",
"filename": "string",
"size_bytes": 1,
"owner_id": "9a9d1c5e-4f2b-4c8e-9a7d-2f1e6b3c4d5a",
"job_id": "9a9d1c5e-4f2b-4c8e-9a7d-2f1e6b3c4d5a",
"summary": {
"total": 1,
"processed": 1,
"succeeded": 1,
"failed": 1
},
"failure_reason": "string",
"cancelled_at": "2026-06-12T10:00:00+00:00",
"revert": {
"job_id": "9a9d1c5e-4f2b-4c8e-9a7d-2f1e6b3c4d5a",
"status": "pending",
"requested_at": "2026-06-12T10:00:00+00:00",
"deleted": 1,
"missing": 1,
"failed": 1
},
"upload": {
"part_size": 1,
"part_count": 1,
"expires_at": "2026-06-12T10:00:00+00:00"
},
"created_at": "2026-06-12T10:00:00+00:00",
"updated_at": "2026-06-12T10:00:00+00:00",
"completed_at": "2026-06-12T10:00:00+00:00"
}
}Authorization failed. error.code is one of org_disabled,
ip_blocked, missing_scope, scope_disabled, user_disabled.
The request can't be processed (HTTP 422): validation_failed with one ErrorDetail per
problem, or a code documented on the operation.
Examples
curl -X POST https://your-org-domain/kong/core/api/v2/document-mass-uploads\
-H "Authorization: Bearer $HELM_API_KEY"\
-H "Content-Type: application/json"\
-d '{
"filename": "string",
"size": 1
}'