Create Push Stream
Create a Push stream
curl -X POST "https://api.5centscdn.com/v2/streams/push/new" \
-H "Content-Type: application/json" \
-H "X-API-Key: YOUR_API_KEY" \
-d '{
"_METHOD": "PUT",
"name": "sample/stream",
"server": "11,211",
"codec": "h264",
"protocols": [
"HLS"
],
"domainlock": {
"enabled": "Y",
"policy": "Y",
"list": [
"test.com",
"google.com"
],
"noreferer": "N",
"ips": []
},
"geoblock": {
"enabled": "Y",
"policy": "Y",
"list": [],
"ips": []
},
"ipaccess": {
"enabled": "Y",
"policy": "N",
"list": [],
"ips": []
},
"ndvr": {
"enabled": "Y",
"retention": 5
},
"record": {
"server": 1,
"enabled": "Y",
"retention": 3
},
"securetoken": {
"enabled": "Y",
"policy": "D",
"list": "32862cdb6276e19a",
"ips": "",
"keyip": "N",
"session": "0",
"timeout": 3600,
"active": "Y"
},
"useragent": {
"enabled": "Y",
"policy": "Y",
"list": "",
"ips": "",
"casesensitive": "N",
"active": "N",
"listArr": [
""
]
},
"vprofiles": [
14931,
14937
],
"aprofiles": [
14931
],
"filters": [
3,
4
],
"draft": 0
}'
import requests
import json
url = "https://api.5centscdn.com/v2/streams/push/new"
headers = {
"Content-Type": "application/json",
"X-API-Key": "YOUR_API_KEY"
}
data = {
"_METHOD": "PUT",
"name": "sample/stream",
"server": "11,211",
"codec": "h264",
"protocols": [
"HLS"
],
"domainlock": {
"enabled": "Y",
"policy": "Y",
"list": [
"test.com",
"google.com"
],
"noreferer": "N",
"ips": []
},
"geoblock": {
"enabled": "Y",
"policy": "Y",
"list": [],
"ips": []
},
"ipaccess": {
"enabled": "Y",
"policy": "N",
"list": [],
"ips": []
},
"ndvr": {
"enabled": "Y",
"retention": 5
},
"record": {
"server": 1,
"enabled": "Y",
"retention": 3
},
"securetoken": {
"enabled": "Y",
"policy": "D",
"list": "32862cdb6276e19a",
"ips": "",
"keyip": "N",
"session": "0",
"timeout": 3600,
"active": "Y"
},
"useragent": {
"enabled": "Y",
"policy": "Y",
"list": "",
"ips": "",
"casesensitive": "N",
"active": "N",
"listArr": [
""
]
},
"vprofiles": [
14931,
14937
],
"aprofiles": [
14931
],
"filters": [
3,
4
],
"draft": 0
}
response = requests.post(url, headers=headers, json=data)
print(response.json())
const response = await fetch("https://api.5centscdn.com/v2/streams/push/new", {
method: "POST",
headers: {
"Content-Type": "application/json",
"X-API-Key": "YOUR_API_KEY"
},
body: JSON.stringify({
"_METHOD": "PUT",
"name": "sample/stream",
"server": "11,211",
"codec": "h264",
"protocols": [
"HLS"
],
"domainlock": {
"enabled": "Y",
"policy": "Y",
"list": [
"test.com",
"google.com"
],
"noreferer": "N",
"ips": []
},
"geoblock": {
"enabled": "Y",
"policy": "Y",
"list": [],
"ips": []
},
"ipaccess": {
"enabled": "Y",
"policy": "N",
"list": [],
"ips": []
},
"ndvr": {
"enabled": "Y",
"retention": 5
},
"record": {
"server": 1,
"enabled": "Y",
"retention": 3
},
"securetoken": {
"enabled": "Y",
"policy": "D",
"list": "32862cdb6276e19a",
"ips": "",
"keyip": "N",
"session": "0",
"timeout": 3600,
"active": "Y"
},
"useragent": {
"enabled": "Y",
"policy": "Y",
"list": "",
"ips": "",
"casesensitive": "N",
"active": "N",
"listArr": [
""
]
},
"vprofiles": [
14931,
14937
],
"aprofiles": [
14931
],
"filters": [
3,
4
],
"draft": 0
})
});
const data = await response.json();
console.log(data);
package main
import (
"fmt"
"net/http"
"bytes"
"encoding/json"
)
func main() {
data := []byte(`{
"_METHOD": "PUT",
"name": "sample/stream",
"server": "11,211",
"codec": "h264",
"protocols": [
"HLS"
],
"domainlock": {
"enabled": "Y",
"policy": "Y",
"list": [
"test.com",
"google.com"
],
"noreferer": "N",
"ips": []
},
"geoblock": {
"enabled": "Y",
"policy": "Y",
"list": [],
"ips": []
},
"ipaccess": {
"enabled": "Y",
"policy": "N",
"list": [],
"ips": []
},
"ndvr": {
"enabled": "Y",
"retention": 5
},
"record": {
"server": 1,
"enabled": "Y",
"retention": 3
},
"securetoken": {
"enabled": "Y",
"policy": "D",
"list": "32862cdb6276e19a",
"ips": "",
"keyip": "N",
"session": "0",
"timeout": 3600,
"active": "Y"
},
"useragent": {
"enabled": "Y",
"policy": "Y",
"list": "",
"ips": "",
"casesensitive": "N",
"active": "N",
"listArr": [
""
]
},
"vprofiles": [
14931,
14937
],
"aprofiles": [
14931
],
"filters": [
3,
4
],
"draft": 0
}`)
req, err := http.NewRequest("POST", "https://api.5centscdn.com/v2/streams/push/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/push/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": "sample/stream",
"server": "11,211",
"codec": "h264",
"protocols": [
"HLS"
],
"domainlock": {
"enabled": "Y",
"policy": "Y",
"list": [
"test.com",
"google.com"
],
"noreferer": "N",
"ips": []
},
"geoblock": {
"enabled": "Y",
"policy": "Y",
"list": [],
"ips": []
},
"ipaccess": {
"enabled": "Y",
"policy": "N",
"list": [],
"ips": []
},
"ndvr": {
"enabled": "Y",
"retention": 5
},
"record": {
"server": 1,
"enabled": "Y",
"retention": 3
},
"securetoken": {
"enabled": "Y",
"policy": "D",
"list": "32862cdb6276e19a",
"ips": "",
"keyip": "N",
"session": "0",
"timeout": 3600,
"active": "Y"
},
"useragent": {
"enabled": "Y",
"policy": "Y",
"list": "",
"ips": "",
"casesensitive": "N",
"active": "N",
"listArr": [
""
]
},
"vprofiles": [
14931,
14937
],
"aprofiles": [
14931
],
"filters": [
3,
4
],
"draft": 0
}'
response = http.request(request)
puts response.body
{
"result": "success",
"message": "Stream Created",
"stream": {
"monitoring_id": null,
"type": "push",
"id": "monitor-12345",
"serviceid": 103,
"name": "sample/stream",
"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-04-30 07:12:35",
"updated_at": "2026-04-30 07:12:35",
"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"
}
}
},
"parts": {
"pp": "test",
"sn": "stream",
"full": "samplestream"
},
"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": {
"baseQ": "?showcv=true&title=sample/stream",
"base": "https://cdn.example.com/player/hls/skin1//",
"hls": "https://cdn.example.com/player/hls/skin1//aHR0cHM6Ly9zdHJlYW0uZXhhbXBsZS5jb20vc2FtcGxlL3N0cmVhbS9wbGF5bGlzdC5tM3U4?showcv=true&title=sample/stream",
"dash": "https://cdn.example.com/player/dash/skin1//aHR0cHM6Ly9zdHJlYW0uZXhhbXBsZS5jb20vc2FtcGxlL3N0cmVhbS9wbGF5bGlzdC5tM3U4?showcv=true&title=sample/stream"
}
},
"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=sample/stream",
"base": "https://cdn.example.com/player/hls/skin1//",
"hls": "https://cdn.example.com/player/hls/skin1//aHR0cHM6Ly9zdHJlYW0uZXhhbXBsZS5jb20vc2FtcGxlL3N0cmVhbS9wbGF5bGlzdC5tM3U4?showcv=true&title=sample/stream",
"dash": "https://cdn.example.com/player/dash/skin1//aHR0cHM6Ly9zdHJlYW0uZXhhbXBsZS5jb20vc2FtcGxlL3N0cmVhbS9wbGF5bGlzdC5tM3U4?showcv=true&title=sample/stream"
}
},
"path": {
"hls": "/test/a4c1f924c3f3377575755f900a6ea602.sdp/playlist_dvr.m3u8",
"dash": "/test/a4c1f924c3f3377575755f900a6ea602.sdp/manifest_dvr.mpd"
},
"token": {
"hls": "md5=35407AnGQdcg91jyMybBnQ&path=%2Ftest%2Fa4c1f924c3f3377575755f900a6ea602.sdp&expires=1777536769",
"dash": "md5=35407AnGQdcg91jyMybBnQ&path=%2Ftest%2Fa4c1f924c3f3377575755f900a6ea602.sdp&expires=1777536769"
}
}
},
"platformsCount": 0,
"ssl_enabled": true,
"hash": "a4c1f924c3f3377575755f900a6ea602.sdp",
"ndvr": {
"enabled": "Y",
"retention": "5"
},
"securetoken": {
"enabled": "Y",
"policy": "D",
"keyip": "N",
"list": "32862cdb6276e19a",
"timeout": 3600,
"session": "0",
"ips": "",
"dirs": null,
"active": "Y"
},
"transcode": {
"ltc": 0,
"type": "mixed",
"enabled": false,
"isEditable": true
},
"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": 72200,
"type": "record"
}
},
"rtmpauth": {
"password": "",
"active": "N"
},
"platforms": [],
"messages": {}
},
"warnings": null,
"errors": null
}
/streams/push/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.
The unique name of the stream. Must be 4 to 32 characters long and follow the format string(4,32)/string(4,32).
The server identifier for the streaming setup. Examples include 20 (Singapore), 2 (Europe), 211 (North America), 209 (Oceania).
Video codec for the stream. Use h264 or h265.
A list of supported streaming protocols. Examples include RTMP, RTSP, HLS, and DASH.
Settings for restricting stream access to specific domains.
Settings for restricting access based on geographic locations.
Settings for limiting or granting stream access based on IPs.
nDVR (network DVR) settings for the stream.
DVR recording settings for the stream.
Secure token settings for stream access control.
User agent access control settings.
An array of unique IDs representing video profiles for encoding.
An array of unique IDs representing audio profiles for encoding.
An array of unique IDs representing filters applied to the stream.
Indicates draft mode status. Use 0 for disabled and 1 for enabled.
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.
PUTThe unique name of the stream. Must be 4 to 32 characters long and follow the format string(4,32)/string(4,32).
sample/streamThe server identifier for the streaming setup. Examples include 20 (Singapore), 2 (Europe), 211 (North America), 209 (Oceania).
11,211A list of supported streaming protocols. Examples include RTMP, RTSP, HLS, and DASH.
["HLS"]Settings for restricting stream access to specific domains.
Indicates whether domain locking is enabled. Use Y for enable or N for disable.
YBlock requests with no referrer header. Y means blocked (requests with empty referer are blocked); N means allowed.
NSettings for restricting access based on geographic locations.
A list of countries to block or allow based on the policy. Examples include GB, US, FR, NG.
[]Settings for limiting or granting stream access based on IPs.
Indicates whether IP access control is enabled. Use Y for enable or N for disable.
YnDVR (network DVR) settings for the stream.
DVR recording settings for the stream.
Secure token settings for stream access control.
Session type. 1 means moving session (URL is valid when requested within Token Expiration time and subsequent request is made within the Token Expiration time), 0 means fixed session (URL is valid till Token Expiration).
0User agent access control settings.
Responses
Status of the API response.
Human-readable message describing the result.
Stream object containing configuration and status details.
Unique monitoring identifier for the stream.
Type identifier for this stream or object.
Unique numeric identifier.
Unique identifier of the service this stream belongs to.
Name of the stream.
Video codec used for the stream.
List of active ingest connection details for each server.
Supported streaming protocols for each server.
Identifier of the parent stream, if this is a child stream.
Server ID or identifier assigned to the stream.
Backup server ID for failover.
Whether a dedicated live transcoding server is allocated for this stream.
Whether advanced features are enabled for this stream.
Monitoring alert trigger configuration for the stream.
Draft status flag. 0 means published; 1 means unpublished draft.
Disabled flag. 0 means active; 1 means disabled.
Timestamp when the stream was created.
Timestamp when the stream was last updated.
Timestamp when the stream was last detected as active.
Deletion timestamp, or null if the stream is not deleted.
Whether the ingest endpoint list is locked from editing.
Whether the supported protocol list is locked from editing.
Current deployment or operational status of the stream.
Flags indicating which streaming protocols are active.
Whether RTMP streaming is enabled. 1 = enabled, 0 = disabled.
Whether RTSP streaming is enabled. 1 = enabled, 0 = disabled.
Whether HLS streaming is enabled. 1 = enabled, 0 = disabled.
Whether DASH streaming is enabled. 1 = enabled, 0 = disabled.
Whether RTMP publish authentication is required.
Flash Media Server ingest configuration for the stream.
Server ID or identifier assigned to the stream.
Geographic region of the ingest server.
Metadata object for the server.
RTMP ingest URL for the assigned FMS server.
Stream name components.
Stream name prefix (part 1, before the slash).
Stream name suffix (part 2, after the slash).
Combined full stream name without the slash separator.
Restream platform configuration object.
Playback URL set for all supported protocols and player types.
URL scheme used for playback.
Base CDN hostname URL used as a prefix for playback URLs.
RTMP playback or destination URL.
RTSP playback URL.
HLS manifest filename.
DASH manifest filename.
HLS playback or player iframe URL.
DASH playback or player iframe URL.
Embedded player iframe URL set for supported player types.
Flowplayer iframe URL information.
Query string appended to the player iframe URL.
Base player iframe URL without the stream path.
HLS playback or player iframe URL.
Video.js player iframe URL information.
Query string appended to the player iframe URL.
Base player iframe URL without the stream path.
HLS playback or player iframe URL.
Native stream player iframe URL information.
Query string appended to the player iframe URL.
Base player iframe URL without the stream path.
HLS playback or player iframe URL.
DASH playback or player iframe URL.
Tokenized playback URL configuration, or null if disabled.
URL scheme used for playback.
Base CDN hostname URL used as a prefix for playback URLs.
RTMP playback or destination URL.
RTSP playback URL.
HLS manifest filename.
DASH manifest filename.
HLS playback or player iframe URL.
DASH playback or player iframe URL.
Embedded player iframe URL set for supported player types.
CDN hostname used for playback.
Flowplayer iframe URL information.
Query string appended to the player iframe URL.
Base player iframe URL without the stream path.
HLS playback or player iframe URL.
DASH playback or player iframe URL.
Video.js player iframe URL information.
Query string appended to the player iframe URL.
Base player iframe URL without the stream path.
HLS playback or player iframe URL.
DASH playback or player iframe URL.
Native stream player iframe URL information.
Query string appended to the player iframe URL.
Base player iframe URL without the stream path.
HLS playback or player iframe URL.
DASH playback or player iframe URL.
HLS playback or player iframe URL.
DASH playback or player iframe URL.
HLS playback or player iframe URL.
DASH playback or player iframe URL.
Number of external restreaming platforms configured.
Whether HTTPS/SSL is enabled for playback.
Short hash or slug used in stream URLs.
Network DVR (nDVR) rewind configuration for the stream.
Enable or disable this feature.
Retention period in days (record) or minutes (nDVR).
Secure token URL signing configuration.
Enable or disable this feature.
Policy mode controlling allow/deny behavior.
Whether the token is bound to the viewer IP address.
Comma-separated list of allowed or blocked values.
Token expiry time in seconds.
Session-based token mode flag.
IP addresses associated with the access control policy.
URL directory paths restricted by this policy.
Whether this policy is currently enforced.
Live transcoding configuration for the stream.
Live transcoding server ID assigned to this stream.
Type identifier for this stream or object.
Enable or disable this feature.
Whether the transcoding configuration can be edited.
Domain lock (hotlink protection) configuration.
Enable or disable this feature.
Policy mode controlling allow/deny behavior.
Comma-separated list of allowed or blocked values.
IP addresses associated with the access control policy.
Whether to allow playback requests with no Referer header.
Whether this policy is currently enforced.
Geoblocking access control configuration.
Enable or disable this feature.
Policy mode controlling allow/deny behavior.
Comma-separated list of allowed or blocked values.
IP addresses associated with the access control policy.
Whether this policy is currently enforced.
IP address access control configuration.
Enable or disable this feature.
Policy mode controlling allow/deny behavior.
Comma-separated list of allowed or blocked values.
IP addresses associated with the access control policy.
Whether this policy is currently enforced.
User-agent based access control configuration.
Enable or disable this feature.
Policy mode controlling allow/deny behavior.
Comma-separated list of allowed or blocked values.
IP addresses associated with the access control policy.
Whether user-agent pattern matching is case-sensitive.
Whether this policy is currently enforced.
User-agent filter list as a parsed array.
Ad insertion configuration for the stream, or null if not configured.
Recording (DVR) configuration for the stream.
Enable or disable this feature.
Retention period in days (record) or minutes (nDVR).
Stream object containing configuration and status details.
Unique numeric identifier.
Type identifier for this stream or object.
Whether RTMP publish authentication is required.
Password for RTMP publish authentication.
Whether this policy is currently enforced.
List of configured external restreaming platform entries.
Informational messages related to the stream state.
Non-fatal warnings returned with the response.
Errors returned with the response.