REST API Developer's Guide

Update Device Group Properties

You can use LogicMonitor's REST API to programmatically update device properties.  There are two ways to do this:

  1. by making a PATCH request to the device group resource - you can update only the customProperties object and keep the remaining fields the same.  By using opType = replace, you can replace the values of one or more properties within the customProperties object.
  2. by updating the specific property value via the device group property resource

Note: As with all of our API calls, authentication is required.


Update a property via the device group property resource

HTTP Method: PUT

Resource URI: /device/groups/{groupID}/properties/{propertyName}

Where groupID is the ID of the group you'd like to update a property for, which you can get from the group resource.  propertyName is the name of the property you'd like to update (in all lower case).

You'll need to include the updated value in your PUT request.



The following Python script updates the value of property proddc for group 43:

#!/bin/env python

import requests
import json
import hashlib
import base64
import time
import hmac

#Account Info
AccessId ='48v2wRzfK94y53sq5EuF'
AccessKey ='H_D9i(f5~B^U36^K6i42=^nS~e75gy382Bf6{)P+'
Company = 'api'

#Request Info
httpVerb ='PUT'
resourcePath = '/device/groups/43/properties/proddc'
queryParams =''
data = '{"value":"DC"}'

#Construct URL 
url = 'https://'+ Company +'' + resourcePath + queryParams

#Get current time in milliseconds
epoch = str(int(time.time() * 1000))

#Concatenate Request details
requestVars = httpVerb + epoch + data + resourcePath

#Construct signature
signature = base64.b64encode(,msg=requestVars,digestmod=hashlib.sha256).hexdigest())

#Construct headers
auth = 'LMv1 ' + AccessId + ':' + signature + ':' + epoch
headers = {'Content-Type':'application/json','Authorization':auth}

#Make request
response = requests.put(url, data=data, headers=headers)

#Print status and body of response
print 'Response Status:',response.status_code
print 'Response Body:',response.content