Create Scheduled Playlist
Create new scheduled playlist
curl -X POST "https://api.5centscdn.com/v2/streams/scheduledplaylist/new" \
-H "Content-Type: application/json" \
-H "X-API-Key: YOUR_API_KEY" \
-d '{
"name": "testing",
"parent": "2314,stream",
"codec": "h264",
"protocols": [
"HLS"
],
"preroll": "N",
"loop": "N",
"domainlock[enabled]": "Y",
"domainlock[policy]": "Y",
"domainlock[list]": "example.com,docs.example.com",
"domainlock[ips]": "",
"domainlock[noreferer]": "N",
"geoblock[enabled]": "Y",
"geoblock[policy]": "Y",
"geoblock[list]": [],
"geoblock[ips]": "",
"securetoken[enabled]": "Y",
"securetoken[policy]": "D",
"securetoken[list]": "32862cdb6276e19a",
"securetoken[timeout]": 3600,
"securetoken[session]": "0",
"securetoken[keyip]": "N",
"securetoken[ips]": "",
"useragent[enabled]": "Y",
"useragent[policy]": "Y",
"useragent[list]": "",
"useragent[casesensitive]": "N",
"ipaccess[enabled]": "Y",
"ipaccess[policy]": "N",
"ipaccess[list]": "",
"ipaccess[ips]": "",
"_METHOD": "PUT"
}'
import requests
import json
url = "https://api.5centscdn.com/v2/streams/scheduledplaylist/new"
headers = {
"Content-Type": "application/json",
"X-API-Key": "YOUR_API_KEY"
}
data = {
"name": "testing",
"parent": "2314,stream",
"codec": "h264",
"protocols": [
"HLS"
],
"preroll": "N",
"loop": "N",
"domainlock[enabled]": "Y",
"domainlock[policy]": "Y",
"domainlock[list]": "example.com,docs.example.com",
"domainlock[ips]": "",
"domainlock[noreferer]": "N",
"geoblock[enabled]": "Y",
"geoblock[policy]": "Y",
"geoblock[list]": [],
"geoblock[ips]": "",
"securetoken[enabled]": "Y",
"securetoken[policy]": "D",
"securetoken[list]": "32862cdb6276e19a",
"securetoken[timeout]": 3600,
"securetoken[session]": "0",
"securetoken[keyip]": "N",
"securetoken[ips]": "",
"useragent[enabled]": "Y",
"useragent[policy]": "Y",
"useragent[list]": "",
"useragent[casesensitive]": "N",
"ipaccess[enabled]": "Y",
"ipaccess[policy]": "N",
"ipaccess[list]": "",
"ipaccess[ips]": "",
"_METHOD": "PUT"
}
response = requests.post(url, headers=headers, json=data)
print(response.json())
const response = await fetch("https://api.5centscdn.com/v2/streams/scheduledplaylist/new", {
method: "POST",
headers: {
"Content-Type": "application/json",
"X-API-Key": "YOUR_API_KEY"
},
body: JSON.stringify({
"name": "testing",
"parent": "2314,stream",
"codec": "h264",
"protocols": [
"HLS"
],
"preroll": "N",
"loop": "N",
"domainlock[enabled]": "Y",
"domainlock[policy]": "Y",
"domainlock[list]": "example.com,docs.example.com",
"domainlock[ips]": "",
"domainlock[noreferer]": "N",
"geoblock[enabled]": "Y",
"geoblock[policy]": "Y",
"geoblock[list]": [],
"geoblock[ips]": "",
"securetoken[enabled]": "Y",
"securetoken[policy]": "D",
"securetoken[list]": "32862cdb6276e19a",
"securetoken[timeout]": 3600,
"securetoken[session]": "0",
"securetoken[keyip]": "N",
"securetoken[ips]": "",
"useragent[enabled]": "Y",
"useragent[policy]": "Y",
"useragent[list]": "",
"useragent[casesensitive]": "N",
"ipaccess[enabled]": "Y",
"ipaccess[policy]": "N",
"ipaccess[list]": "",
"ipaccess[ips]": "",
"_METHOD": "PUT"
})
});
const data = await response.json();
console.log(data);
package main
import (
"fmt"
"net/http"
"bytes"
"encoding/json"
)
func main() {
data := []byte(`{
"name": "testing",
"parent": "2314,stream",
"codec": "h264",
"protocols": [
"HLS"
],
"preroll": "N",
"loop": "N",
"domainlock[enabled]": "Y",
"domainlock[policy]": "Y",
"domainlock[list]": "example.com,docs.example.com",
"domainlock[ips]": "",
"domainlock[noreferer]": "N",
"geoblock[enabled]": "Y",
"geoblock[policy]": "Y",
"geoblock[list]": [],
"geoblock[ips]": "",
"securetoken[enabled]": "Y",
"securetoken[policy]": "D",
"securetoken[list]": "32862cdb6276e19a",
"securetoken[timeout]": 3600,
"securetoken[session]": "0",
"securetoken[keyip]": "N",
"securetoken[ips]": "",
"useragent[enabled]": "Y",
"useragent[policy]": "Y",
"useragent[list]": "",
"useragent[casesensitive]": "N",
"ipaccess[enabled]": "Y",
"ipaccess[policy]": "N",
"ipaccess[list]": "",
"ipaccess[ips]": "",
"_METHOD": "PUT"
}`)
req, err := http.NewRequest("POST", "https://api.5centscdn.com/v2/streams/scheduledplaylist/new", bytes.NewBuffer(data))
if err != nil {
panic(err)
}
req.Header.Set("Content-Type", "application/json")
req.Header.Set("X-API-Key", "YOUR_API_KEY")
client := &http.Client{}
resp, err := client.Do(req)
if err != nil {
panic(err)
}
defer resp.Body.Close()
fmt.Println("Response Status:", resp.Status)
}
require 'net/http'
require 'json'
uri = URI('https://api.5centscdn.com/v2/streams/scheduledplaylist/new')
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true
request = Net::HTTP::Post.new(uri)
request['Content-Type'] = 'application/json'
request['X-API-Key'] = 'YOUR_API_KEY'
request.body = '{
"name": "testing",
"parent": "2314,stream",
"codec": "h264",
"protocols": [
"HLS"
],
"preroll": "N",
"loop": "N",
"domainlock[enabled]": "Y",
"domainlock[policy]": "Y",
"domainlock[list]": "example.com,docs.example.com",
"domainlock[ips]": "",
"domainlock[noreferer]": "N",
"geoblock[enabled]": "Y",
"geoblock[policy]": "Y",
"geoblock[list]": [],
"geoblock[ips]": "",
"securetoken[enabled]": "Y",
"securetoken[policy]": "D",
"securetoken[list]": "32862cdb6276e19a",
"securetoken[timeout]": 3600,
"securetoken[session]": "0",
"securetoken[keyip]": "N",
"securetoken[ips]": "",
"useragent[enabled]": "Y",
"useragent[policy]": "Y",
"useragent[list]": "",
"useragent[casesensitive]": "N",
"ipaccess[enabled]": "Y",
"ipaccess[policy]": "N",
"ipaccess[list]": "",
"ipaccess[ips]": "",
"_METHOD": "PUT"
}'
response = http.request(request)
puts response.body
{
"result": "success",
"message": "Stream Created",
"stream": {
"monitoring_id": null,
"type": "scheduledplaylist",
"id": 72274,
"serviceid": 103,
"name": "103_push_2314_001/testing",
"codec": "h264",
"ingests": [
[],
null
],
"protocols": [
[
"HLS"
],
[
"HLS"
]
],
"parentid": 2314,
"server": "N",
"backup": "N",
"dedicatedLTC": "0",
"hasAdvancedFeatures": "0",
"monitoring_triggers": null,
"draft": "0",
"disabled": "0",
"created_at": "2026-05-01 13:18:21",
"updated_at": "2026-05-01 13:18:21",
"lastseen_at": false,
"deleted": null,
"ingestsLock": 0,
"protocolsLock": 0,
"status": "Enabled",
"has": {
"rtmp": 0,
"rtsp": 0,
"hls": 1,
"dash": 0,
"rtmpauth": "Y"
},
"fms": {
"server": {
"country": "SouthEast Asia",
"meta": {
"fmsUrl": "rtmp://fms-01-01.5centscdn.com"
}
}
},
"parts": {
"pp": "103_push_2314_001",
"sn": "testing",
"full": "103_push_2314_001testing"
},
"restream": {},
"playbackurls": {
"scheme": "https",
"url_prefix": "https://stream-abc12-hls-live.stream.example.com",
"rtmp": "rtmp://rtmp.5centscdn.com:1935/",
"rtsp": "rtsp://rtsp.5centscdn.com:554/",
"hlsManifest": "playlist_dvr.m3u8",
"dashManifest": "manifest_dvr.mpd",
"hls": "https://hash-hls-live.5centscdn.com",
"dash": "https://hash-hls-live.5centscdn.com",
"players": {
"flowplayer": {
"baseQ": "",
"base": "https://cdn.example.com/flowplayer/hls/",
"hls": "https://cdn.example.com/flowplayer/hls/aHR0cHM6Ly9zdHJlYW0uZXhhbXBsZS5jb20vc2FtcGxlL3N0cmVhbS9wbGF5bGlzdC5tM3U4"
},
"videojs": {
"baseQ": "",
"base": "https://cdn.example.com/videojs/hls/",
"hls": "https://cdn.example.com/videojs/hls/aHR0cHM6Ly9zdHJlYW0uZXhhbXBsZS5jb20vc2FtcGxlL3N0cmVhbS9wbGF5bGlzdC5tM3U4"
},
"own": {
"hashes": {
"stream-abc12-hls-live.stream.example.com": {
"hash": "5jlu93s1z7ma6021",
"hls": "https://hash-hls-live.5centscdn.com",
"base64": "aHR0cHM6Ly9zdHJlYW0uZXhhbXBsZS5jb20vc2FtcGxlL3N0cmVhbS9wbGF5bGlzdC5tM3U4",
"dash": "https://hash-hls-live.5centscdn.com",
"base64dash": "aHR0cHM6Ly9zdHJlYW0uZXhhbXBsZS5jb20vc2FtcGxlL3N0cmVhbS9wbGF5bGlzdC5tM3U4"
}
},
"baseQ": "?showcv=true&title=103_push_2314_001/testing",
"base": "https://cdn.example.com/player/hls/skin1//",
"hls": "https://cdn.example.com/player/hls/skin1//aHR0cHM6Ly9zdHJlYW0uZXhhbXBsZS5jb20vc2FtcGxlL3N0cmVhbS9wbGF5bGlzdC5tM3U4?showcv=true&title=103_push_2314_001/testing",
"dash": "https://cdn.example.com/player/dash/skin1//aHR0cHM6Ly9zdHJlYW0uZXhhbXBsZS5jb20vc2FtcGxlL3N0cmVhbS9wbGF5bGlzdC5tM3U4?showcv=true&title=103_push_2314_001/testing"
}
},
"tokenized": {
"scheme": "https",
"url_prefix": "https://stream-abc12-hls-live.stream.example.com",
"rtmp": "rtmp://rtmp.5centscdn.com:1935/",
"rtsp": "rtsp://rtsp.5centscdn.com:554/",
"hlsManifest": "playlist_dvr.m3u8",
"dashManifest": "manifest_dvr.mpd",
"hls": "https://hash-hls-live.5centscdn.com",
"dash": "https://hash-hls-live.5centscdn.com",
"players": {
"hostname": "cdn.example.com",
"flowplayer": {
"baseQ": "",
"base": "https://cdn.example.com/flowplayer/hls/",
"hls": "https://cdn.example.com/flowplayer/hls/aHR0cHM6Ly9zdHJlYW0uZXhhbXBsZS5jb20vc2FtcGxlL3N0cmVhbS9wbGF5bGlzdC5tM3U4",
"dash": "https://cdn.example.com/flowplayer/dash/aHR0cHM6Ly9zdHJlYW0uZXhhbXBsZS5jb20vc2FtcGxlL3N0cmVhbS9wbGF5bGlzdC5tM3U4"
},
"videojs": {
"baseQ": "",
"base": "https://cdn.example.com/videojs/hls/",
"hls": "https://cdn.example.com/videojs/hls/aHR0cHM6Ly9zdHJlYW0uZXhhbXBsZS5jb20vc2FtcGxlL3N0cmVhbS9wbGF5bGlzdC5tM3U4",
"dash": "https://cdn.example.com/videojs/dash/aHR0cHM6Ly9zdHJlYW0uZXhhbXBsZS5jb20vc2FtcGxlL3N0cmVhbS9wbGF5bGlzdC5tM3U4"
},
"own": {
"baseQ": "?showcv=true&title=103_push_2314_001/testing",
"base": "https://cdn.example.com/player/hls/skin1//",
"hls": "https://cdn.example.com/player/hls/skin1//aHR0cHM6Ly9zdHJlYW0uZXhhbXBsZS5jb20vc2FtcGxlL3N0cmVhbS9wbGF5bGlzdC5tM3U4?showcv=true&title=103_push_2314_001/testing",
"dash": "https://cdn.example.com/player/dash/skin1//aHR0cHM6Ly9zdHJlYW0uZXhhbXBsZS5jb20vc2FtcGxlL3N0cmVhbS9wbGF5bGlzdC5tM3U4?showcv=true&title=103_push_2314_001/testing"
}
},
"path": {
"hls": "/103_push_2314_001/testing/playlist_dvr.m3u8",
"dash": "/103_push_2314_001/testing/manifest_dvr.mpd"
},
"token": {
"hls": "md5=DiaLMfOCM6yiSPCUmXxORA&path=%2F103_push_2314_001%2Ftesting&expires=1777980554",
"dash": "md5=DiaLMfOCM6yiSPCUmXxORA&path=%2F103_push_2314_001%2Ftesting&expires=1777980554"
}
}
},
"platformsCount": 0,
"ssl_enabled": true,
"hash": "testing",
"securetoken": {
"enabled": "Y",
"policy": "D",
"keyip": "N",
"list": "32862cdb6276e19a",
"timeout": 3600,
"session": "0",
"ips": "",
"dirs": null,
"active": "Y"
},
"preroll": "N",
"loop": "N",
"zone": {
"id": 2314,
"type": "push",
"mode": "http",
"name": "push-2314",
"ftpdetails": {
"username": "vineeth_103_push_2314"
}
},
"hasInstantSchedule": true,
"playlistCount": 1,
"playlists": [
{
"id": 9265,
"streamid": 72274,
"name": "default",
"schedule": "instant",
"scheduletime": 0,
"type": "file",
"repeatfor": 0,
"repeatintervaldays": 0,
"loop": "1",
"length": "00:00:00",
"autorestart": "0",
"videos": [
{
"src": "/2.mp4",
"start": "0",
"duration": "0",
"ad_breaks": [
{
"start": 67,
"duration": 30
}
]
}
],
"serviceid": 103,
"files": [
"/2.mp4"
],
"durations": [
[
0,
0
]
],
"ad_breaks": [
[]
]
}
],
"domainlock": {
"enabled": "Y",
"policy": "Y",
"list": "example.com,docs.example.com",
"ips": "",
"noreferer": "N",
"active": "Y"
},
"geoblock": {
"enabled": "Y",
"policy": "Y",
"list": [
""
],
"ips": "",
"active": "Y"
},
"ipaccess": {
"enabled": "Y",
"policy": "N",
"list": "",
"ips": "",
"active": "N"
},
"useragent": {
"enabled": "Y",
"policy": "Y",
"list": "",
"ips": "",
"casesensitive": "N",
"active": "N",
"listArr": [
""
]
},
"transcode": {
"ltc": 0,
"type": "mixed",
"enabled": false,
"isEditable": true
},
"platforms": [
{
"id": 43459,
"rtmp": "rtmp://rtmp.5centscdn.com:1935/",
"auth": "Y",
"username": "admin",
"password": "password",
"isSRT": false,
"key": "password",
"schedule": "scheduleontime",
"scheduletime": "06:12",
"codec": null,
"length": "19:14",
"relid": 57197,
"dedicatedLTC": "0",
"transcode": {
"ltc": 0,
"type": "mixed",
"enabled": false,
"isEditable": true
},
"disabled": "0",
"name": "Custom RTMP",
"platform_id": 1,
"provider_id": 0,
"video_id": ""
}
],
"messages": {},
"adInsertion": null
}
}
/streams/scheduledplaylist/new
Target server for requests. Edit to use your own host.
API key (sent in header)
The media type of the request body
Friendly name for this resource.
Parent zone or push zone name to attach this stream to.
Video codec for the stream. Use h264 or h265.
List of output protocols. Values include HLS, RTMP, DASH, RTSP.
Enable pre-roll ads. Y means enabled, N means disabled.
Loop playback. Y means loop continuously, N means play once.
Enable or disable domain lock. Y means enabled, N means disabled.
Domain lock policy. Y means allow listed domains, N means deny.
Comma-separated list of allowed domains.
Comma-separated list of IP addresses for domain lock.
Whether to block referrer header. Y means blocked, N means allowed.
Enable or disable geo block. Y means enabled, N means disabled.
Geo block policy. Y means block listed countries, N means allow.
List of ISO country codes to block or allow.
Comma-separated IPs for geo block.
Enable or disable secure token. Y means enabled, N means disabled.
Secure token policy. D means dynamic, F means fixed.
Secure token key identifier.
Token validity duration in seconds.
Session limit. 0 means unlimited.
Whether token is bound to IP. Y means IP-bound, N means not bound.
Comma-separated IPs for secure token.
Enable or disable user agent control. Y means enabled, N means disabled.
User agent policy. Y means allow listed agents, N means deny.
Comma-separated list of user agents.
Whether user agent matching is case sensitive.
Enable or disable IP access control. Y means enabled, N means disabled.
IP access policy. Y means allow listed IPs, N means deny.
Comma-separated list of IPs for access control.
Additional IP addresses for access control.
HTTP method override for this request. This endpoint accepts POST, but set this to PUT to perform an update operation.
Request Preview
Response
Response will appear here after sending the request
Authentication
API Key for authentication. Provide your API key in the header.
Body
Whether to block referrer header. Y means blocked, N means allowed.
NEnable or disable secure token. Y means enabled, N means disabled.
YEnable or disable user agent control. Y means enabled, N means disabled.
YEnable or disable IP access control. Y means enabled, N means disabled.
YHTTP method override for this request. This endpoint accepts POST, but set this to PUT to perform an update operation.
PUTResponses
Status of the API response.
Human-readable message describing the result.
Stream object containing configuration and status details.