Docs

Create a new upload

Create an Upload session for a direct transfer to storage. Multipart creation returns every signed part URL. Retry parts with their original URLs and complete before expiry. Customer storage requires long-lived credentials and an incomplete-multipart lifecycle rule. Start a new Upload after abandoning a session.

POST
/uploads

Authorization

Authorization
header
string
required

Enter the project access token with the Bearer prefix, e.g. "Bearer project_access_token"

Bodyapplication/json

Upload creation parameters

create_asset
default: false
boolean

CreateAsset specifies whether to create an Asset after Upload completion. Defaults to false. Snapshots the Project output settings, including the path template. Referenced metadata must be non-empty in this request. Asset processing is billed separately.

file_size_bytes
integer

FileSizeBytes specifies the exact file size in bytes. Required when UploadMode is omitted, auto, or multipart. Optional for explicit single mode. Must fit the team's Source size limit. Single PUT supports up to 5 GiB, subject to the provider's limit; multipart supports up to 5 TiB.

Required range: 1 <= x <= 5.49755813888e+12
metadata
object

Metadata allows for additional information to be attached to the upload, with a maximum size of 2048 bytes.

Examples:
map[key:value key2:value2]
storage
object

Optional Storage override. Omit id to use the Project default. Customer-connected Storage requires path; Chunkify Storage generates its own path.

upload_mode
default: "auto"
string

UploadMode specifies the transfer method. Defaults to auto. Auto chooses multipart above 100 MiB and single PUT at or below 100 MiB for every Storage provider. Multipart requires a provider that supports the required multipart operations and signed part URLs. Provider failures return an error without falling back to single PUT.

Available options:
singlemultipartauto
validity_timeout
integer

ValidityTimeout specifies the session and signed URL lifetime in seconds. Single PUT defaults to 7200 and allows 300–36000. Multipart defaults to twice the transfer time at 5 Mbps plus 1800 seconds, bounded to 7200–172800; an explicit value allows 300–172800. Complete before expiry. Storage credentials and policies can shorten URL validity. Expired URLs cannot be refreshed.

Required range: 300 <= x <= 172800
Examples:
7200
workflow_id
object

WorkflowId specifies the Workflow to select. Omit to use the Project default. Set null to disable automatic actions. The current revision is pinned when creation is accepted.

Responses

application/json
data
object
required

Data contains the response object

status
"success"
string
required

Status indicates the response status "success"

The upload was created successfully