You can use LogicMonitor’s REST API to programmatically manage the API Tokens associated with your LogicMonitor account.  Specifically, you can:

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

 

 

Resource URI

/setting/admins/apiTokens

 

 

 

Resource Properties

All API Tokens have the following properties:

 

 

Property

Description

Type

id The id of the API Token set Integer
accessId The access Id associated with the API Tokens String
accessKey The secret key associated with the API Tokens String
adminId The id of the user associated with the API Tokens Integer
adminName The name of the user associated with the API Tokens String
roles The roles assigned to the user that is associated with the API Tokens JSON Object
status 1 | 2 – Whether or not the API Tokens are enabled, where 2 = enabled. Integer
note The note associated with the API Tokens String
createdOn The epoch at which the API Tokens were created Integer
lastUsedOn The epoch at which the API Tokens were last used/span> Integer

 

 

 

Overview

You can use LogicMonitor’s REST API to programmatically add API tokens. As with all of our API calls, authentication is required.

HTTP Method: POST

URI: /setting/admins/{adminID}/apitokens (where adminID is the Id of the user for which you’d like to add API tokens; you can get this Id from the Users resource)

Request Parameters: You can POST the following properties for API tokens.

Note: Although all POST parameters are optional for this resource, an empty payload still needs to include a set of curly braces, i.e. {}

Property Description Required? Type
status 1 | 2 – Whether or not the API tokens are enabled, where 2 = enabled. No – defaults to 2 Integer
note The note associated with the API tokens No String

Example

The following Python script adds a set of API tokens for user 32:

#!/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 = '/setting/admins/32/apitokens'
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.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

Overview

You can use LogicMonitor’s REST API to programmatically update API tokens. For example, you may enable/disable tokens. As with all of our API calls, authentication is required.

HTTP Method: PUT

Resource URI: /setting/admins/{adminID}/apitokens/{apiTokenID}
(where adminID is the ID of the user whose API tokens you intend to update, and apiTokenID is the ID of the API token set you intend to update; you can get user iDs from the Users resource, and apiTokensID by making a GET request to the API tokens resource.)

Request Parameters: You can include the following parameters in your PUT request.

Property Description Required? Type
status 1 | 2 – Whether or not the API tokens are enabled, where 2 = enabled. No – defaults to 2 Integer
note The note associated with the API tokens No String

Example

The following Python script disables API token 248 for user 32.

#!/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 = '/setting/admins/32/apitokens/248'
queryParams =''
data = '{"status":1}'

#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.put(url, data=data, headers=headers)
 
# Print status and body of response
print('Response Status:',response.status_code)
print('Response Body:',response.content)
Python 3

Overview

You can use LogicMonitor’s REST API to programmatically get information about the API tokens in your account. Specifically, you can:

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

Get All API Tokens

HTTP Method: GET

URI: /setting/admins/apitokens

Request Parameters: By default, a list of 50 API tokens will be returned. You can include sort, filter, fields, size, and offset parameters that control what data is included in the response and how it is formatted. Query parameters are not considered part of the resource path, and should not be included in 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 /setting/admins/apitokens?sort=-id
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: !~
/setting/admins/apitokens?filter=status:2
fields fields=list of properties separated by commas Filters the response to only include the following fields for each object /setting/admins/apitokens?fields=id,status,adminName
size size=integer The number of results to display /setting/admins/apitokens?size=10
offset offset=integer The number of results to offset the displayed results by /setting/admins/apitokens?offset=20

Example

The following Python script gets all API tokens in the account api.logicmonitor.com.

#!/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 ='GET'
resourcePath = '/setting/admins/apitokens'
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

Get Information About a Particular User’s API Tokens

HTTP Method: GET

Resource URI: /setting/admins/{adminID}/apitokens (where adminID is the ID of the user you’d like to get API tokens for, which you can get via the users resource)

Example

The following Python script gets all API tokens for user 131 in account api.logicmonitor.com.

#!/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 ='GET'
resourcePath = '/setting/admins/131/apitokens'
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

Overview

You can use LogicMonitor’s REST API to programmatically delete API tokens. As with all of our API calls, authentication is required.

HTTP Method: DELETE

Resource URI: /setting/admins/{adminID}/apitokens/{apiTokenID}

(where adminID is the id of the user you’d like to delete API Tokens for, which you can get via the users resource, and apiTokenID is the id of the API token set that you’d like to delete)

Example

The following Python script will delete the API token set with id 146 from user 131 in account api.logicmonitor.com.

#!/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 ='DELETE'
resourcePath = '/setting/admins/131/apitokens/146'
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.delete(url, data=data, headers=headers)
 
# Print status and body of response
print('Response Status:',response.status_code)
print('Response Body:',response.content)
Python 3