LogicMonitor seeks to disrupt AI landscape with $800M strategic investment at $2.4B valuation to revolutionize data centers.

Learn More

Add Device Properties

Last updated on 24 February, 2021

You can use LogicMonitor’s REST API to programmatically add device properties. You can do this one of two ways:

  1. using the PATCH method with the devices resource – you can use PATCH to update only the customProperties object for a device, and you can use the opType parameter to add or update a single property within this object.
  2. by making a POST request to the device properties resource

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

Add a property via the device properties resource

HTTP Method: POST

Resource URI: /device/devices/{deviceID}/properties

Where deviceID is the ID of the device you want to add a property to.

Resource Properties: You can POST the following parameters for each property:

Property

Description

Type

name The name of the property String
value The value of the property String

Example

The following Python script adds a property ‘prodDC’ with value ‘LA’ to device 4374:

#!/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 ='POST'
resourcePath = '/device/devices/4374/properties'
queryParams =''
data = '{"name":"prodDC","value":"LA"}'

#Construct URL 
url = 'https://'+ Company +'.logicmonitor.com/santaba/rest' + resourcePath + queryParams

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

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

#Construct signature
hmac1 = hmac.new(AccessKey.encode(),msg=requestVars.encode(),digestmod=hashlib.sha256).hexdigest()
signature = base64.b64encode(hmac1.encode())

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

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

#Print status and body of response
print('Response Status:',response.status_code)
print('Response Body:',response.content)
Python 3
In This Article