--- title: "Issue license (Widevine, PlayReady)" slug: "license-request" tags: ["Click Multi DRM", "Media"] updated: 2026-09-17T10:12:33Z published: 2026-09-17T10:12:33Z canonical: "api.ncloud-docs.com/license-request" --- > ## 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. # Issue license (Widevine, PlayReady) Available in Classic and VPC Issue a Widevine or PlayReady type DRM license. The DRM site must be enabled to issue licenses. Responses to API calls support two formats: Binary (ORIGINAL) and JSON, allowing you to choose the appropriate implementation. Note - All licenses issued through One Click Multi DRM are issued on the assumption that DRM packaging is ready. - All license requests must be made through the player implementation and the device information of the terminal on which the DRM content will be played. - For more information on integrating the Video Player Enhancement service, see [Authenticate VPE content](https://guide.ncloud-docs.com/docs/en/vpe-example-auth#one-click-multi-drm). Caution The One Click Multi DRM service supports token proxy issuance for DoveRunner (formerly PallyCon). For more information on token proxy issuance, see [Token Proxy Type License Issuance Flow](https://doverunner.com/docs/en/ko/content-security/multi-drm/license/license-token/#%ED%86%A0%ED%81%B0-%ED%94%84%EB%A1%9D%EC%8B%9C-%EB%B0%A9%EC%8B%9D-%EB%9D%BC%EC%9D%B4%EC%84%A0%EC%8A%A4-%EB%B0%9C%EA%B8%89-%EA%B3%BC%EC%A0%95). ## Request This section describes the request format. The method and URI are as follows: | Method | URI | | --- | --- | | POST | /api/v1/license | ### Request headers For information about the headers common to all One Click Multi DRM APIs, see [One Click Multi DRM request headers](/docs/en/one-click-multi-drm-api-overview#%EC%9A%94%EC%B2%AD%ED%97%A4%EB%8D%94). #### Create `X-DRM-TOKEN` header To issue a license via API in the One Click Multi DRM service, the `X-DRM-TOKEN` header is required. This header validates the requesting user's permissions and is used to issue a DRM license based on the security policy of the selected site. If the header value is invalid, the license will not be issued. The following describes how to create the `X-DRM-TOKEN` header. 1. Enter the JSON data for `siteId`, `contentId`, `drmType`, `responseFormat`, and `userId`. | Field | Type | Required | Description | | --- | --- | --- | --- | | | `siteId` | String | Required | | | `contentId` | String | Required | | | `drmType` | String | Required | | | `responseFormat` | String | Required | | | `userId` | String | Required | - Input example ``` {"siteId":"{Site ID}","contentId":"{Content ID}","drmType":"{DRM type}","responseFormat":"{Response format}","userId":"{Unique user ID}"} ``` 2. Convert the JSON data into a Base64 string. - Conversion example ``` eyJzaXRlSWQiOiJkcm0tMjAyMzExMTUxNDIzMjYtbkh5TnciLCJjb250ZW50SW...dXNlcklkIjoiZDQxZDhjZDk4ZjAwYjIwNGU5ODAwOTk4ZWNmODQyN2UifQ== ``` Note Make sure to avoid including unnecessary spaces or line breaks when entering JSON data. #### Request example The request example is as follows: ``` curl --location --request POST 'https://multi-drm.apigw.ntruss.com/api/v1/license' \ --header 'x-ncp-apigw-timestamp: {Timestamp}' \ --header 'x-ncp-iam-access-key: {Access Key}' \ --header 'x-ncp-apigw-signature-v2: {API Gateway Signature}' \ --header 'Content-Type: application/json' \ --header 'x-ncp-region_code: KR' \ --header 'x-drm-token: {X-DRM-TOKEN}' ``` ## Response This section describes the response format. Note The ORIGINAL type request returns a binary data response. This guide provides instructions based on the JSON type response. ### Response body The response body includes the following data: | Field | Type | Required | Description | | --- | --- | --- | --- | | `license` | String | - | License JSON data | | `licenseCreatedTime` | Integer | - | License issuance date and time (millisecond) - Unix timestamp format | | `tokenCreatedTime` | Integer | - | Header token creation date and time (millisecond) - Unix timestamp format | | `tokenExpireTime` | Integer | - | Header token expiration date and time (millisecond) - Unix timestamp format | ### Response status codes For information about the HTTP status codes common to all One Click Multi DRM APIs, see [One Click Multi DRM response status codes](/docs/en/one-click-multi-drm-api-overview#%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: ``` { "license": "080512BF050AB9020803121044E0A85CB19D0441AC6C66B3D6ABBCC218E39FC48D06228E023082010A0282010100B2FB0D937113004C0F805C6C57DE7B266E2B5E2FE12241FF1421ED55DE2C3F73F62891D7587A8ED153F4009D9522C3609A5DC3C4E43891F8F2D7B448B36E8B77AD96DC795795706D4289F8E61FBDF564AB57E5A5EDDB64FC4EA689...A0F9B8E352FA91B52EC19593F215BCEB2E8401CCC9757C48793C9AB4904B93C7D326BFFBB5E24CDBF297599FB22724C95C9D40D44455586B188A6D10658BEBE5F6CE812FABB8CA58282B5D28176D5DFF3B358692CC4FC6895A06C0B90A192D65F69AE07415DCEF6E54A677D5C769BA6E9CC24E2B968BC3E6E4D4E099E446D9F7E38740DBB708023E6D35D99F1B10", "licenseCreatedTime": 1700476438204, "tokenCreatedTime": 1700476438107, "tokenExpireTime": 1700477038107 } ```