Creates a new role with the specified name, description, and product-level module permissions. [0=Full-control; 1=Read-Write; 2=Read-Only; -1=No Access]
https://{server-hostname}:8383/emsapi/roles
Admin.CREATECopied!
Authorization: d92d4xxxxxxxxxxxxx15f52
Specifies the expected response format. Set to application/addRole.v1+json to receive the role creation response in JSON format.
Specifies the request payload format. Set to application/addRole.v1+json to submit the role data in JSON format.
Unique name for the new role. Supports alphanumeric characters, spaces, and special characters. Maximum 100 characters.
Optional description of the role's purpose and access level. Maximum 250 characters.
Product-keyed object mapping each product name to its module and feature permission details for this role.
Product-specific permission block. Each key is the internal product name (e.g., 'DesktopCentral') containing its module configuration. To get product name Get Product Name
display name of the product (e.g., 'Desktop Central', 'Patch Manager Plus').
List of module objects defining which modules and features within this product are accessible to the role. Max 500 modules.
Name of the module (e.g., 'Device Management', 'Patch Management').
Internal string identifier for the module used by the system (e.g., 'device_mgmt', 'patch_mgmt').
Unique numeric ID of the module within the product.
Array of numeric feature IDs granted to this role for this module. Ignored when '-1' is set to true. Max 1000 feature IDs.
If true, all features in this module are granted to the role, overriding the selectedFeatures list.
Dynamic boolean flag for additional access-level permissions specific to the module (e.g., read, write, fullControl flags).
curl --request POST \
--url https://appdomain/emsapi/roles \
--header 'Authorization: d92d4xxxxxxxxxxxxx15f52' \
--header 'accept: application/addRole.v1+json' \
--header 'content-type: application/addRole.v1+json' \
--data '{"roleName":"testrole","roleDetails":{"osd":{"modules":[{"0":false,"1":false,"2":false,"-1":true,"value":"OSD Imaging"}]},"desktopCentral":{"modules":[{"0":true,"1":true,"2":true,"-1":false,"moduleId":"97913000000010497","value":"Configurations"},{"0":false,"1":false,"2":false,"-1":true,"value":"Patch Management"},{"0":false,"1":false,"2":false,"-1":true,"value":"Vulnerability Mgmt"},{"0":false,"1":false,"2":false,"-1":true,"value":"Software Deployment"},{"0":false,"1":false,"2":false,"-1":true,"moduleId":"97913000000010506","value":"Inventory"}]},"mdm":{"modules":[{"0":false,"1":false,"2":false,"-1":true,"value":"MDM Enrollment"}]}},"roleDescription":"sadasd"}'Create role with full module structure across desktopCentral, osd, browserSecurity, SecurityAddOn, and mdm.
{
"roleName": "testrole",
"roleDetails": {
"osd": {
"modules": [
{
"0": false,
"1": false,
"2": false,
"-1": true,
"value": "OSD Imaging"
}
]
},
"desktopCentral": {
"modules": [
{
"0": true,
"1": true,
"2": true,
"-1": false,
"moduleId": "97913000000010497",
"value": "Configurations"
},
{
"0": false,
"1": false,
"2": false,
"-1": true,
"value": "Patch Management"
},
{
"0": false,
"1": false,
"2": false,
"-1": true,
"value": "Vulnerability Mgmt"
},
{
"0": false,
"1": false,
"2": false,
"-1": true,
"value": "Software Deployment"
},
{
"0": false,
"1": false,
"2": false,
"-1": true,
"moduleId": "97913000000010506",
"value": "Inventory"
}
]
},
"mdm": {
"modules": [
{
"0": false,
"1": false,
"2": false,
"-1": true,
"value": "MDM Enrollment"
}
]
}
},
"roleDescription": "sadasd"
}
Unique identifier assigned to the newly created role.
Name of the newly created role.
Success message confirming role creation.
Success code for the role creation operation.
Application-specific error code indicating the reason for the request failure.
Error message describing the cause of the error.
Role creation success response.
{
"roleId": "97913000000566015",
"roleName": "Security Auditor",
"message": "New role Security Auditor has been added successfully.",
"successCode": "40015"
}
The Role Name already exists. Please choose a different name.
{
"errorCode": "40018",
"errorMsg": "Role name Product Admin already exists."
}
![]()
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.
© 2026, Zoho Corporation Pvt. Ltd. All Rights Reserved.
© 2026, Zoho Corporation Pvt. Ltd. All Rights Reserved.