# 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://{server-hostname}:8383/dcapi/som/remote-offices/{remote_office_id}` ## Scope `SOM.UPDATE` ## Header `Authorization: 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/onpremise/remote-offices-getremoteoffices.html) response. ### Request Body `application/json` - **JSON Object** - **remoteOfficeID** (`string`, Optional): Specifies the unique identifier of the remote office. Required only for update operations; not applicable for create operations. - **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 values: `HTTPS`. - **uniqueServiceID** (`string`, Optional): Tracking identifier for the computer modification operation. When creating, 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/onpremise/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 hostname, port, and authentication credentials. - **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 configuration including hostname, domain, IP addresses, and communication port. - **hasOSDeployment** (`boolean`, Optional): Set as false. Not supported via API. Use the web console to configure this setting. - **remoteInstallationDetails** (`JSON Object`, Optional): Auto-installation configuration specifying whether agents and Distribution Servers should be auto-installed on newly discovered computers. - **replicationPolicy** (`JSON Object`, Optional): Replication policy assignment containing the policy identifier for data synchronization between DS and central server. - **remoteControlSettings** (`JSON Object`, Optional): Remote control session settings for data compression and display color depth. ## Sample Request ```curl curl --request PUT \ --url https://appdomain/dcapi/som/remote-offices/{remote_office_id} \ --header 'Accept: application/remoteOfficeUpdateStatus.v1+json' \ --header 'Authorization: d92d4xxxxxxxxxxxxx15f52' \ --header 'Content-Type: application/remoteOfficeDetails.v1+json' \ --data '{"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":"a1b2c3d4-e5f6-7890-abcd-ef1234567890","credentialID":101},"isDSAutoInstall":false,"isAgentAutoInstall":true},"isProxyDefined":false,"agentCommunication":"HTTPS","remoteControlSettings":{"compression":"0","colorQuality":"24"},"hasDS":true,"hasOSDeployment":false}' ``` ## 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": "a1b2c3d4-e5f6-7890-abcd-ef1234567890", "credentialID": 101 }, "isDSAutoInstall": false, "isAgentAutoInstall": true }, "isProxyDefined": false, "agentCommunication": "HTTPS", "remoteControlSettings": { "compression": "0", "colorQuality": "24" }, "hasDS": true, "hasOSDeployment": false } ``` ## 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 } ``` ## API Rate Limit ![](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.