Skip to content

Allocate an encrypted tenant backup upload

POST
/api/admin/tenant-backups/uploads
Code sample: Shell / cURL
curl --request POST \
--url https://auth.example.com/api/admin/tenant-backups/uploads \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{ "idempotencyKey": "example", "sizeBytes": 1, "sha256": "example" }'

Requires backup read, manage, and import permissions plus fresh human administrator authentication. The upload is tenant- and actor-bound, expires after 24 hours, and accepts at most 10,000 parts of 8 MiB. The declared size and SHA-256 digest cover the complete encrypted artifact.

Media type application/json
object
idempotencyKey
required
string
/^[A-Za-z0-9_.:-]{1,256}$/
sizeBytes
required
integer
>= 174 <= 83886080000
sha256
required
string
/^[a-f0-9]{64}$/
key
additional properties
Example generated
{
"idempotencyKey": "example",
"sizeBytes": 1,
"sha256": "example"
}

The upload and its R2 multipart allocation are ready.

Media type application/json
object
id
required
string
state
required
string
Allowed values: uploading completing uploaded
partSize
required
integer
Allowed value: 8388608
partCount
required
integer
>= 1 <= 10000
expiresAt
required
integer
key
additional properties
Example
{
"state": "uploading",
"partSize": 8388608
}

Invalid upload declaration

Missing permission or fresh administrator authentication

Idempotency

The request body exceeds 4096 bytes

Import storage or audit persistence is unavailable