# Create a new compliance profile Creates a new compliance profile with the specified rules. ## Endpoints `POST /bsp/api/v1/bmp/compliance/profiles` ## Request URL `https://{serverurl}/bsp/api/v1/bmp/compliance/profiles` ## Scope `DesktopCentralCloud.BrowserManager.CREATE` ## Header `Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52` ## Request Parameters ### Request Headers - **Content-Type** `string` — **Mandatory** — `application/json` - **Accept** `string` — **Mandatory** — `application/json` ### Request Body `application/json` - `JSON Object` - **profile_name** `string` — Optional Name of the compliance profile. Maximum 50 characters. - **profile_description** `string` — Optional Description of the compliance profile. Maximum 100 characters. - **rule_ids** `array` — Optional Compliance rule IDs from [List All Compliance Rules](https://www.manageengine.com/products/desktop-central/help/api/cloud/compliance-list-all-compliance-rules.html) response (`rule_id` field) to attach to the profile. Accepts 1 to 50 rule IDs. ### Sample Request ```curl curl --request POST \ --url https://appdomains/bsp/api/v1/bmp/compliance/profiles \ --header 'Accept: application/json' \ --header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52' \ --header 'Content-Type: application/json' \ --data '{}' ``` ### Sample Request Body Create baseline profile with rule IDs from [List All Compliance Rules](https://www.manageengine.com/products/desktop-central/help/api/cloud/Compliance_listAllComplianceRules) response (`rule_id` field) ```json { "profile_name": "Chrome Security Baseline", "rule_ids": [ 351, 357, 362, 367 ], "profile_description": "Baseline compliance for Chrome browsers" } ``` ## Response Parameters ### HTTP Code 200 Response Body — `application/json` - `JSON Object` - **profile_collection_status** `string` Collection status of the profile. 1 indicates active - **profile_type** `string` Profile type code. 64500=Custom - **last_modified_by** `string` User ID of the last modifier - **profile_description** `string` Description of the compliance profile - **created_by** `string` User ID of the profile creator - **collection_id** `string` Collection ID associated with this profile version - **profile_name** `string` Name of the compliance profile - **rule_ids** `array` Compliance rule IDs from [List All Compliance Rules](https://www.manageengine.com/products/desktop-central/help/api/cloud/compliance-list-all-compliance-rules.html) response (`rule_id` field) attached to this profile - **user_id** `string` ID of the user who performed the operation - **profile_id** `string` Unique identifier of the compliance profile - **scope** `string` Scope of the profile. 0 indicates organization-wide - **customer_id** `string` Customer ID associated with this profile - **compliance_id** `string` Internal compliance ID associated with this profile - **security_type** `string` Security type indicator. -1 indicates default ### HTTP Code 400 Response Body — `application/json` - `JSON Object` - **errorCode** `string` Error code indicating a required parameter is missing or invalid - **errorMsg** `string` Message specifying which parameter failed validation - **url** `string` Request URL that triggered the error ### HTTP Code 401 Response Body — `application/json` - `JSON Object` - **errorCode** `long` Unauthorized error code: credentials missing, expired, or invalid - **errorMsg** `string` Authentication failure reason ### HTTP Code 403 Response Body — `application/json` - `JSON Object` - **errorCode** `long` Error code indicating insufficient permissions - **errorMsg** `string` Message indicating insufficient privileges to access this resource ### HTTP Code 429 Response Body — `application/json` - `JSON Object` - **errorCode** `long` Rate limit error code returned when the API call reached threshold - **errorMsg** `string` Rate limit exceeded message with retry guidance ### HTTP Code 500 Response Body — `application/json` - `JSON Object` - **error_description** `string` Message describing the server-side failure - **error_code** `string` Internal server error code ## Possible Response Codes - `200` — HTTP code - `400` — HTTP code - `401` — HTTP code - `403` — HTTP code - `429` — HTTP code - `500` — HTTP code ## Sample Responses ### HTTP 200 Profile created ```json { "profile_collection_status": "1", "profile_type": "64500", "last_modified_by": "1", "profile_description": "Baseline compliance for Chrome browsers", "created_by": "1", "collection_id": "222", "profile_name": "Chrome Security Baseline", "rule_ids": [ 351, 357, 362, 367 ], "user_id": "1", "profile_id": "111", "scope": "0", "customer_id": "1", "compliance_id": "301", "security_type": "-1" } ``` ### HTTP 400 Invalid request body ```json { "errorCode": "IAM0021", "url": "/bsp/api/v1/bmp/compliance/profiles", "errorMsg": "The number of times the parameter profile_name used is below the minimum requirement." } ``` ### HTTP 401 Unauthorized ```json { "errorCode": "UNAUTHORIZED", "errorMsg": "You are not authorized to perform this action" } ``` ### HTTP 403 Forbidden ```json { "errorCode": "FORBIDDEN", "errorMsg": "You do not have permission to access this resource" } ``` ### HTTP 429 Rate limit exceeded ```json { "errorCode": "RATE_LIMIT_EXCEEDED", "errorMsg": "You have exceeded the maximum number of API calls. Please try again later." } ``` ### HTTP 500 Server error ```json { "error_description": "Internal Server error, Please try again in a moment.", "error_code": "COM0004" } ``` ## Rate Limits ![](https://www.zohowebstatic.com/sites/zweb/images/people/ico-help.png) **Duration:** 1 minute | **Threshold:** 60 | **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.