Skip to main content
POST
Tells the service that all parts are uploaded. It assembles the object, probes the media, and publishes the source version.
string
required
API key for authentication.

Path

string
required
The upload session identifier.

Body

array
required
All parts, in part-number order: { partNumber, etag }, using the exact ETag values returned by object storage. Missing, extra or mismatched entries are rejected with 47126.

Response

string
The upload session.
string
Project identifier.
READY when the probe has already finished; otherwise COMPLETING or PROBING, so poll GET /uploads/{uploadId}.
string | null
Set when the upload failed.
string | null
The created source asset, or null when it has not been created yet.
number
The committed source version.
string | null
Detected duration, as a string.
object | null
{ inputFormat, containerName, audioStreamCount, video, width, height, rotationDegrees }.
Retrying completion is safe: the service tolerates a lost response by re-reading the object metadata. But always send the complete part list — not just the last part.

Common errors

  • code = 47126: the submitted part list does not match the session.
  • code = 47124: the upload session does not exist or is not owned by your account.
  • code = 47125: the file exceeded the size limit or had no content.
  • code = 47104 / 47105: the source is invalid or has no audio track.
  • code = 47127: object storage is unavailable — retry.