Create Thumbnail

Request a signed upload for a custom thumbnail. Use ajax for a browser form POST or curl for a signed PUT. Then upload the file to the returned bucket.

Recent Requests
Log in to see full request history
TimeStatusUser Agent
Retrieving recent requests…
LoadingLoading…

Request a signed upload for a custom thumbnail on an existing VOD, live channel, or playlist. This endpoint does not accept the image bytes. Init returns storage credentials; you then upload the file to the bucket.

The same two-step flow is used for splashscreens. Step-by-step: Splash Screen/Thumbnail.

ℹ️

Authenticate with X-Api-Key and send X-Format: default. JSON bodies need Content-Type: application/json. Init returns 200. The storage POST typically returns 201.

POST /v2/{resource_type}/{id}/thumbnail

PathValue
resource_typevod, channel, or playlist (singular).
idUUID of that VOD, channel, or playlist.

upload_type is required: ajax (browser form POST) or curl (signed PUT).

After a successful storage upload, look the resource back up. pictures.thumbnail is an array of CDN URLs (for example https://universe-files.dacast.com/{uuid}). Use that array to confirm the image is attached.

Ajax

Init returns form fields. POST them to https://{bucket} (do not send bucket as a form field). Append file last. Include x-amz-algorithm.

curl -X POST "https://developer.dacast.com/v2/vod/{id}/thumbnail" \
  -H "X-Api-Key: insertYourApiKeyHere" \
  -H "X-Format: default" \
  -H "Content-Type: application/json" \
  -d "{\"upload_type\":\"ajax\"}"
{
  "acl": "private",
  "bucket": "upload.dacast.com",
  "key": "vod-target-image/{id}/thumbnail",
  "policy": "…",
  "success_action_status": "201",
  "x-amz-algorithm": "AWS4-HMAC-SHA256",
  "x-amz-credential": "AKIA…/20260824/us-east-1/s3/aws4_request",
  "x-amz-date": "20260824T123402Z",
  "x-amz-signature": "…"
}

Channel keys use live-target-image/{id}/thumbnail. Playlist keys use playlist-target-image/{id}/thumbnail.

curl -X POST "https://upload.dacast.com" \
  --form "key=vod-target-image/{id}/thumbnail" \
  --form "acl=private" \
  --form "success_action_status=201" \
  --form "policy=…" \
  --form "x-amz-algorithm=AWS4-HMAC-SHA256" \
  --form "x-amz-credential=AKIA…/20260824/us-east-1/s3/aws4_request" \
  --form "x-amz-date=20260824T123402Z" \
  --form "x-amz-signature=…" \
  --form "[email protected];type=image/png"

A successful storage POST returns 201 with an XML PostResponse (Location, Bucket, Key, ETag).

cURL

Init with "upload_type": "curl". Optional source is only the filename used in the generated curl-command (-T thumb.png). If you omit it, the command uses /path/to/file. PUT the file to url (or run curl-command).

curl -X POST "https://developer.dacast.com/v2/vod/{id}/thumbnail" \
  -H "X-Api-Key: insertYourApiKeyHere" \
  -H "X-Format: default" \
  -H "Content-Type: application/json" \
  -d "{\"upload_type\":\"curl\",\"source\":\"thumb.png\"}"
{
  "curl-command": "curl -T thumb.png 'https://upload.dacast.com/vod-target-image/{id}/thumbnail?AWSAccessKeyId=AKIA…&Expires=1787661435&Signature=…'",
  "url": "https://upload.dacast.com/vod-target-image/{id}/thumbnail?AWSAccessKeyId=AKIA…&Expires=1787661435&Signature=…"
}
Path Params
string
enum
required

Content type. Use vod, channel, or playlist (singular).

Allowed:
string
required

UUID of the VOD, channel, or playlist.

Body Params
string
enum
required

How you will upload the file: ajax (form POST) or curl (signed PUT).

Allowed:
string

Optional for curl. Filename used in the generated curl-command (-T thumb.png). Ignored for ajax.

Responses

Language
Credentials
Header
LoadingLoading…
Response
Click Try It! to start a request and see the response here! Or choose an example:
application/json