Livepush Developers

Videos

Finish a multipart upload

POST https://octopus.livepush.io/streams/{stream_id}/videos/uploadurl/multipart/finish

Base URL https://octopus.livepush.io — Core Streams & Media APIs

Completes the multipart upload by listing every uploaded part with its ETag. The object only becomes readable once this succeeds.

The body is the storage provider's completion record, passed through unchanged.

Requires a token with the streams.videos.write scope.

Authorization

Send a valid access token in the Authorization header.

  • bearerAuth — Bearer token (JWT)
headers.txt
Authorization: Bearer YOUR_API_TOKEN

Try it

POST https://octopus.livepush.io/streams/{stream_id}/videos/uploadurl/multipart/finish — This call changes live data on your account.

Parameters

Path parameters

  • stream_id string required
    Unique identifier of the stream.
    example: st_xxxxxxxxxxxxx

Request body

application/json required

  • Key string required
  • uploadId string required
  • parts object[] required
    The uploaded parts, each with its part number and ETag.
    • PartNumber integer
    • ETag string
  • zone string required
Example request body response.json
{
  "Key": "string",
  "uploadId": "string",
  "parts": [
    {
      "PartNumber": 1,
      "ETag": "string"
    }
  ],
  "zone": "eu-central"
}

Code samples

request.sh
curl -X POST 'https://octopus.livepush.io/streams/st_xxxxxxxxxxxxx/videos/uploadurl/multipart/finish' \
  -H 'Authorization: Bearer YOUR_API_TOKEN' \
  -H 'Content-Type: application/json' \
  -d '{
    "Key": "string",
    "uploadId": "string",
    "parts": [
      {
        "PartNumber": 1,
        "ETag": "string"
      }
    ],
    "zone": "eu-central"
  }'
const response = await fetch('https://octopus.livepush.io/streams/st_xxxxxxxxxxxxx/videos/uploadurl/multipart/finish', {
  method: 'POST',
  headers: {
    'Authorization': 'Bearer YOUR_API_TOKEN',
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    "Key": "string",
    "uploadId": "string",
    "parts": [
      {
        "PartNumber": 1,
        "ETag": "string"
      }
    ],
    "zone": "eu-central"
  }),
});

if (!response.ok) {
  throw new Error(`Livepush API error ${response.status}`);
}

const data = await response.json();
import requests

headers = {
    'Authorization': 'Bearer YOUR_API_TOKEN',
    'Content-Type': 'application/json',
}

payload = {
    "Key": "string",
    "uploadId": "string",
    "parts": [
        {
            "PartNumber": 1,
            "ETag": "string"
        }
    ],
    "zone": "eu-central"
}

response = requests.post('https://octopus.livepush.io/streams/st_xxxxxxxxxxxxx/videos/uploadurl/multipart/finish', headers=headers, json=payload, timeout=30)
response.raise_for_status()
data = response.json()

Responses

Finish a multipart upload.

application/json

  • Location string
    Final object URL.
  • Bucket string
  • Key string
  • ETag string
Example 200 response response.json
{
  "Location": "string",
  "Bucket": "string",
  "Key": "string",
  "ETag": "string"
}

No response body.

Not found for this account.