# Add a new ADCS server configuration for AD Certificate payload Save the ADCS Server details **Endpoint:** `POST /api/v1/mdm/adcs/servers` ## Request URL `https://{server-hostname}:8383/api/v1/mdm/adcs/servers` ## Scope `MDMDeviceMgmt.CREATE` ## Header `Authorization: d92d4xxxxxxxxxxxxx15f52` ## Request Parameters ### Request Headers - **Content-Type** `string` **Mandatory**: `application/json` - **Accept** `string` **Mandatory**: `application/json` ### Request Body `application/json` JSON Object - **ad_config_name** `string` **Mandatory** - Name of the ADCS configuration. Must be unique across the organization - **cert_server_address** `string` **Mandatory** - URL of the ADCS server (e.g., [http://adcs.zylker.com/certsrv/)](https://adcs.zylker.com/certsrv/\)) - **cert_authority** `string` **Mandatory** - Common Name (CN) of the Certificate Authority (e.g., `CN=ZylkerCA-SERVER-CA`) - **cert_template_name** `string` **Mandatory** - Template name of the certificate configured in the ADCS server - **description** `string` **Optional** - Description of the ADCS server configuration. Defaults to `'--'` if not provided - **cert_exp_notify_thread** `integer` **Optional** - Number of days before certificate expiry to notify. Defaults to 14 if not provided - **rsa_key_size** `integer` **Optional** - RSA key size for the certificate. Allowed values: 0 (1024), 1 (2048), 2 (4096). Defaults to 1 (2048) if not provided - **auto_renew_enabled** `boolean` **Optional** - Whether auto-renewal is enabled for the certificate. Defaults to false if not provided - **allow_all_apps_to_access** `boolean` **Optional** - Whether all apps can access the certificate. Defaults to false if not provided - **is_key_extractable** `boolean` **Optional** - Whether the private key is extractable. Defaults to false if not provided ## Sample Request ### Curl ```curl curl --request POST \ --url https://appdomain/api/v1/mdm/adcs/servers \ --header 'Accept: application/json' \ --header 'Authorization: d92d4xxxxxxxxxxxxx15f52' \ --header 'Content-Type: application/json' \ --data '{"ad_config_name":"computer_1","cert_authority":"CN=zylker-SERVER-CA2","auto_renew_enabled":true,"cert_exp_notify_thread":14,"is_key_extractable":false,"allow_all_apps_to_access":true,"description":"ADCS server for computer certificates","cert_template_name":"computer_1","cert_server_address":"http://cert.zylker.com/certsrv/","rsa_key_size":1}' ``` ## Sample Request Body Add a new ADCS server configuration ```json { "ad_config_name": "computer_1", "cert_authority": "CN=zylker-SERVER-CA2", "auto_renew_enabled": true, "cert_exp_notify_thread": 14, "is_key_extractable": false, "allow_all_apps_to_access": true, "description": "ADCS server for computer certificates", "cert_template_name": "computer_1", "cert_server_address": "http://cert.zylker.com/certsrv/", "rsa_key_size": 1 } ``` ## Response Parameters ### HTTP Code 200 Response Body — `application/json` JSON Object - **ad_config_id** `long` - Unique identifier of the newly created ADCS configuration - **ad_config_name** `string` - Name of the ADCS configuration - **cert_server_address** `string` - URL of the ADCS server - **cert_authority** `string` - Common Name (CN) of the Certificate Authority - **cert_template_name** `string` - Template name of the certificate - **description** `string` - Description of the ADCS server configuration - **cert_exp_notify_thread** `integer` - Number of days before certificate expiry to notify - **rsa_key_size** `integer` - RSA key size for the certificate. 0 = 1024, 1 = 2048, 2 = 4096 - **auto_renew_enabled** `boolean` - Whether auto-renewal is enabled - **allow_all_apps_to_access** `boolean` - Whether all apps can access the certificate ### HTTP Code 400 Response Body — `application/json` JSON Object - **error_code** `string` - Error code: `ADCS0001` — ADCS configuration name already exists - **error_description** `string` - Human-readable error description - **localized_error_description** `string` - Localized error description for display ## Possible Response Codes - `200` HTTP code - `400` HTTP code ## Sample Response: HTTP 200 ADCS server configuration successfully added ```json { "ad_config_name": "computer_1", "cert_authority": "CN=zylker-SERVER-CA2", "auto_renew_enabled": true, "cert_exp_notify_thread": 14, "allow_all_apps_to_access": true, "description": "ADCS server for computer certificates", "cert_template_name": "computer_1", "cert_server_address": "http://cert.zylker.com/certsrv/", "ad_config_id": 9007199254744896, "rsa_key_size": 1 } ``` ## Sample Response: HTTP 400 ADCS configuration name already exists ```json { "error_description": "ADCS configuration name already exists.", "error_code": "ADCS0001", "localized_error_description": "ADCS configuration name already exists." } ``` ![ ](https://www.zohowebstatic.com/sites/zweb/images/people/ico-help.png) **Duration:** 1 minute | **Threshold:** 30 | **Lock period:** 5 minutes Duration - Time window for the threshold. Threshold - Number of API calls allowed within the specified duration. Lock Period - Wait time before consecutive API requests.