--- title: "Terminate channel" slug: "media-livestation-channel-channeldelete" tags: ["Live Station"] updated: 2026-09-17T10:12:40Z published: 2026-09-17T10:12:40Z canonical: "api.ncloud-docs.com/media-livestation-channel-channeldelete" --- > ## Documentation Index > Fetch the complete documentation index at: https://api.ncloud-docs.com/llms.txt > Use this file to discover all available pages before exploring further. # Terminate channel Available in Classic and VPC Terminate a live channel. Only channels with the `READY` status can be terminated. Caution Note the following when terminating channels. - To terminate a channel that is in the process of broadcast streaming (`PUBLISHING`), end the broadcast streaming before terminating it. - When terminating a channel, created snapshots will also be deleted in their entirety. - Even if you terminate a channel, the CDN that was integrated with it is maintained. Delete unused CDNs to avoid unnecessary charges. ## Request This section describes the request format. The method and URI are as follows: | Method | URI | | --- | --- | | DELETE | /api/v2/channels/{channelId} | ### Request headers For information about the headers common to all Live Station APIs, see [Live Station request headers](/docs/en/media-livestation#%EC%9A%94%EC%B2%AD%ED%97%A4%EB%8D%94). ### Request path parameters You can use the following path parameters with your request: | Field | Type | Required | Description | | --- | --- | --- | --- | | `channelId` | String | Required | Channel ID - See [Get channel list](/docs/en/media-livestation-channel-channellist). | ### Request example The request example is as follows: ``` curl --location --request DELETE 'https://livestation.apigw.ntruss.com/api/v2/channels/ls-20250818******-UbUBe' \ --header 'x-ncp-apigw-timestamp: {Timestamp}' \ --header 'x-ncp-iam-access-key: {Access Key}' \ --header 'x-ncp-apigw-signature-v2: {API Gateway Signature}' \ --header 'x-ncp-region_code: KR' \ --header 'Content-Type: application/json' ``` ## Response This section describes the response format. ### Response body The response body includes the following data: | Field | Type | Required | Description | | --- | --- | --- | --- | | `content` | Object | - | Channel information | | `content.channelId` | String | - | Channel ID | | `content.channelName` | String | - | Channel name | | `content.instanceNo` | Integer | - | Channel instance number | | `content.qualitySetId` | Integer | - | Image quality setting ID | | `content.qualitySetName` | String | - | Image quality setting name | | `content.outputProtocol` | String | - | Output Protocol | | `content.channelStatus` | String | - | Channel status - `CREATING` \| `READY` \| `PUBLISHING` \| `DELETED` \| `BLOCK` \| `FORCE_BLOCK` \| `FORCE_DELETED` - `CREATING`: Creating - `READY`: Ready - `PUBLISHING`: Streaming - `DELETED`: Terminated - `BLOCK`: Stopped - `FORCE_BLOCK`: Force stopped - `FORCE_DELETED`: Unavailable | | `content.isRecording` | Boolean | - | Recording status - `true` \| `false` - `true`: Recording - `false`: Not recording | | `content.useDVR` | Boolean | - | Time machine settings - `true` \| `false` - `true`: Enable - `false`: Disable | | `content.immediateOnAir` | Boolean | - | Whether to set up auto-recording immediately upon streaming - `true` \| `false` - `true`: Automatic - `false`: Manual | | `content.timemachineMin` | Integer | - | Time Machine allowance (minute) | | `content.cdn` | Object | - | Set up CDN. | | `content.cdn.instanceNo` | String | - | CDN instance ID | | `content.cdn.serviceName` | String | - | CDN service name | | `content.cdn.statusName` | String | - | CDN status - `RUNNING` \| `PUBLISHING` \| `STOPPING` \| `STOPPED` \| `CREATING` \| `CHANGING` \| `CDN_NOT_FOUND` - `RUNNING`: Running - `PUBLISHING`: Deploying - `STOPPING`: Stopping - `STOPPED`: Stopped - `CREATING`: Creating - `CHANGING`: Changing - `CDN_NOT_FOUND`: CDN not found | | `content.cdn.cdnType` | String | - | CDN type - `GLOBAL_CDN` \| `GLOBAL_EDGE` | | `content.cdn.cdnDomain` | String | - | CDN service domain | | `content.cdn.profileId` | Integer | - | Global Edge profile ID | | `content.cdn.regionType` | String | - | Global Edge Service Region | | `content.streamKey` | String | - | Main stream key | | `content.publishUrl` | String | - | Default transmission URL | | `content.globalPublishUrl` | String | - | Overseas streaming URL | | `content.totalPublishSeconds` | Integer | - | Channel usage time (second) | | `content.createdTime` | Integer | - | Channel creation date and time (millisecond) - Unix timestamp format | | `content.alertOn` | Boolean | - | Event notification settings - `true` \| `false` - `true`: Enable - `false`: Disable | | `content.recentPublishStartTime` | Integer | - | Latest streaming start date and time (millisecond) - Unix timestamp format - Not displayed if it is before the first streaming | | `content.alertOptions` | Object | - | Set event notifications. | | `content.alertOptions.alertChangeStatus` | Boolean | - | Channel status change notification application - `true` \| `false` - `true`: Apply - `false`: Not apply | | `content.alertOptions.alertVodUploadFail` | Boolean | - | Recording file upload failure notification application - `true` \| `false` - `true`: Apply - `false`: Not apply | | `content.alertOptions.alertReStreamFail` | Boolean | - | Re-stream relay failure notification application - `true` \| `false` - `true`: Apply - `false`: Not apply | | `content.alertOptions.reStreamFailThreshold` | Integer | - | Notification condition (base count) | | `content.alertOptions.alertStreamFailOver` | Boolean | - | Main stream switch notification application - `true` \| `false` - `true`: Apply - `false`: Not apply | | `content.callbackEndpoint` | String | - | Callback endpoint URL - Displayed if a valid value exists | | `content.envType` | String | - | Channel type - `DEV` \| `STAGE` \| `REAL` | | `content.uploadPath` | String | - | Recording file upload path - Display if `content.record.type` is `AUTO_UPLOAD`. | | `content.record` | Object | - | Recording storage information | | `content.record.type` | String | - | Recording storage settings - `NO_RECORD` \| `AUTO_UPLOAD` \| `MANUAL_UPLOAD` - `NO_RECORD`: No recording - `AUTO_UPLOAD`: Save automatically - `MANUAL_UPLOAD`: Save temporarily | | `content.record.bucketName` | String | - | Recording file storage bucket name - Display if `content.record.type` is `AUTO_UPLOAD`. | | `content.record.filePath` | String | - | Storage detailed path - Display if `content.record.type` is `AUTO_UPLOAD`. | | `content.record.format` | String | - | Automatic save recording type - `MP4` \| `HLS` \| `ALL` | | `content.record.accessControl` | String | - | Recording file storage bucket disclosure scope - `PRIVATE` \| `PUBLIC_READ` - `PRIVATE`: Private - `PUBLIC_READ`: Public - Display if `content.record.type` is `AUTO_UPLOAD`. | | `content.origin` | Object | - | Source information | | `content.origin.originDomain` | String | - | Origin domain | | `content.origin.originPath` | String | - | Origin path | | `content.backupStreamKey` | String | - | Backup stream key - Displayed when setting up streaming redundancy | | `content.isStreamFailOver` | Boolean | - | Streaming redundancy settings - `true` \| `false` - `true`: Enable - `false`: Disable | | `content.drmEnabledYn` | Boolean | - | Multi DRM usage - `true` \| `false` - `true`: Enable - `false`: Disable | | `content.drm` | Object | - | Multi DRM settings - If `content.drmEnabledYn` is `true`, display sub-information. | | `content.drm.siteId` | String | - | Site ID | | `content.drm.contentId` | String | - | Content ID | ### Response status codes For information about the HTTP status codes common to all Live Station APIs, see [Live Station response status codes](/docs/en/media-livestation#%EC%9D%91%EB%8B%B5%EC%83%81%ED%83%9C%EC%BD%94%EB%93%9C). ### Response example The response example is as follows: ``` { "content": { "channelId": "ls-20250818******-UbUBe", "channelName": "testchannel", "instanceNo": 10******7, "qualitySetId": 2585, "qualitySetName": "ll-1080p-set", "outputProtocol": "LL_HLS", "channelStatus": "DELETED", "isRecording": false, "useDVR": true, "immediateOnAir": true, "timemachineMin": 360, "cdn": { "instanceNo": "11612", "serviceName": "edge-ls-20250818******-UbUBe", "statusName": "RUNNING", "cdnType": "GLOBAL_EDGE", "cdnDomain": "*************.edge.naverncp.com", "profileId": 4207, "regionType": "KOREA" }, "streamKey": "hb*****************************1", "publishUrl": "rtmp://***********.video.media.ntruss.com:8080/relay", "globalPublishUrl": "rtmp://***************.video.media.ntruss.com:8080/relay", "totalPublishSeconds": 0, "createdTime": 1755494883000, "alertOn": false, "alertOptions": { "alertChangeStatus": false, "alertVodUploadFail": false, "alertReStreamFail": false, "alertStreamFailOver": false }, "callbackEndpoint": "https://www.example.com", "envType": "STAGE", "record": { "type": "MANUAL_UPLOAD", "bucketName": "mybucket", "filePath": "/livestation", "format": "MP4", "accessControl": "PRIVATE" }, "origin": { "originDomain": "*****.video.media.ntruss.com", "originPath": "2*****5" }, "backupStreamKey": "hb*****************************************e", "isStreamFailOver": true, "drmEnabledYn": false } } ```