Skip to main content
POST
Complete upload

Authorizations

Authorization
string
header
required

A workspace API key.

Headers

idempotency-key
string
required

Required stable id for this logical write; reuse it after a timeout. Upload endpoints also require the same value in body.idempotencyKey.

Required string length: 1 - 255

Body

application/json
uploadId
string
required

Sigmora upload-session id returned by upload prepare.

Pattern: ^aus_[a-f0-9]{48}$
contentId
string
required

Storage content id returned by upload prepare.

Required string length: 1 - 200
sizeBytes
integer
required

Exact number of uploaded bytes; must match preparation.

Required range: x <= 53687091200
idempotencyKey
string
required

Must exactly match the Idempotency-Key header.

Required string length: 1 - 255
projectId
string

Project that owns the upload. Omit for a Library upload that belongs to no project; then omit it on every later call too.

Required string length: 1 - 200
sha256
string

Complete-file SHA-256; must match preparation when supplied.

Pattern: ^[a-fA-F0-9]{64}$
parts
object[]

Ordered completed parts for a multipart upload; omit for a single PUT.

Required array length: 1 - 10000 elements
deviceId
string

Stable id of the uploading device; Sigmora records its sync health.

Required string length: 1 - 128
Pattern: ^[A-Za-z0-9._:-]+$
contentFingerprint
string

File fingerprint: SHA-256 over the SHA-256 of each 8 MiB slice followed by the byte size. Recorded on the asset so the same file is understood once.

Pattern: ^sha256-8m:[a-f0-9]{64}$

Response

Success.

success
boolean
required
uploadId
string
required

Completed Sigmora upload-session id.

Pattern: ^aus_[a-f0-9]{48}$
projectId
string | null
required

Project that owns the completed upload; null for a Library upload.

Required string length: 1 - 200
assetId
string
required

Stable project asset id.

Required string length: 1 - 200
contentId
string
required

Storage content id bound to the asset.

Required string length: 1 - 200
lane
enum<string>
required

Upload lane that was finalized.

Available options:
single,
multipart
status
string | null
required

Content-engine state after storage completion; use ingestReady for readiness.

ingestReady
boolean
required

Whether the uploaded content is active and ready for downstream work.

previewUrl
string<uri> | null
required

Short-lived preview URL when available.

checksum
object | null
required

Client checksum binding; storage does not independently attest this digest.

completedAt
string | null
required

Durable completion timestamp.

{key}
any