--- title: "Register callback endpoint (live)" slug: "media-livestation-event-callbacksetting-live" updated: 2026-09-17T10:12:36Z published: 2026-09-17T10:12:36Z canonical: "api.ncloud-docs.com/media-livestation-event-callbacksetting-live" --- > ## 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. # Register callback endpoint (live) Available in Classic and VPC Register callback endpoint that will receive event notifications for a live channel. Note For information on callback delivery data and delivery actions, see [Register callback endpoint](/docs/en/media-livestation-event-callbacksetting). ## Request This section describes the request format. The method and URI are as follows: | Method | URI | | --- | --- | | POST | /api/v2/channels/{channelId}/callbackEndpoint | ### 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 body You can include the following data in the body of your request: | Field | Type | Required | Description | | --- | --- | --- | --- | | `callbackEndpoint` | String | Required | Callback endpoint URL | ### Request example The request example is as follows: ``` curl --location --request POST 'https://livestation.apigw.ntruss.com/api/v2/channels/ls-20250820******-PyysO/callbackEndpoint' \ --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' \ --data '{ "callbackEndpoint": "https://www.callback-endpoint.com" }' ``` ## 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` | | `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 | | `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.snapshot` | Object | - | Snapshot information - Displayed only if a snapshot is created during streaming | | `content.snapshot.snapshotId` | Integer | - | Snapshot ID | | `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 | | `isPublishingBackUp` | Boolean | - | Backup streaming source activation - `true` \| `false` - `true`: Backup streaming enabled - `false`: Backup streaming disabled | ### 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-20250820******-PyysO", "channelName": "testchannelname", "instanceNo": 10******7, "qualitySetId": 3, "qualitySetName": "1080p-set", "outputProtocol": "HLS", "channelStatus": "READY", "isRecording": false, "useDVR": true, "immediateOnAir": false, "timemachineMin": 360, "cdn": { "instanceNo": "11618", "serviceName": "edge-ls-20250818******-KRXat", "statusName": "RUNNING", "cdnType": "GLOBAL_EDGE", "cdnDomain": "**************.edge.naverncp.com", "profileId": 4210, "regionType": "KOREA" }, "streamKey": "ix*****************************u", "publishUrl": "rtmp://***********.video.media.ntruss.com:8080/relay", "globalPublishUrl": "rtmp://***************.video.media.ntruss.com:8080/relay", "totalPublishSeconds": 5617, "createdTime": 1755652518000, "alertOn": false, "recentPublishStartTime": 1755652719000, "alertOptions": { "alertChangeStatus": false, "alertVodUploadFail": false, "alertReStreamFail": false, "alertStreamFailOver": false }, "callbackEndpoint": "https://www.callback-endpoint.com", "envType": "REAL", "record": { "type": "MANUAL_UPLOAD", "accessControl": "PRIVATE" }, "origin": { "originDomain": "*****.video.media.ntruss.com", "originPath": "2*****5" }, "isStreamFailOver": false, "drmEnabledYn": true, "drm": { "siteId": "drm-20250814******-gJMis", "contentId": "my-Test-Multidrm" } "isPublishingBackUp": true } } ```