# Update an existing remote office Updates an existing remote office identified by ID. Supports modifying DS details, proxy settings, replication policy, and auto-install options. ## Endpoint `PUT /dcapi/som/remote-offices/{remote_office_id}` ## Request URL `https://{serverurl}/dcapi/som/remote-offices/{remote_office_id}` ## Scope `DesktopCentralCloud.SOM.UPDATE` ## Header `Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52` ## Request Parameters ### Request Headers - **Content-Type** `string` — **Mandatory** - `application/remoteOfficeDetails.v1+json` - **Accept** `string` — **Mandatory** - `application/remoteOfficeUpdateStatus.v1+json` ### Path Parameters - **remote_office_id** `string` — **Mandatory** - Unique identifier for the remote office. Get the remote office ID from the `resource_id` field in the [Get Remote Offices](https://www.manageengine.com/products/desktop-central/help/api/cloud/remote-offices-getremoteoffices.html) response. ### Request Body `application/json` - `JSON Object` - **remoteOfficeID** `string` — Optional - Specifies the unique identifier of the remote office. Required only during remote office update; should not be provided during creation. - **remoteOfficeName** `string` — Optional - Administrator-defined display name for the remote office. - **description** `string` — Optional - Optional administrator-provided description for the remote office (max 250 characters). - **agentCommunication** `string` — Optional - Protocol for agent-to-server communication. Allowed value: `HTTPS`. - **uniqueServiceID** `string` — Optional - Tracking identifier for the computer modification operation. When creating a remote office, provide the current time in milliseconds. When updating, retrieve this value from the [Unique Service ID](https://www.manageengine.com/products/desktop-central/help/api/cloud/remote-offices-load-remote-office-computers.html). - **isProxyDefined** `boolean` — Optional - Set to `true` to configure a proxy server for agent communication in this remote office. When `true`, the `proxyDetails` object is required. - **proxyDetails** `JSON Object` — Optional - Proxy server configuration including host, port, and credentials. These details are required only when `isProxyDefined` is set to `true`. - **hasDS** `boolean` — Optional - Set to `true` to associate a Distribution Server with this remote office. When `true`, the `dsDetails` object is required. - **dsDetails** `JSON Object` — Optional - Distribution server details including hostname, domain, IP, and port. These details are required only when `hasDS` is set to `true`. - **hasOSDeployment** `boolean` — Optional - Set to `false`. Not supported via API. Use the web console to configure this setting. - **remoteInstallationDetails** `JSON Object` — Optional - Auto-install configuration including agent and DS auto-install settings. - **replicationPolicy** `JSON Object` — Optional - Replication policy assignment with policy ID. - **remoteControlSettings** `JSON Object` — Optional - Remote control settings for compression and color quality. Only `compression=1` and `colorQuality=16` are applicable for Cloud. ## Sample Request ```curl curl --request PUT \ --url https://appdomains/dcapi/som/remote-offices/{remote_office_id} \ --header 'Accept: application/remoteOfficeUpdateStatus.v1+json' \ --header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52' \ --header 'Content-Type: application/remoteOfficeDetails.v1+json' \ --data '{}' ``` ## Sample Request Body ### Update remote office with Distribution Server ```json { "uniqueServiceID": 1776064906199, "dsDetails": { "dsHTTPSPort": "8383", "dsName": "DS-NYC-01", "dsIPAddress": [ "10.1.0.10" ], "domainNetbiosName": "CORP", "dsDNSName": "DS-NYC-01.corp.local" }, "description": "Updated NYC branch", "replicationPolicy": { "replicationPolicyID": "1" }, "remoteOfficeName": "Branch Office NYC Updated", "remoteInstallationDetails": { "credentialDetails": { "credentialUUID": "--", "credentialID": "-1" }, "isDSAutoInstall": false, "isAgentAutoInstall": false }, "isProxyDefined": false, "agentCommunication": "HTTPS", "remoteControlSettings": { "compression": "1", "colorQuality": "16" }, "hasDS": true, "hasOSDeployment": false } ``` ### Update remote office with DS, proxy, and OS deployment ```json { "uniqueServiceID": 1776064906199, "dsDetails": { "dsHTTPSPort": "8384", "dsName": "US", "dsIPAddress": [ "10.92.32.36" ], "domainNetbiosName": "WORKGROUP", "dsDNSName": "us.WORKGROUP.com" }, "replicationPolicy": { "replicationPolicyID": "33469000000436006" }, "remoteOfficeName": "dsfsdfsdf", "remoteInstallationDetails": { "credentialDetails": { "credentialUUID": "--", "credentialID": "-1" }, "isDSAutoInstall": false, "isAgentAutoInstall": false }, "isProxyDefined": true, "agentCommunication": "HTTPS", "remoteControlSettings": { "compression": 1, "colorQuality": 24 }, "hasDS": true, "hasOSDeployment": false, "proxyDetails": { "proxyPort": 80, "proxyUsername": "Proxy", "proxyPassword": "Proxy@123", "proxyHost": "US-PROXY" } } ``` ## Response Parameters ### HTTP code 200 Response body: `application/json` - `JSON Object` - **remoteOfficeID** `string` - Unique identifier of the created or updated remote office. Present only in update responses. - **status** `boolean` - `true` if the remote office was created or updated successfully. - **message** `string` - Descriptive message providing details about the outcome of the remote office operation. Present on update or when an error occurs. - **agentMSICreationFailed** `boolean` - `true` if MSI creation for agent failed during the operation. ### HTTP code 400 Response body: `application/json` - `JSON Object` - **statusCode** `string` - HTTP status code (`400`). - **errorCode** `string` - API-specific error code identifying the validation failure. - **message** `string` - Error message describing the validation failure. ### HTTP code 404 Response body: `application/json` - `JSON Object` - **statusCode** `string` - HTTP status code (`404`). - **errorCode** `string` - Error code identifying the resource that was not found. - **message** `string` - Error message describing the missing resource. ### HTTP code 412 Response body: `application/json` - `JSON Object` - **statusCode** `string` - HTTP status code (`412`). - **errorCode** `string` - Precondition failed error code identifying the business logic violation. - **message** `string` - Error message describing the precondition failed while processing request. ## Possible Response Codes - `200` — HTTP code - `400` — HTTP code - `404` — HTTP code - `412` — HTTP code ## Sample Responses ### HTTP 200 #### Remote office updated ```json { "remoteOfficeID": "906", "message": "Remote Office US DS has been modified successfully", "status": true } ``` ### HTTP 400 #### Cannot update the local office ```json { "errorCode": "30060", "message": "Local office cannot be updated", "statusCode": 400 } ``` #### Required remote office parameters are missing ```json { "errorCode": "30052", "message": "Remote office parameters are missing", "statusCode": 400 } ``` ### HTTP 404 #### Remote office not found ```json { "errorCode": "30028", "message": "Remote office not found", "statusCode": 404 } ``` #### Replication policy not found ```json { "errorCode": "30027", "message": "Replication policy not found", "statusCode": 404 } ``` #### OSD PXE media not found ```json { "errorCode": "30079", "message": "OSD media not found", "statusCode": 404 } ``` ### HTTP 412 #### Distribution server limit reached for the license ```json { "errorCode": "20216", "message": "Distribution server limit reached", "statusCode": 412 } ``` #### Branch name 'Local Office' is reserved ```json { "errorCode": "30058", "message": "Local Office name is not allowed", "statusCode": 412 } ``` #### Remote office name already exists ```json { "errorCode": "30053", "message": "Remote office name already exists", "statusCode": 412 } ``` #### Distribution server already added to another office ```json { "errorCode": "30054", "message": "Distribution server is already added to another remote office", "statusCode": 412 } ``` #### Domain name not found for credentials ```json { "errorCode": "30073", "message": "Domain name not found for the given credentials", "statusCode": 412 } ``` #### Domain does not match the given credentials ```json { "errorCode": "30035", "message": "Domain does not match with the credentials provided", "statusCode": 412 } ``` #### Proxy not allowed when client certificate authentication is enabled ```json { "errorCode": "30078", "message": "Proxy is not allowed when client certificate authentication is enabled", "statusCode": 412 } ``` #### Cannot rename remote office mapped with integrated product (MSP) ```json { "errorCode": "30059", "message": "Cannot rename remote office that is mapped with other product", "statusCode": 412 } ``` ## Rate Limits ![](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.