Javascript must be enabled to download our products and perform other essential functions on the website.

ionicons-v5-m
ionicons-v5-j
Buy Now Download Free Trial
ionicons-v5-m
ionicons-v5-f

This help page is for version 7.2. The latest available help is for version 9.4.

External API

PA Server Monitor has a simple API for automating some basic operations.

Security

To protect the system from un-authorized requests, there are two security precautions that are required:

  • SSL - SSL must be enabled for the embedded HTTP server. This can be done on the HTTP Settings dialog.

  • API Key - The API Key registry setting must be set. This is analogous to a username/password. Under HKEY_LOCAL_MACHINE\software\PAServerMonitor, create a value named API_KEY. Set it to a long string value of random characters.

Requests are made via HTTPS. The format of the requests is:

https://{server}:{port}?KEY={API Key}&API={command}

Additional optional parameters can be appended to the URL using the pattern:

&{param_name}={value}

Return Values

All API commands return data as simple text. Successful commands return as XML, or in the following format:

:START:
{returned data
can be multiple lines}
:END:

All errors are returned as:

:ERROR:{error text}

ionicons-v5-h

IDs: Some of the requests below take a Group ID, Computer ID and/or Monitor ID. You can get IDs via:

  • In the Console by enabling View > Show Object IDs in Navigation Tree
  • Get them programatically by using the following requests:
    • Group IDs : GET_GROUP_LIST
    • Computer IDs: GET_SERVER_LIST
    • Monitor IDs: GET_MONITOR_INFO
  • Querying the ConfigComputerInfo or ConfigGroupInfo tables in the database. Monitor IDs are not available this way.

API Commands

Below are the supported commands. The command name should be inserted where {command} is shown in the example above.

GET_SERVER_LIST

Returns a list of servers and the group that the server is in. The XML version also shows the computer's internal ID.

Optional Parameters
XML = {0|1} - defaults to 0
GID = {group ID}, defaults to 0 (top Servers/Devices group).
ALL = {0|1} - 0 means just return the servers directly in the group, 1 returns all servers in all sub-groups as well

Example

https://server:81?KEY=mysecretkey&API=GET_SERVER_LIST

Output (server|group^group)

:START:
DNVISTA|Servers/Devices
192.168.2.5|Servers/Devices
POWERADMIN.COM|Servers/Devices^Boston
OPSMON02|Servers/Devices^Servers^Office
ARCHIVE|Servers/Devices
:END:

XML Example

https://server:81?KEY=mysecretkey&API=GET_SERVER_LIST&XML=1

XML Output

<?xml version="1.0" ?>
<servers>
  <server name="DNVISTA" group="Servers/Devices^Boston^Servers" id="1" groupID="1" alias="DNVISTA" status="ok" />
  <server name="192.168.2.5" group="Servers/Devices^Kansas City" id="2" groupID="2" alias="EXCHANGE" status="maintenance" />
  <server name="POWERADMIN.COM" group="Servers/Devices^External" id="4" groupID="3" alias="POWERADMIN.COM" status="disabled" />
  <server name="OPSMON02" group="Servers/Devices^Boston^Servers" id="5" groupID="1" alias="OPS" status="unlicensed" />
  <server name="ARCHIVE" group="Servers/Devices^Boston^Servers" id="8" groupID="1" alias="ARCHIVE" status="sat_disconnected" />
</servers>

Note that all possible values of 'status' are shown above

GET_GROUP_LIST

Returns a list of groups, with their name, full path name, group ID, and group ID for the group's parent.

Optional Parameters
XML = {0|1} - defaults to 0

Example

https://server:81?KEY=mysecretkey&API=GET_GROUP_LIST

Output (name|full path|id|parentID)

:START:
Servers/Devices|Servers/Devices|0|-1
Boston|Servers/Devices^Boston|1|0
Office|Servers/Devices^Office|2|0
Dev|Servers/Devices^Office^Dev|3|2
:END:

XML Example

https://server:81?KEY=mysecretkey&API=GET_GROUP_LIST&XML=1

XML Output

<?xml version="1.0" ?>
<groups>
  <group name="Servers/Devices" path="Servers/Devices" id="0" parentID="-1" />
  <group name="Boston" group="Servers/Devices^Boston" id="1" parentID="0" />
  <group name="Office" group="Servers/Devices^Office" id="2" parentID="0" />
  <group name="Dev" group="Servers/Devices^Office^Dev" id="3" parentID="2" />
</groups>

GET_MONITOR_INFO

Returns information about all monitors owned by a particular computer.

Required Parameters
CID - Computer ID for the computer to target for the operation. ALL can be used to return information all monitors

Optional Parameters
FORMAT_DATE - 0 to always output as dd-mm-yyyy hh:mm:ss (24 hour hh), or 1 to use the same format that the existing reports use (which can be customized). Defaults to 0.
STATUS - a comma separated list of monitor statuses. Only monitors that are currently the specified status will be returned. See status values in the table at the bottom of the page.

Example

https://server:81?KEY=mysecretkey&API=GET_MONITOR_INFO&CID=371
&FORMAT_DATE=1
https://server:81?KEY=mysecretkey&API=GET_MONITOR_INFO&CID=ALL
&STATUS=2,10,17,18,19

Output (XML)

<?xml version="1.0" ?>
<monitors>
  <monitor id="13" status="OK" depends_on="" title="Check Free Disk Space" lastRun="16-10-2010 5:54:10" nextRun="16-10-2010 11:54:10" errText="" errorActionIDs="1,3,8" fixedActionIDs="" />
  <monitor id="74" status="Alert" depends_on="132,5" title="Ping OPSMON02" lastRun="16-10-2010 6:25:12" nextRun="16-10-2010 6:26:12" errText="OPSMON02 is not responding to ping requests [in error for 2m 3s]" errorActionIDs="7,3" fixedActionIDs="3" />
</monitors>

GET_ACTION_INFO

Returns a list describing all the actions in the system (these IDs are used in the errorActionIDs and fixedActionIDs attributes returned from GET_MONITOR_INFO

Example

https://server:81?KEY=mysecretkey&API=GET_ACTION_INFO

Output (XML)

<?xml version="1.0" ?>
<actions>
  <action id="1" type="Message Box" typeID="3" title="Message Box" />
  <action id="2" type="Write to a Text Log File" typeID="6" title="Write to ServerEvents.txt log file" />
  <action id="6" type="Start, Stop or Restart a Service" typeID="5" title="Restart stopped service on monitored computer" />
</actions>

ACK_ALERT

Acknowledge an alert

Required Parameters
ERRID - The Error ID for the alert. This can be shown in Error Audit reports, or shown on the Server Status report

Optional Parameters
ACKALERTS - 1 to send any Acknowledge alerts attached to the monitor, or 0 to suppress sending them. Defaults to 0.
ACKBY - Name to list as the person doing the acknowledgement. By default it will show "External API". The IP address of the caller will be appended.

Example

https://server:81?KEY=mysecretkey&API=ACK_ALERT&ERRID=4172&ACKBY=Robert

Output

:OK:

START_MAINTENANCE

Put the server into immediate maintenance mode.

Required Parameters
CID - Computer ID for the computer to target for the operation.
- or -
GID - Group ID for the group that contains target computers (including those in child-groups).
- or -
MID - Monitor ID for the specific monitor that should be affected.

MINUTES - time in minutes that the server should remain in maintenance mode before it automatically reverts to normal monitoring

Optional Parameters
FORCE - 1 to allow the maintenance window to be shortened. Defaults to 0

Example

https://server:81?KEY=mysecretkey&API=START_MAINTENANCE&CID=37&MINUTES=15&FORCE=1

Output

:OK:

END_MAINTENANCE

Put the server back into normal monitoring mode.

Required Parameters
CID - Computer ID for the computer to target for the operation.
- or -
GID - Group ID for the group that contains target computers (including those in child-groups).
- or -
MID - Monitor ID for the specific monitor that should be affected.

Example

https://server:81?KEY=mysecretkey&API=END_MAINTENANCE&CID=37

Output

:OK:

SET_SERVER_PROP

Sets a custom property on a server. If the property value is empty, the custom property is removed.

Required Parameters
CID - Computer ID for the computer to target for the operation.
- or -
SERVER - Name of the computer to target. If there are multiple computers with the same name (perhaps at different locations), which one is returned is not defined.
PROPNAME - Name of the property to set
PROPVAL - Value of the property to set

Example

https://server:81?KEY=mysecretkey&API=SET_SERVER_PROP&CID=125
&PROPNAME=Customer&PROPVAL=IBM

Output

:OK:

ionicons-v5-h

The Custom Property DISPLAYED_NOTES is the value you can set by right-clicking a computer and selecting Notes. Notes show up at the top of a Server Status Report.

GET_SERVER_PROP

Retrieves a custom property on a server. If the property is not defined, an empty value is returned.

Required Parameters
CID - Computer ID for the computer to target for the operation.
- or -
SERVER - Name of the computer to target. If there are multiple computers with the same name (perhaps at different locations), which one is returned is not defined.
PROPNAME - Name of the property to retrieve

Example

https://server:81?KEY=mysecretkey&API=GET_SERVER_PROP&CID=125&PROPNAME=Customer

Output

:START:
IBM
:END:

RUN_NOW

Request the specified monitor be run immediately

Required Parameters
MID - Monitor ID for the monitor to run immediately.

Optional Parameters
FORCE - 1 to run the monitor even if it's disabled or the server is in maintenance. Defaults to 0

Example

https://server:81?KEY=mysecretkey&API=RUN_NOW&MID=4721&FORCE=1

Output

:OK:

CREATE_CHART

Creates a chart jpeg file similar to those shown in the server status reports. The chart image will be in the Reports\Temp folder. The caller is responsible for deleting the file when done using it.

Required Parameters
STATID - statistic ID to be charted. The StatID value can be found in the Statistic table, StatID column.
MONTYPE - Monitor type. This is the value from the OwnerType column in the Statistic table.

Optional Parameters
NONZEROBASE - The y-axis of most charts starts at 0. Set this to 1 to indicate the chart should pick a better axis starting point. Defaults to 0
MINUTES - The number of minutes back to chart. Defaults to 1440 (one day)
SUMMARIZATION - Control how the data is summarized, using a value from the below chart. Defaults to 25 (5-minute maximum)

Chart raw values0
Minute minimum 15
Minute average 14
Minute maximum 16
5-Minute minimum24
5-Minute average23
5-Minute maximum25
Hourly minimum 5
Hourly average 1
Hourly maximum 6
Daily minimum 7
Daily average 2
Daily maximum 8
Weekly minimum 9
Weekly average 3
Weekly maximum 10
Monthly minimum 11
Monthly average 4
Monthly maximum 12
Yearly minimum 18
Yearly average 17
Yearly maximum 19

UNIT - The unit from the table below. Used for display and scaling if needed. Defaults to 15 (generic number)
Generic number15
Bytes 1
KB 2
MB 3
GB 4
TB 12
PB 13
EB 14
Bps 11
Kbps 17
Mbps 18
Gbps 19
Tbps 20
Scale dynamically5
Percentage 6
milliseconds 7
Temperature in C 9
Lux 10

COLOR - HTML color for the line. Defaults to #000080
TITLE - Override the title for the chart. Uses the statistic's name by default
FILENAME - Filename only (no path). All files are stored in the Reports\Temp folder. A default name will be chosen if one is not given.

Example

https://server:81?KEY=mysecretkey&API=CREATE_CHART&STATID=4812&MONTYPE=8
&MINUTES=180&COLOR=008000

Output

:OK:
C:\Program Files\PA Server Monitor\Reports\Temp\SingleChart_48127.jpg

GET_PERF_STATS

Returns internal monitoring system performance metrics. Note that these can also be enabled and retrieved as Windows performance counters. For the list of values returned, the first column is the performance ID, the second column is the name, and the third column is the performance value.

Required Parameters
NONE

Optional Parameters
IDS - comma separated list of performance IDs to return. If IDS is not give, all performance values are returned.

Example

https://server:81?KEY=mysecretkey&API=GET_PERF_STATS&IDS=68,69

Output

:OK:
68 FileSightRecsHandled 3289
69 TotalMonitorsRun 1070110

DISCOVERY_CONFIG

Scan an IP address range for new servers that aren't being monitored, and run Smart Config for the new servers. The Discovery and Smart Config procedures can take some time, so an OK result means that the process has been started.

Required Parameters
START - Start of IP address range
END - End of IP address range

Example

https://server:81?KEY=mysecretkey&API=DISCOVERY_CONFIG&START=192.168.0.1
&END=192.168.0.254

Output

:OK:

ADD_SERVER

Add and optionally configure the named server

Required Parameters
SERVER - name of the server that should be added. If the server already exists, it will be operated on (WIN, WMI and GROUP will not have an effect in that case).

Optional Parameters
WIN={0|1} - defaults to 0. Set to 1 if this is a Windows server.

WMI={0|1} - defaults to 0. Set to 1 if WMI polling should happen to collect System Details information for the server status report

CONFIG_PATH - defaults to none. Full path to a .cxml config file that specifies a configuration that should be applied to the new server. .cxml files are created by exporting a computer's configuration, or by using the EXPORT_SERVER API below. The file must be on the same computer as PA Server Monitor is running on.

GROUP - defaults to none (which implies the top level group). The full path to the group that the server should be placed in, for example: Servers/Devices^Seattle^Exchange Servers (where the ^ delimits group names).

SATID - Satellite ID. Defaults to the Central Service. Satellite IDs can be obtained in the Console by looking at the Satellite's status report. They generally look something like: 51fa284a-58d6-41a0-870e-1cbd7db6c12a

GETID={0|1} - defaults to 0. If set to 1, this function will wait (possibly a long time) until the new device is added so the Computer ID (CID) value can be returned.

Example

https://server:81?KEY=mysecretkey&API=ADD_SERVER&SERVER=MAILSRV2&WIN=1&WMI=1&GETID=1
&CONFIG_PATH=C:\Configs\Mail+Config.cxml

Output

:OK:
471

The 471 above is the newly created Computer ID (CID) that is returned because GETID=1. Without GETID=1, the Output would simply be :OK:

DELETE_SERVER

Delete the named server, along with all of its monitors

Required Parameters
CID - Computer ID for the computer to target for the operation.
{deprecated} SERVER - name of the server that should be deleted

Example

https://server:81?KEY=mysecretkey&API=DELETE_SERVER&CID=125

Output

:OK:

EXPORT_SERVER

Exports the configuration of the specified server in a .cxml file. Per-server passwords (if any) are NOT exported.

Required Parameters
CID - Computer ID for the computer to target for the operation.
- or -
SERVER - Name of the computer to target. If there are multiple computers with the same name (perhaps at different locations), which one is returned is not defined.

Optional Parameters
PATH - Full path to the output file. If this is not given, the file will be saved to C:\Program Files\PA Server Monitor\Config\Backup\Export_Computer_{CID}.cxml

Note: Be careful where these files are saved as some monitor configurations might contain sensitive information.

Example

https://server:81?KEY=mysecretkey&API=EXPORT_SERVER&CID=125

Output

:OK:

ADD_GROUP

Add the given group if it doesn't already exist

Required Parameters
NAME - Full of the group name. For example, a group named "Exchange Servers" under the top "Servers\Devices" would set NAME to Servers\Devices^Exchange%20Servers (delimit groups with ^, URL encode, so a space becomes %20)

Example

https://server:81?KEY=mysecretkey&API=ADD_GROUP&NAME=Servers\Devices^New%20York^Web

Output

:OK:
123

The 123 above is the new Group ID (referred to as GID in some other functions)

DELETE_GROUP

Delete the named group. If it contains child groups or servers, they will become orphaned and moved to the top Servers\Devices group the next time the monitoring service is restarted.

Required Parameters
NAME - Full of the group name. For example, a group named "Exchange Servers" under the top "Servers\Devices" would set NAME to Servers\Devices^Exchange%20Servers (delimit groups with ^, URL encode, so a space becomes %20)

Example

https://server:81?KEY=mysecretkey&API=DELETE_GROUP
&NAME=Servers\Devices^New%20York^Web

Output

:OK:

SET_GROUP_PROP

Sets a custom property on a group. If the property value is empty, the custom property is removed.

Required Parameters
GID - Group ID for the group to target for the operation.

PROPNAME - Name of the property to set
PROPVAL - Value of the property to set

Example

https://server:81?KEY=mysecretkey&API=SET_GROUP_PROP&GID=0
&PROPNAME=ONCALL&PROPVAL=555-555-1234

Output

:OK:

GET_GROUP_PROP

Retrieves a custom property on a group. If the property is not defined, an empty value is returned.

Required Parameters
GID - Group ID for the group to target for the operation.

PROPNAME - Name of the property to retrieve

Example

https://server:81?KEY=mysecretkey&API=GET_GROUP_PROP&GID=0&PROPNAME=ONCALL

Output

:START:
555-555-1234
:END:

DO_BACKUP

Once a day and any time the monitoring service starts, the configuration is backed up to C:\Program Files\PA Server Monitor\Config\Backup. Using this API command, you can force the backup to happen on demand.

Optional Parameters
EXPORTCREDS - Backups normally do NOT contain all of the credentials that a system might have (credentials for accessing other servers, SMTP mail account credentials, database connection string, etc). If you must backup the credentials, you can append &EXPORTCREDS=1 to the end of the URL below and credentials will be saved in plain text in the backup file.

ionicons-v5-h

Note: Be VERY careful about using this option. Exporting credentials can be globally disabled by setting

HKEY_LOCAL_MACHINE\software\PAServerMonitor\Protected
[DWORD] DisablePasswordExport = 1

Example

https://server:81?KEY=mysecretkey&API=DO_BACKUP

Output
A new backup file named Backup1.axml is created in C:\Program Files\PA Server Monitor\Config\Backup

GOTO_SERVER_REPORT

Pass a server name and get forwarded to that server's status report

Required Parameters
CID - Computer ID for the computer to target for the operation.
{deprecated} SERVER - name of the server

Example

https://server:81?KEY=mysecretkey&API=GOTO_SERVER_REPORT&CID=362

Output
Browser gets redirected to the given server's status report page

GET_MONITOR_CONFIG

Retrieves a monitor's XML configuration. This can also be retrieve manually in the Console by first enabling the Console_ShowExportMonitor option in Advanced Services > Advanced Settings. Once that is done, you can right-click a monitor and click the new Export Monitor Configuration menu option.

Required Parameters
MID - Monitor ID for the target monitor

Example

https://server:81?KEY=mysecretkey&API=GET_MONITOR_CONFIG&MID=198709

Output
The XML configuration data is returned which will look similar to:

<?xml version="1.0"?><checksum value="3272823308">
<Obj-Monitor2 ver="3">
...

SET_MONITOR_CONFIG

Set the configuration of a monitor to new values. Often this XML would have been retrieved using GET_MONITOR_CONFIG or from the Console.

Required Parameters
MID - Monitor ID for the target monitor
CONFIG - The monitor configuration XML

ionicons-v5-h

Important: If the XML is not valid, there is a chance the monitoring service will crash when loading the monitor. Great care should be used in manipulating the XML. If the service crashes, you may need to restore from the configuration backup which is stored in the Config\Backup folder.

In addition, because of the format and size of the typical monitor XML, this API usually needs to be called via a POST rather than a GET.

Example

wget.exe --no-check-certificate --post-file=C:\Data\SetMonitor.txt https://localhost:81

See the contents of SetMonitor.txt to see the URL-encoded content that is sent as a form post.

Note that at the top you'll see the familiar

KEY=mysecretkey&API=SET_MONITOR_CONFIG&MID=198709&CONFIG={encoded XML}

Output

:OK:
ADD_MONITOR

Adds a new monitor to a server. Often this XML would have been retrieved using GET_MONITOR_CONFIG or from the Console.

Required Parameters
CID - Target Computer ID for the computer that the monitor will be added to
CONFIG - The monitor configuration XML

ionicons-v5-h

Important: If the XML is not valid, there is a chance the monitoring service will crash when loading the monitor. Great care should be used in manipulating the XML. If the service crashes, you may need to restore from the configuration backup which is stored in the Config\Backup folder.

In addition, because of the format and size of the typical monitor XML, this API usually needs to be called via a POST rather than a GET.

Example

wget.exe --no-check-certificate --post-file=C:\Data\AddMonitor.txt https://localhost:81

See the contents of AddMonitor.txt to see the URL-encoded content that is sent as a form post.

Note that at the top you'll see the familiar

KEY=mysecretkey&API=ADD_MONITOR&CID=3579&CONFIG={encoded XML}

Output

:OK:
456

The 456 above is the newly added Monitor ID (referred to as MID in other functions)

Monitor Statuses

Alert2
Alert - Skipping Actions10
Alert - Green17
Alert - Red18
Alert - Suppressing19
Bad License14
Can't Run4
Dependency Not Met16
Disabled6
Error3
Error - Suppressed21
OK1
OK - Unacknowledged Alerts - Yellow20
OK - Unacknowledged Alerts - Red24
OK - Unacknowledged Alerts - Green25
Monitor Busy11
Monitor Maintenance Mode13
Satellite Disconnected23
Scheduled7
Server Disabled22
Server Maintenance Mode26
Startup Pause8
Training12
Unlicensed9

PA Server Monitor

Help Map