--- title: "Start recording" slug: "media-livestation-recording-recordingstart" tags: ["Live Station"] updated: 2026-09-17T10:12:40Z published: 2026-09-17T10:12:40Z canonical: "api.ncloud-docs.com/media-livestation-recording-recordingstart" --- > ## 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. # Start recording Available in Classic and VPC Start video recording of a live channel. It can be started only for channels with the `PUBLISHING` status. ## Request This section describes the request format. The method and URI are as follows: | Method | URI | | --- | --- | | PUT | /api/v2/channels/{channelId}/startRecord | ### 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 PUT 'https://livestation.apigw.ntruss.com/api/v2/channels/ls-20250814******-PZohi/startRecord' \ --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' ``` ## Response This section describes the response format. ### Response body The response body includes the following data: | Field | Type | Required | Description | | --- | --- | --- | --- | | `content` | Object | - | Response result | | `content.recordList` | Object | - | Recording file list | | `content.recordList.{recordId}` | Object | - | Recording file information - `{recordId}`: Recording file ID | | `content.recordList.{recordId}.recordType` | String | - | Recording file type - `MP4` \| `HLS` | | `content.recordList.{recordId}.channelId` | String | - | Channel ID | | `content.recordList.{recordId}.status` | String | - | File status - `RECORDING` \| `PROCESSING` \| `PROCESSING_FAIL` \| `TRANSFER_READY` \| `TRANSFER` \| `TRANSFER_FINISH` \| `TRANSFER_FAIL` \| `DELETED` - `RECORDING`: Recording - `PROCESSING`: Processing - `PROCESSING_FAIL`: Processing failed - `TRANSFER_READY`: Transfer pending - `TRANSFER`: Transferring - `TRANSFER_FINISH`: Transfer completed - `TRANSFER_FAIL`: Transfer failed - `DELETED`: Deleted | | `content.recordList.{recordId}.recordSeq` | Integer | - | Recording file sequence number | | `content.recordList.{recordId}.streamSeq` | Integer | - | Stream sequence number | | `content.recordList.{recordId}.recordBeginTime` | Integer | - | Recording start date and time (millisecond) - Unix timestamp format | | `content.recordList.{recordId}.createdTime` | Integer | - | Recording file creation date and time (millisecond) - Unix timestamp format | | `content.recordList.{recordId}.resolution` | String | - | Resolution - `{Width}x{Height}` format | | `content.recordList.{recordId}.fileName` | String | - | File name | | `content.recordList.{recordId}.videoBitrate` | Integer | - | Video stream's bitrate (bps) | | `content.recordList.{recordId}.audioBitrate` | Integer | - | Audio stream's bitrate (bps) | | `content.recordList.{recordId}.videoFrameRate` | Float | - | Number of frames per second (fps) | | `content.recordList.{recordId}.audioCodec` | String | - | Audio codec | | `content.recordList.{recordId}.objectStorageUrl` | String | - | Recording URL - If it hasn't been uploaded to the Object Storage bucket, `-` is displayed. | | `total` | Integer | - | Total number of recording files | ### 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": { "recordList": { "270****": { "recordType": "MP4", "channelId": "ls-20250814******-PZohi", "status": "RECORDING", "recordSeq": 1307133, "streamSeq": 361545, "recordBeginTime": 1755498175000, "createdTime": 1755498175000, "fileName": "361545-1307133-20250818****.mp4", "objectStorageUrl": "-" }, "270****": { "recordType": "HLS", "channelId": "ls-20250814******-PZohi", "status": "RECORDING", "recordSeq": 1307133, "streamSeq": 361545, "recordBeginTime": 1755498175000, "createdTime": 1755498175000, "resolution": "720x1280", "fileName": "720p-9-16/playlist.m3u8", "videoBitrate": 2500000, "audioBitrate": 128000, "videoFrameRate": 30.0, "audioCodec": "AAC", "objectStorageUrl": "-" }, "270****": { "recordType": "HLS", "channelId": "ls-20250814******-PZohi", "status": "RECORDING", "recordSeq": 1307133, "streamSeq": 361545, "recordBeginTime": 1755498175000, "createdTime": 1755498175000, "resolution": "1920x1080", "fileName": "quality000/playlist.m3u8", "videoBitrate": 8960000, "audioBitrate": 320000, "videoFrameRate": 60.0, "audioCodec": "AAC", "objectStorageUrl": "-" } } }, "total": 3 } ```