Update Users

Last updated on 01 March, 2021

You can use LogicMonitor’s REST API to programmatically update users in your account.

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

HTTP Method: PUT

Resource URI: /setting/admins/{adminID}

Where adminID is the ID of the user you’d like to update.

You can include the following parameters in your PUT request.  

Notes:

  • Consistent with HTTP standards, any fields not included in a PUT request will revert to their default values
  • To update password, you’ll need a changePassword=true query parameter included in the request

Property

Description

Type

Required?

roles The roles assigned to the user JSON Object yes
contactMethod email | smsemail String no – defaults to email
email The email address associated with the user String yes
phone The phone number associated with the user String no
smsEmail The sms email address associated with the user String no
smsEmailFormat sms | fullText, where sms = 160 characters and fullText= all characters String no – defaults to sms
username The username associated with the user String yes
firstName The first name associated with the user String no
lastName The last name associated with the user String no
password The password associated with the user String no – defaults to no change
status The user’s status. Should be one of active and suspended String no – defaults to active
note Any notes assocaited with the user String no
forcePasswordChange Whether or not the user should be forced to change their password on the next login Boolean no – defaults to false
viewPermission The account tabs that will be visible to the user JSON Object no – defaults to all pages visible
acceptEULA Whether or not the user is required to accept the EULA (end user license agreement) Boolean no – defaults to false
twoFAEnabled Whether or not two factor authentication is enabled for the user Boolean no – defaults to false

Example

The following Python script updates the user sarah, including the user’s password (hence the changePassword=true in the request) 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 ='PUT'
resourcePath = '/setting/admins/147'
queryParams ='?changePassword=true'
data = '{"roles":[{"name":"administrator"}],"email":"[email protected]","username":"sarah","password":"8v.VM^3LPrQKbHxyz","status":"active"}'

#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
In This Article