Application Create
Creates a new streaming application.
Request
| Property | Value |
|---|---|
| Method | POST |
| URL | /api/applications |
| Content-Type | application/json |
| Authentication | Bearer Token |
Request
curl -X POST "{BASE_URL}/api/applications" \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{"key": "value"}'
Request Body
| Parameter | Type | Required | Description |
|---|---|---|---|
data.attributes.name | string | Yes | Application name (unique) |
data.attributes.type | "mono" | "origin" | "transcode" | "edge" | Yes | Application type |
Additional settings are passed as nested objects within data.attributes. Required settings depend on the application type:
| Setting | Description | MONO | ORIGIN | TRANSCODE | EDGE |
|---|---|---|---|---|---|
generalSettings | General application settings | ✓ | ✓ | ✓ | ✓ |
ingestSettings | Stream ingest configuration | ✓ | ✓ | - | - |
playbackSettings | Playback and viewer settings | ✓ | - | - | ✓ |
streamSecuritySettings | Token protection and domain access | ✓ | - | - | ✓ |
liveTranscodingSettings | Live transcoding presets | ✓ | ✓ | ✓ | - |
dvrSettings | DVR/time-shift settings | ✓ | - | - | ✓ |
recordingSettings | Recording configuration | ✓ | ✓ | - | ✓ |
streamKeyAliasSettings | Stream key alias discovery | ✓ | - | - | ✓ |
streamingClusterSettings | Cluster connection configuration | - | ✓ | ✓ | ✓ |
For detailed field descriptions of each settings section, see the corresponding update endpoint documentation.
Request Body (MONO)
{
"data": {
"attributes": {
"name": "live",
"type": "mono",
"generalSettings": {
"description": "Main live streaming application",
"broadcastLimit": 50,
"statInterval": 2,
"autoThumbnail": {
"enabled": true,
"interval": 10,
"thumbWidth": 100,
"thumbHeight": 100
}
},
"ingestSettings": {
"allowStreamIngest": true,
"autoStreamPublish": true,
"allowStreamOverwrite": false,
"authorizationEnabled": false
},
"playbackSettings": {
"totalViewerLimit": null,
"streamViewerLimit": 100,
"frameBufferSize": 5,
"harnessTypes": ["storm-hls", "storm-mse", "rtmp"]
},
"streamSecuritySettings": {
"tokenProtectionEnabled": true,
"hashAlgorithm": "sha256",
"tokenLifespan": 3600,
"secret": "my-secret-key",
"domainAccessRights": [
{ "type": "allow", "domain": "*" }
]
},
"liveTranscodingSettings": {
"enabled": true,
"enabledPresets": ["360p", "720p"]
},
"dvrSettings": {
"enabled": false,
"cacheSize": 100
},
"recordingSettings": {
"enabled": false
},
"streamKeyAliasSettings": {
"enabled": true,
"autoDiscovery": {
"enabled": true,
"requestURL": "https://api.example.com/alias/${streamKey}",
"xApiKey": "bd34ddawe34v51rxw6tbn",
"expireTime": 3600
}
}
}
}
}
Request Body (EDGE)
{
"data": {
"attributes": {
"name": "edge",
"type": "edge",
"generalSettings": {
"description": "Edge server",
"broadcastLimit": 50,
"statInterval": 2
},
"streamingClusterSettings": {
"nodeHostname": "edge.example.com",
"nodePort": 1935,
"nodeIsSSL": false,
"copyOnPublish": false,
"clusterManagers": [
{
"hostname": "supervisor.example.com",
"port": 8080,
"isSSL": false,
"priority": 1,
"secret": "cluster-secret"
}
]
},
"playbackSettings": {
"totalViewerLimit": null,
"streamViewerLimit": 100,
"frameBufferSize": 5,
"harnessTypes": ["storm-hls", "storm-mse", "rtmp"]
},
"streamSecuritySettings": {
"tokenProtectionEnabled": false,
"domainAccessRights": [
{ "type": "allow", "domain": "*" }
]
},
"dvrSettings": {
"enabled": false,
"cacheSize": 100
},
"recordingSettings": {
"enabled": false
},
"streamKeyAliasSettings": {
"enabled": false
}
}
}
}
Response Body
| Parameter | Type | Description |
|---|---|---|
data.name | string | Application name |
data.type | "MONO" | "ORIGIN" | "TRANSCODE" | "EDGE" | Application type |
message | string | Response status message |
Response includes all settings with editable and value properties. See the Application Settings endpoint for the full response structure.
Metadata
| Parameter | Type | Description |
|---|---|---|
meta.executionTime | integer | Request processing time in milliseconds |
meta.generatedAt | integer | Response generation timestamp (Unix timestamp in ms) |
Successful Response (201)
{
"data": {
"name": "mono",
"type": "MONO",
"generalSettings": {
"attributes": {
"description": { "editable": true, "value": "Main live streaming application" },
"broadcastLimit": { "editable": true, "value": 50 },
"statInterval": { "editable": true, "value": 2 },
"autoThumbnail": {
"enabled": { "editable": true, "value": true },
"interval": { "editable": true, "value": 10 },
"thumbWidth": { "editable": true, "value": 100 },
"thumbHeight": { "editable": true, "value": 100 }
}
}
},
"ingestSettings": { "attributes": { "..." : "..." } },
"playbackSettings": { "attributes": { "..." : "..." } },
"streamSecuritySettings": { "attributes": { "..." : "..." } },
"liveTranscodingSettings": { "attributes": { "..." : "..." } },
"dvrSettings": { "attributes": { "..." : "..." } },
"recordingSettings": { "attributes": { "..." : "..." } },
"streamKeyAliasSettings": { "attributes": { "..." : "..." } }
},
"meta": {
"executionTime": 143,
"generatedAt": 1766055804481
},
"message": "New application created successfully"
}
Error Response (4xx/5xx)
| Parameter | Type | Description |
|---|---|---|
message | string | Human-readable error message |
Application Name Already Exists (409)
{
"message": "Application name already exists: {appName}"
}
Error Response
{
"message": "Error message"
}
Support Needed?
Create a free ticket and our support team will provide you necessary assistance.