--- title: "Issue license (FairPlay)" slug: "fairplay-streaming-license-request" tags: ["Click Multi DRM", "Media"] updated: 2026-09-17T10:12:33Z published: 2026-09-17T10:12:33Z canonical: "api.ncloud-docs.com/fairplay-streaming-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 (FairPlay) Available in Classic and VPC Issue a FairPlay Streaming type DRM license. To issue a license, the DRM site must be enabled and FairPlay Streaming credentials must be registered. Responses to API calls support two formats: binary (ORIGINAL) and JSON, allowing you to choose the appropriate implementation. To issue a license, follow these steps in order. [1. Request license issuance](/docs/en/fairplay-streaming-license-request#1%EB%9D%BC%EC%9D%B4%EC%84%A0%EC%8A%A4%EB%B0%9C%EA%B8%89%EC%9A%94%EC%B2%AD)(`POST /api/v1/license`) [2. Request FPS license issuance](/docs/en/fairplay-streaming-license-request#2FPS%EC%9D%B8%EC%A6%9D%EC%84%9C%EB%B0%9C%EA%B8%89%EC%9A%94%EC%B2%AD)(`GET /api/v1/license/fairPlay`) Note - If you have not yet registered your authentication information, you can register it via [Edit site](/docs/en/site-update). - 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 does not support issuing new FairPlay Streaming certificates. FPS certificates must be obtained directly from Apple. For more information, see [Register FairPlay Streaming certificate](https://doverunner.com/docs/en/ko/content-security/multi-drm/license/fps-cert-tutorial/). - FairPlay Streaming certificates uploaded to the One Click Multi DRM service do not support validity validation. ## 1. Request license issuance This section describes how to request the issuance of a license. ### 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": "080512BF050AB9020803121044E0A85CB19D0441AC6C66B3D6ABBCC218E39FC48D06228E023082010A0282010100B2FB0D937113004C0F805C6C57DE7B266E2B5E2FE12241FF1421ED55DE2C3F73F62891D7587A8ED153F4009D9522C3609A5DC3C4E43891F8F2D7B448B36E8B77AD96DC795795706D4289F8E61FBDF564AB57E5A5EDDB64FC4EA68...D2A0F9B8E352FA91B52EC19593F215BCEB2E8401CCC9757C48793C9AB4904B93C7D326BFFBB5E24CDBF297599FB22724C95C9D40D44455586B188A6D10658BEBE5F6CE812FABB8CA58282B5D28176D5DFF3B358692CC4FC6895A06C0B90A192D65F69AE07415DCEF6E54A677D5C769BA6E9CC24E2B968BC3E6E4D4E099E446D9F7E38740DBB708023E6D35D99F1B10", "licenseCreatedTime": 1700476438204, "tokenCreatedTime": 1700476438107, "tokenExpireTime": 1700477038107 } ``` ## 2. Request FPS license issuance This section describes how to request the issuance of a FPS license. ### Request This section describes the request format. The method and URI are as follows: | Method | URI | | --- | --- | | GET | /api/v1/license/fairPlay (JSON type certificate request) | | GET | /api/v1/license/fairPlayBinary (binary type certificate request) | #### 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). - For more information on creating the required `X-DRM-TOKEN` header, see [Create X-DRM-TOKEN header](/docs/en/fairplay-streaming-license-request#XDRMTOKEN%ED%97%A4%EB%8D%94%EC%83%9D%EC%84%B1). #### Request example The request example is as follows: ``` curl --location --request GET 'https://multi-drm.apigw.ntruss.com/api/v1/license/fairPlay' \ --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": "080512BF050AB9020803121044E0A85CB19D0441AC6C66B3D6ABBCC218E39FC48D06228E023082010A0282010100B2FB0D937113004C0F805C6C57DE7B266E2B5E2FE12241FF1421ED55DE2C3F73F62891D7587A8ED153F4009D9522C3609A5DC3C4E43891F8F2D7B448B36E8B77AD96DC795795706D4289F8E61FBDF564AB57E5A5EDDB64FC4EA6891C793B...0F9B8E352FA91B52EC19593F215BCEB2E8401CCC9757C48793C9AB4904B93C7D326BFFBB5E24CDBF297599FB22724C95C9D40D44455586B188A6D10658BEBE5F6CE812FABB8CA58282B5D28176D5DFF3B358692CC4FC6895A06C0B90A192D65F69AE07415DCEF6E54A677D5C769BA6E9CC24E2B968BC3E6E4D4E099E446D9F7E38740DBB708023E6D35D99F1B10", "licenseCreatedTime": 1700476438204, "tokenCreatedTime": 1700476438107, "tokenExpireTime": 1700477038107 } ```