Create ABR Stream
Create a new ABR stream
curl -X POST "https://api.5centscdn.com/v2/streams/abr/new" \
-H "Content-Type: application/json" \
-H "X-API-Key: YOUR_API_KEY" \
-d '{
"_METHOD": "PUT",
"name": "james/tae",
"codec": "h264",
"protocols": [
"HLS"
],
"server": "11,211",
"parentid": 3,
"platformtype": "",
"domainlock[enabled]": "Y",
"domainlock[policy]": "Y",
"domainlock[list]": "example.com,docs.example.com",
"domainlock[noreferer]": "N",
"domainlock[ips]": "",
"geoblock[enabled]": "Y",
"geoblock[policy]": "Y",
"geoblock[list][]": "",
"geoblock[ips]": "",
"ipaccess[enabled]": "Y",
"ipaccess[policy]": "N",
"ipaccess[list]": "",
"ipaccess[ips]": "",
"ndvr[enabled]": "Y",
"ndvr[retention]": 5,
"record[server]": 1,
"record[enabled]": "Y",
"record[retention]": 3,
"securetoken[enabled]": "Y",
"securetoken[policy]": "D",
"securetoken[list]": "32862cdb6276e19a",
"securetoken[ips]": "",
"securetoken[keyip]": "N",
"securetoken[session]": "0",
"securetoken[timeout]": 3600,
"securetoken[active]": "Y",
"useragent[enabled]": "Y",
"useragent[policy]": "Y",
"useragent[list]": "",
"useragent[casesensitive]": "N",
"useragent[ips]": ""
}'
import requests
import json
url = "https://api.5centscdn.com/v2/streams/abr/new"
headers = {
"Content-Type": "application/json",
"X-API-Key": "YOUR_API_KEY"
}
data = {
"_METHOD": "PUT",
"name": "james/tae",
"codec": "h264",
"protocols": [
"HLS"
],
"server": "11,211",
"parentid": 3,
"platformtype": "",
"domainlock[enabled]": "Y",
"domainlock[policy]": "Y",
"domainlock[list]": "example.com,docs.example.com",
"domainlock[noreferer]": "N",
"domainlock[ips]": "",
"geoblock[enabled]": "Y",
"geoblock[policy]": "Y",
"geoblock[list][]": "",
"geoblock[ips]": "",
"ipaccess[enabled]": "Y",
"ipaccess[policy]": "N",
"ipaccess[list]": "",
"ipaccess[ips]": "",
"ndvr[enabled]": "Y",
"ndvr[retention]": 5,
"record[server]": 1,
"record[enabled]": "Y",
"record[retention]": 3,
"securetoken[enabled]": "Y",
"securetoken[policy]": "D",
"securetoken[list]": "32862cdb6276e19a",
"securetoken[ips]": "",
"securetoken[keyip]": "N",
"securetoken[session]": "0",
"securetoken[timeout]": 3600,
"securetoken[active]": "Y",
"useragent[enabled]": "Y",
"useragent[policy]": "Y",
"useragent[list]": "",
"useragent[casesensitive]": "N",
"useragent[ips]": ""
}
response = requests.post(url, headers=headers, json=data)
print(response.json())
const response = await fetch("https://api.5centscdn.com/v2/streams/abr/new", {
method: "POST",
headers: {
"Content-Type": "application/json",
"X-API-Key": "YOUR_API_KEY"
},
body: JSON.stringify({
"_METHOD": "PUT",
"name": "james/tae",
"codec": "h264",
"protocols": [
"HLS"
],
"server": "11,211",
"parentid": 3,
"platformtype": "",
"domainlock[enabled]": "Y",
"domainlock[policy]": "Y",
"domainlock[list]": "example.com,docs.example.com",
"domainlock[noreferer]": "N",
"domainlock[ips]": "",
"geoblock[enabled]": "Y",
"geoblock[policy]": "Y",
"geoblock[list][]": "",
"geoblock[ips]": "",
"ipaccess[enabled]": "Y",
"ipaccess[policy]": "N",
"ipaccess[list]": "",
"ipaccess[ips]": "",
"ndvr[enabled]": "Y",
"ndvr[retention]": 5,
"record[server]": 1,
"record[enabled]": "Y",
"record[retention]": 3,
"securetoken[enabled]": "Y",
"securetoken[policy]": "D",
"securetoken[list]": "32862cdb6276e19a",
"securetoken[ips]": "",
"securetoken[keyip]": "N",
"securetoken[session]": "0",
"securetoken[timeout]": 3600,
"securetoken[active]": "Y",
"useragent[enabled]": "Y",
"useragent[policy]": "Y",
"useragent[list]": "",
"useragent[casesensitive]": "N",
"useragent[ips]": ""
})
});
const data = await response.json();
console.log(data);
package main
import (
"fmt"
"net/http"
"bytes"
"encoding/json"
)
func main() {
data := []byte(`{
"_METHOD": "PUT",
"name": "james/tae",
"codec": "h264",
"protocols": [
"HLS"
],
"server": "11,211",
"parentid": 3,
"platformtype": "",
"domainlock[enabled]": "Y",
"domainlock[policy]": "Y",
"domainlock[list]": "example.com,docs.example.com",
"domainlock[noreferer]": "N",
"domainlock[ips]": "",
"geoblock[enabled]": "Y",
"geoblock[policy]": "Y",
"geoblock[list][]": "",
"geoblock[ips]": "",
"ipaccess[enabled]": "Y",
"ipaccess[policy]": "N",
"ipaccess[list]": "",
"ipaccess[ips]": "",
"ndvr[enabled]": "Y",
"ndvr[retention]": 5,
"record[server]": 1,
"record[enabled]": "Y",
"record[retention]": 3,
"securetoken[enabled]": "Y",
"securetoken[policy]": "D",
"securetoken[list]": "32862cdb6276e19a",
"securetoken[ips]": "",
"securetoken[keyip]": "N",
"securetoken[session]": "0",
"securetoken[timeout]": 3600,
"securetoken[active]": "Y",
"useragent[enabled]": "Y",
"useragent[policy]": "Y",
"useragent[list]": "",
"useragent[casesensitive]": "N",
"useragent[ips]": ""
}`)
req, err := http.NewRequest("POST", "https://api.5centscdn.com/v2/streams/abr/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/abr/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 = '{
"_METHOD": "PUT",
"name": "james/tae",
"codec": "h264",
"protocols": [
"HLS"
],
"server": "11,211",
"parentid": 3,
"platformtype": "",
"domainlock[enabled]": "Y",
"domainlock[policy]": "Y",
"domainlock[list]": "example.com,docs.example.com",
"domainlock[noreferer]": "N",
"domainlock[ips]": "",
"geoblock[enabled]": "Y",
"geoblock[policy]": "Y",
"geoblock[list][]": "",
"geoblock[ips]": "",
"ipaccess[enabled]": "Y",
"ipaccess[policy]": "N",
"ipaccess[list]": "",
"ipaccess[ips]": "",
"ndvr[enabled]": "Y",
"ndvr[retention]": 5,
"record[server]": 1,
"record[enabled]": "Y",
"record[retention]": 3,
"securetoken[enabled]": "Y",
"securetoken[policy]": "D",
"securetoken[list]": "32862cdb6276e19a",
"securetoken[ips]": "",
"securetoken[keyip]": "N",
"securetoken[session]": "0",
"securetoken[timeout]": 3600,
"securetoken[active]": "Y",
"useragent[enabled]": "Y",
"useragent[policy]": "Y",
"useragent[list]": "",
"useragent[casesensitive]": "N",
"useragent[ips]": ""
}'
response = http.request(request)
puts response.body
{
"result": "success",
"message": "Stream Created",
"stream": {
"monitoring_id": null,
"type": "abr",
"id": 72255,
"serviceid": 103,
"name": "james/tae",
"codec": "h264",
"ingests": [
[],
null
],
"protocols": [
[
"HLS"
],
[
"HLS"
]
],
"parentid": null,
"server": "201",
"backup": "",
"dedicatedLTC": "0",
"hasAdvancedFeatures": "0",
"monitoring_triggers": null,
"draft": "0",
"disabled": "0",
"created_at": "2026-05-01 04:26:11",
"updated_at": "2026-05-01 04:26:11",
"lastseen_at": false,
"deleted": null,
"ingestsLock": 0,
"protocolsLock": 1,
"status": "Deploying",
"has": {
"rtmp": 0,
"rtsp": 0,
"hls": 1,
"dash": 0,
"rtmpauth": false
},
"fms": {
"server": {
"country": "North America",
"meta": {
"fmsUrl": "rtmp://fms-01-01.5centscdn.com"
}
}
},
"abr": {
"streams": 5,
"hashes": {
"1": "tae1",
"2": "tae2",
"3": "tae3",
"4": "tae4",
"5": "tae5"
}
},
"parts": {
"pp": "james",
"sn": "tae",
"full": "jamestae"
},
"restream": {},
"playbackurls": {
"scheme": "https",
"url_prefix": "https://stream-abc12-hls-live.stream.example.com",
"rtmp": "",
"rtsp": "",
"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",
"rtmp": "",
"rtsp": "",
"hds": ""
},
"videojs": {
"baseQ": "",
"base": "https://cdn.example.com/videojs/hls/",
"hls": "https://cdn.example.com/videojs/hls/aHR0cHM6Ly9zdHJlYW0uZXhhbXBsZS5jb20vc2FtcGxlL3N0cmVhbS9wbGF5bGlzdC5tM3U4",
"rtmp": "",
"rtsp": "",
"hds": ""
},
"own": {
"baseQ": "?showcv=true&title=james/tae",
"base": "https://cdn.example.com/player/hls/skin1//",
"hls": "https://cdn.example.com/player/hls/skin1//aHR0cHM6Ly9zdHJlYW0uZXhhbXBsZS5jb20vc2FtcGxlL3N0cmVhbS9wbGF5bGlzdC5tM3U4?showcv=true&title=james/tae",
"dash": "https://cdn.example.com/player/dash/skin1//aHR0cHM6Ly9zdHJlYW0uZXhhbXBsZS5jb20vc2FtcGxlL3N0cmVhbS9wbGF5bGlzdC5tM3U4?showcv=true&title=james/tae"
}
},
"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=james/tae",
"base": "https://cdn.example.com/player/hls/skin1//",
"hls": "https://cdn.example.com/player/hls/skin1//aHR0cHM6Ly9zdHJlYW0uZXhhbXBsZS5jb20vc2FtcGxlL3N0cmVhbS9wbGF5bGlzdC5tM3U4?showcv=true&title=james/tae",
"dash": "https://cdn.example.com/player/dash/skin1//aHR0cHM6Ly9zdHJlYW0uZXhhbXBsZS5jb20vc2FtcGxlL3N0cmVhbS9wbGF5bGlzdC5tM3U4?showcv=true&title=james/tae"
}
},
"path": {
"hls": "/james/tae/playlist_dvr.m3u8",
"dash": "/james/tae/manifest_dvr.mpd"
},
"token": {
"hls": "md5=Q6ViEYDsWUajNWsegkfhdg&path=%2Fjames%2Ftae&expires=1777613184",
"dash": "md5=Q6ViEYDsWUajNWsegkfhdg&path=%2Fjames%2Ftae&expires=1777613184"
}
},
"hds": ""
},
"platformsCount": 0,
"ssl_enabled": true,
"hash": "tae",
"ndvr": {
"enabled": "Y",
"retention": "5"
},
"securetoken": {
"enabled": "Y",
"policy": "D",
"keyip": "N",
"list": "32862cdb6276e19a",
"timeout": 3600,
"session": "0",
"ips": "",
"dirs": null,
"active": "Y"
},
"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": [
""
]
},
"adInsertion": null,
"record": {
"enabled": "Y",
"retention": "3",
"stream": {
"id": 72256,
"type": "record"
}
},
"rtmpauth": {
"password": "",
"active": "N"
},
"transcode": {
"ltc": 0,
"type": "mixed",
"enabled": false,
"isEditable": true
},
"platforms": [],
"messages": {}
},
"warnings": null,
"errors": null
}
/streams/abr/new
Target server for requests. Edit to use your own host.
API key (sent in header)
The media type of the request body
HTTP method override for this request. This endpoint accepts POST, but set this to PUT to perform an update operation.
Friendly name for this resource.
Video codec for the stream. Use h264 or h265.
List of output protocols. Values include HLS, RTMP, DASH, RTSP.
Server ID(s) for the stream. Use comma-separated values for multiple servers.
Identifier of the parent resource in the hierarchical structure.
Platform type identifier. Specifies the type of platform associated with the stream.
Indicates if domain lock is enabled. Y means enabled, N means disabled.
The policy for domain access. Y means allow, N means deny.
A comma-separated list of allowed domains for access.
Indicates whether to block referrer headers. Y means block, N means allow.
A list of IP addresses allowed or blocked based on the domain policy.
Indicates if geoblocking is enabled. Y means enabled, N means disabled.
The policy for geoblocking. Y means block listed locations, N means allow.
Country codes to block. Examples include AF, GB, US.
A list of IP addresses associated with the geoblocking rule.
Indicates if IP access control is enabled. Y means enabled, N means disabled.
The policy for IP access. Y means allow, N means deny.
A list of allowed IP addresses for access.
A list of IP addresses blocked or allowed based on the policy.
Indicates if NDVR is enabled. Y means enabled, N means disabled.
The number of days to retain NDVR recordings.
The DVR server identifier.
Indicates if recording is enabled. Y means enabled, N means disabled.
The number of days to retain recordings.
Indicates if secure token authentication is enabled. Y means enabled, N means disabled.
The policy for secure token usage. D means default policy.
A secure token identifier used for access control.
A list of IP addresses associated with secure tokens.
Indicates if the token is bound to the IP address. Y means bound, N means not bound.
Indicates whether a session is required for token validation. 0 means no session.
Timeout duration in seconds for secure token validity.
Whether the secure token is currently active. Y means active, N means inactive.
Indicates if user-agent filtering is enabled. Y means enabled, N means disabled.
The policy for user-agent filtering. Y means allow, N means deny.
A list of allowed or blocked user-agent strings.
Indicates whether user-agent matching is case-sensitive. Y means case-sensitive, N means not.
A list of IP addresses associated with user-agent filtering rules.
Request Preview
Response
Response will appear here after sending the request
Authentication
API Key for authentication. Provide your API key in the header.
Body
HTTP method override for this request. This endpoint accepts POST, but set this to PUT to perform an update operation.
PUTServer ID(s) for the stream. Use comma-separated values for multiple servers.
11,211Platform type identifier. Specifies the type of platform associated with the stream.
Indicates if domain lock is enabled. Y means enabled, N means disabled.
YA comma-separated list of allowed domains for access.
example.com,docs.example.comIndicates whether to block referrer headers. Y means block, N means allow.
NIndicates if geoblocking is enabled. Y means enabled, N means disabled.
YThe policy for geoblocking. Y means block listed locations, N means allow.
YIndicates if IP access control is enabled. Y means enabled, N means disabled.
YIndicates if secure token authentication is enabled. Y means enabled, N means disabled.
YIndicates if the token is bound to the IP address. Y means bound, N means not bound.
NIndicates whether a session is required for token validation. 0 means no session.
0Whether the secure token is currently active. Y means active, N means inactive.
YIndicates if user-agent filtering is enabled. Y means enabled, N means disabled.
YIndicates whether user-agent matching is case-sensitive. Y means case-sensitive, N means not.
NResponses
Status of the API response.
Human-readable message describing the result.
Stream object containing configuration and status details.
Non-fatal warnings returned with the response.
Errors returned with the response.