# Clone a browser router profile Creates an editable Draft copy of an existing Published Browser Router profile, preserving all of its routing payloads. The source profile must be in Published state and the clone must target the same platform. ## Endpoint `POST /bsp/api/v1/bmp/browser_router/{profile_id}/clone` ## Request ### Request URL `https://`[{serverurl}](https://www.manageengine.com/products/desktop-central/help/api/cloud/oauth-authentication-endpoint-domain.html)`/bsp/api/v1/bmp/browser_router/{profile_id}/clone` ### Scope `DesktopCentralCloud.BrowserManager.CREATE` ### Header `Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52` ### Request Parameters #### Request Headers - **Accept** `string` — **Mandatory** - `application/json` #### Path Parameters - **profile_id** `string` — **Mandatory** - Browser Router Profile ID from [List Browser Router Profiles](https://www.manageengine.com/products/desktop-central/help/api/cloud/browser-router-list-browser-router-profiles.html) response (`profile_id` field) #### Query Parameters - **new_profile** `boolean` — Optional - Optional. `true` = clone as new profile; `false`/omitted = clone as new draft version. Default: `false` ### Sample Request ```curl curl --request POST \ --url https://appdomains/bsp/api/v1/bmp/browser_router/{profile_id}/clone \ --header 'Accept: application/json' \ --header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52' ``` ## Response Parameters ### HTTP code 200 Response body: `application/json` - `JSON Object` - **collection_id** `string` - Collection reference ID - **profile_name** `string` - Name of the browser router profile - **profile_type** `string` - Profile type. `64011` for Browser Router - **platform_type** `string` - Platform type. `1` = Windows, `2` = Mac, `-1` = All - **latest_version** `string` - Current draft version number - **is_moved_to_trash** `boolean` - Whether the profile is in the trash - **payloads** `JSON Array` - Payload configurations with routing details - **profile_id** `string` - Unique identifier of the profile - **scope** `string` - Profile scope. `0` = device scope - **latest_published_version** `string` - Latest published version, or `'--'` if not yet published - **profile_description** `string` - Description of the profile ### HTTP code 400 Response body: `application/json` - `JSON Object` - **error_description** `string` - Message indicating platform type mismatch during clone ### HTTP code 401 Response body: `application/json` - `JSON Object` - **errorCode** `long` - Unauthorized error code returned when authentication credentials are missing, expired, or invalid (`authentication=required`) - **errorMsg** `string` - Authentication failure reason ### HTTP code 403 Response body: `application/json` - `JSON Object` - **errorCode** `long` - Forbidden error code returned when the authenticated user does not have the required uem-roles (for example, `DataEncryption_Admin` or `DataEncryptionRecoveryKey_Admin`) - **errorMsg** `string` - Message indicating insufficient privileges to access this resource ### HTTP code 404 Response body: `application/json` - `JSON Object` - **error_description** `string` - Message indicating the specified profile or payload was not found ### HTTP code 409 Response body: `application/json` - `JSON Object` - **error_description** `string` - Message indicating only published profiles can be cloned ### HTTP code 429 Response body: `application/json` - `JSON Object` - **errorCode** `long` - Rate limit error code returned when the API call threshold (configured via threshold/duration in security XML) is exceeded; client is locked out for lock-period minutes - **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 ### Sample Responses #### HTTP 200 Cloned profile ```json { "collection_id": "222", "profile_name": "Corporate Router Policy", "profile_type": "64011", "platform_type": "1", "latest_version": "2", "is_moved_to_trash": false, "payloads": [ { "config_name": "BROWSER_ROUTER", "payload_type": "64100", "payload_id": "623", "router_details": [ { "config_data_item_id": "623", "urls": [ { "doc_type": "IE11", "id": "601", "url": "localhost" } ], "groups": [ { "group_id": "618", "webdomain_group": "Corporate Intranet Sites", "doc_type": "IE5" } ], "browser_mode": "IEModeInEdge", "intranet_zone": false, "open_in": "chromiumEdge" } ] } ], "profile_id": "111", "scope": "0", "latest_published_version": "1", "profile_description": "Routes internal sites to Edge, others to Chrome" } ``` #### HTTP 400 Platform mismatch ```json { "error_description": "Platform not same" } ``` #### 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 404 Profile not found ```json { "error_description": "Profile not found" } ``` #### HTTP 409 Not published ```json { "error_description": "Cannot clone unpublished profile." } ``` #### 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.