LogicMonitor acquires Catchpoint, adding Internet and digital experience insight to LM Envision.

Read more

You can use LogicMonitor’s REST API to get all properties for a device, whether they are custom or system, inherited or not.  There are two ways to get property information:

  1. Get all properties for a device
  2. Get information about a particular device property

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

Get all device properties

HTTP Method: GET

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

Where deviceID is the ID of the device whose property you’d like to get, which you can get from the devices resource.

Resource Properties:

Request Parameters: By default, a list of 50 device properties will be returned. You can include sort, filter, fields, size and offset parameters in your request to control what data is included in the response and how it is formatted. Note that query parameters are not considered part of the resource path, and should not be included the calculation of the LMv1 authentication signature.

Property

Syntax

Description

Example URI

sort sort={+ or -}property Sorts the response by the property specified in either increasing (+) or decreasing (-) order /device/devices/12/properties?sort=-type
filter filter=property{operator}value Filters the response according to the operator and value specified. Note that you can use * to match on more than one character. You can use the ‘.’ character to filter values within an object (e.g. custom properties), and multiple filters can be separated by a comma.

 

Operators include:

  • Greater than or equals: >:
  • Less than or equals: <:
  • Greater than: >
  • Less than: <
  • Does not equal: !:
  • Equals: :
  • Includes: ~
  • Does not include: !~
/device/devices/45/properties?filter=name~QA*
fields fields={list of properties separated by commas} Filters the response to only include the following fields for each object /device/devices/89/properties?fields=name,id
size size=integer The number of results to display. Max is 1000. /device/devices/65/properties?size=5
offset offset=integer The number of results to offset the displayed results by /device/devices/76/properties?offset=2

Get information about a particular device property

HTTP Method: GET

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

Where deviceID is the ID of the device whose property you’d like to get, which you can get from the devices resource. propertyName is the name of the property you’d like to gert information for, which you can get from getting all device properties.

Example 1

The following Python script gets all properties for device 4374:

#!/bin/env python import requests import json import hashlib import base64 import time import hmac #Account Info AccessId ='your-access-id' AccessKey ='your-access-key' Company = 'api' ##Request Info httpVerb ='GET' resourcePath = '/device/devices/4374/properties' queryParams ='' data = '' #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.get(url, data=data, headers=headers) #Print status and body of response print('Response Status:',response.status_code) print('Response Body:',response.content)
Python 3

Example 2

The following Python script gets information about the property with the name ‘proddc’:

#!/bin/env python import requests import json import hashlib import base64 import time import hmac #Account Info AccessId ='your-access-id' AccessKey ='your-access-key' Company = 'api' ##Request Info httpVerb ='GET' resourcePath = '/device/devices/4374/properties/proddc' queryParams ='' data = '' #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.get(url, data=data, headers=headers) #Print status and body of response print('Response Status:',response.status_code) print('Response Body:',response.content)
Python 3

14-day access to the full LogicMonitor platform