Skip to main content
POST
Prepare 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
fileName
string
required

Base file name only; directory separators and control characters are refused.

Required string length: 1 - 255
mimeType
enum<string>
required

Allowed video, audio, or image media type determined from the local file.

Available options:
video/mp4,
video/quicktime,
video/webm,
video/x-m4v,
video/mpeg,
image/jpeg,
image/png,
image/webp,
image/gif,
audio/mpeg,
audio/mp4,
audio/wav,
audio/webm,
audio/x-m4a,
audio/flac
sizeBytes
integer
required

Exact local file size in bytes; maximum 50 GiB.

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

Lowercase SHA-256 of the complete local file when available.

Pattern: ^[a-fA-F0-9]{64}$
restartUploadId
string

Expired or failed upload authority to replace after the cockpit verifies the same project and file binding.

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

Library title; defaults to fileName.

Required string length: 1 - 200
platform
enum<string>

Primary output/source platform; defaults to youtube.

Available options:
tiktok,
instagram,
youtube,
reddit,
x
tags
enum<string>[]

Optional tags stored with the asset.

Maximum array length: 20

Recognized human or source-kind asset tag.

Available options:
hook,
demo,
testimonial,
problem,
cta,
trend,
screen-recording,
audio-recording,
autosync
durationSeconds
number

Known media duration in seconds; omit when the client cannot determine it.

Required range: 0 <= x <= 43200
lane
enum<string>

Upload lane preference; auto selects multipart for large files.

Available options:
auto,
single,
multipart
deviceId
string

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

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

Multipart part size the client can hold in memory, 5 to 64 MiB.

Required range: 5242880 <= x <= 67108864
metadata
object

Up to 50 sig.* storage metadata entries (for example sig.shootId).

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

Durable Sigmora upload-session id.

assetId
string
required

Stable asset id reserved for this upload.

contentId
string
required

Storage content id bound to the asset.

lane
enum<string>
required

Selected byte-transfer lane.

Available options:
single,
multipart
upload
object
required

Short-lived direct-storage transfer instruction.

{key}
any