Livepush Developers

Stream Embed

Create embed asset upload URL

POST https://octopus.livepush.io/streams/{stream_id}/embed/assets/upload_url

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

Returns a signed URL for uploading an embed asset — a cover image, brand icon or caption image. Upload the bytes to the returned URL, then attach the asset with the matching setting endpoint.

Requires a token with write access to the stream (CanWriteStreams).

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}/embed/assets/upload_url — 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

  • assetType string required
    Which embed slot the asset is destined for.
    cover_imgbrand_iconcaption_img
  • type string required
    MIME type of the file.
  • size integer required
    File size in bytes.
  • originalFilename string required
Example request body response.json
{
  "assetType": "cover_img",
  "type": "image/jpeg",
  "size": 184320,
  "originalFilename": "cover.jpg"
}

Code samples

request.sh
curl -X POST 'https://octopus.livepush.io/streams/st_xxxxxxxxxxxxx/embed/assets/upload_url' \
  -H 'Authorization: Bearer YOUR_API_TOKEN' \
  -H 'Content-Type: application/json' \
  -d '{
    "assetType": "cover_img",
    "type": "image/jpeg",
    "size": 184320,
    "originalFilename": "cover.jpg"
  }'
const response = await fetch('https://octopus.livepush.io/streams/st_xxxxxxxxxxxxx/embed/assets/upload_url', {
  method: 'POST',
  headers: {
    'Authorization': 'Bearer YOUR_API_TOKEN',
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    "assetType": "cover_img",
    "type": "image/jpeg",
    "size": 184320,
    "originalFilename": "cover.jpg"
  }),
});

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 = {
    "assetType": "cover_img",
    "type": "image/jpeg",
    "size": 184320,
    "originalFilename": "cover.jpg"
}

response = requests.post('https://octopus.livepush.io/streams/st_xxxxxxxxxxxxx/embed/assets/upload_url', headers=headers, json=payload, timeout=30)
response.raise_for_status()
data = response.json()

Responses

Setting applied.

application/json

  • success boolean
Example 200 response response.json
{
  "success": true
}

No response body.

No response body.