DocumentationComplete Multipart Upload

Complete Multipart Upload

Finalize the multipart upload after all parts have been uploaded. After this, HLS processing starts in the background.

Endpoints

POST/api/videos/uploads/:jobId/files/:uploadId/complete

Complete the multipart upload.

Request

curl -X POST "https://theamplium.com/api/videos/uploads/JOB_ID/files/UPLOAD_ID/complete" \
  -H "Content-Type: application/json" \
  -H "x-api-key: YOUR_API_KEY" \
  -d '{
    "parts": [
      { "partNumber": 1, "etag": "\"etag-from-part-1\"" },
      { "partNumber": 2, "etag": "\"etag-from-part-2\"" },
      { "partNumber": 3, "etag": "\"etag-from-part-3\"" }
    ]
  }'

Response

{
  "status": "ok",
  "jobId": "0f6c1e5d-5f6a-4ef5-90b2-7a3b2e1e1111",
  "layout": "AIV",
  "upload_status": {
    "percent": 100,
    "status": "Processing",
    "message": "Upload completed."
  }
}

Error Response

When an error occurs, the API returns a JSON response with this structure:

{
  "error": "BadRequest",
  "message": "isEncode must be true or false."
}

HTTP Error Codes

CodeError Type
400BadRequest
401Unauthorized
403Forbidden
404NotFound
413PayloadTooLarge
415UnsupportedMediaType
500InternalServerError

Upload Rules

  • parts must include exactly totalParts entries.
  • Each part needs partNumber and etag.
  • No duplicate partNumber values are allowed.
  • After a successful response, HLS processing starts in the background.