Request a signed upload for a custom splashscreen. Use ajax for a browser form POST or curl for a signed PUT. Then upload the file to the returned bucket.
| Time | Status | User Agent | |
|---|---|---|---|
Retrieving recent requests… | |||
Request a signed upload for a custom splashscreen 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 thumbnails. Step-by-step: Splash Screen/Thumbnail. Reference: Create Thumbnail.
Authenticate withX-Api-Keyand sendX-Format: default. JSON bodies needContent-Type: application/json. Init returns 200. The storage POST typically returns 201.
POST /v2/{resource_type}/{id}/splash
| Path | Value |
|---|---|
resource_type | vod, channel, or playlist (singular). |
id | UUID 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.splashscreen 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}/splash" \
-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}/splashscreen",
"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": "20260824T132543Z",
"x-amz-signature": "..."
}Channel keys use live-target-image/{id}/splashscreen. Playlist keys use playlist-target-image/{id}/splashscreen.
curl -X POST "https://upload.dacast.com" \
--form "key=vod-target-image/{id}/splashscreen" \
--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=20260824T132543Z" \
--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 splash.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}/splash" \
-H "X-Api-Key: insertYourApiKeyHere" \
-H "X-Format: default" \
-H "Content-Type: application/json" \
-d "{\"upload_type\":\"curl\",\"source\":\"splash.png\"}"{
"curl-command": "curl -T splash.png 'https://upload.dacast.com/vod-target-image/{id}/splashscreen?AWSAccessKeyId=AKIA...&Expires=1787664348&Signature=...'",
"url": "https://upload.dacast.com/vod-target-image/{id}/splashscreen?AWSAccessKeyId=AKIA...&Expires=1787664348&Signature=..."
}