AlertSite offers two APIs to manage monitors: JSON API and XML API, each has its own capabilities and syntax. This document describes the JSON API. Documentation for the XML API is available in the AlertSite XML API topic.
AlertSite JSON API is a RESTful web service that allows you to manage monitors programmatically by sending and receiving JSON data to/from the AlertSite server. You can use this API to:
-
List your existing monitors, optionally filtered by type.
-
Create new monitors, including DéjàClick, Selenium, and SoapUI monitors.
-
Edit monitors – enable or disable monitors, change monitoring locations, run interval, and so on.
-
Get information about available monitoring locations, including your private locations.
-
Delete monitors.
You can access the API using any programming language or tool that supports making HTTP requests and parsing JSON responses.
The JSON API does not include operations to configure monitor blackouts and performance alerts. Use the Management API to do that. |
Base URL
The base URL for all API requests is:
https://www.alertsite.com/alertsite-restapi
For example, POST /login
means a POST request to https://www.alertsite.com/alertsite-restapi/login
.
All requests are sent over a secure HTTPS connection.
JSON format
AlertSite REST API uses JSON as the data format for requests and responses. Requests containing a body (POST and PATCH) must include the Content-Type header:
Content-Type: application/json
Operations
AlertSite REST API provides the following operations:
Operation | Description |
---|---|
Login | Generates the session ID used to authenticate other API calls. |
Get Monitors | Returns the configuration information for one, several or all monitors. |
Get Locations | Returns information about all available monitoring locations, including private locations. |
Add Monitor | Creates a new monitor. Supports uploading of DéjàClick scripts, Selenium scripts and SoapUI projects. |
Edit Monitor | Updates the monitor configuration, for example, monitoring locations, run interval, enabled or disabled status. |
Delete Monitor | Deletes a monitor specified by ID. |
Note that the Add Monitor, Edit Monitor and Delete Monitor operations must be performed using an Admin, Co-Admin or Power User account.
Authentication
The first API call needs to be Login. It returns a session ID:
{
"metadata" : {
"login" : "[email protected]",
"session" : "ef770427109e343e",
"status" : "0",
"message" : "No errors."
}
}
This session ID is then used to authenticate other API calls.
There are two ways to authenticate requests:
-
By using the Authorization header.
-
By sending the login and session ID as query string parameters.
Using the authorization header (recommended)
Authentication is done by adding the following header to all requests:
Authorization: Bearer BEARER_TOKEN
BEARER_TOKEN is a base64-encoded string login:sessionId. For example, if your login is [email protected] and the session ID is ef770427109e343e, you need to Base64-encode the string [email protected]:ef770427109e343e, which gives you ZGVtb0BleGFtcGxlLmNvbTplZjc3MDQyNzEwOWUzNDNl. The final header will be:
Authorization: Bearer ZGVtb0BleGFtcGxlLmNvbTplZjc3MDQyNzEwOWUzNDNl
Pseudocode to calculate the bearer token and add the Authorization header looks like:
request.addHeader("Authorization", "Bearer " + encode_base64(login + ":" + session))
Using query parameters
Another way to authenticate API calls is to pass the login and session ID as part of the request query string:
PATCH /devices/1234?login=demo%40example.com&session=ef770427109e343e
Note that the email needs to be URL-encoded, for example, @ is converted to %40. Many programming languages provide a method to do this.
This approach is the most suitable for testing API calls using cURL, wget, SoapUI, or similar tools. For production code, we recommend using the Authorization header.
Session ID expiration
Session IDs returned by the Login operation expire after 15 minutes, but get refreshed with each API call. So, the session expires 15 minutes after your last API call. After that any API call that requires authentication will return a session error. In this case, you will need to call Login again to get a new session ID for authentication.
Monitor IDs
Some REST API operations require a numeric monitor ID. You can get a list of all your monitor IDs using the Get Monitors operation. You can also see monitor IDs in AlertSite:
AlertSite UXM
-
In monitor settings:
-
In the table on the Monitors > Overview > Config screen.
Errors
API responses include metadata with the status
and message
fields. Status 0 and message "No errors" indicate a successful request. Any other statuses indicate an error. For example:
{
"metadata": {
"login": "[email protected]",
"status": "40",
"message": "Invalid login information."
}
}
Possible errors and reasons are listed in the table below.
Code | Message | Comments |
---|---|---|
0 | No errors. | |
20 | Session is invalid. |
Possible reasons:
|
30 | Session failure. | The session ID is incorrect or has expired. Call Login again to get a new session ID for subsequent API calls. |
40 | Invalid login information. |
Possible reasons:
|
41 | Invalid user information. | |
47 | Your account has not yet been activated. | |
48 | Your login account has insufficient access to use this feature. | The operation requires an Admin, Co-Admin, or Power User account, but was called using a read-only or report-only account. |
56 | Service Agreement has not been accepted. | The specified user account has never logged into AlertSite before. Log in to AlertSite manually in your browser and accept the Service Agreement. |
60 | Missing or invalid data. | |
61 | Invalid request. Bad path. | Request URL is incorrect or misspelled. |
62 | Missing or invalid login parameters. | The login or password (or both) is not specified in the Login operation. |
63 | Malformed JSON request. |
POST and PATCH requests return this error if:
|
64 | Invalid parameter. Error [code] AlertSite. |
Common reasons for this error are:
Transaction requires between 1 and [max] steps, but you have 0This error can occur if the specified No credits available for this planYou have reached the monitor limit for the specified Feature not available with this planThe request body specifies a monitor parameter that is not supported by your AlertSite plan. If the error mentions a parameter not included in the request, this means that the default value of this parameter is not supported by your plan. Check the monitor configuration in AlertSite 1.0 to see which parameters and values are supported by your AlertSite plan. To avoid the error, change the request body to use a different value for the problematic parameter. For example, if the error says: Feature not available with this plan. ... (Follow Redirection? = YES) set the Follow Redirection parameter to No: "http_follow_redirects": "n" |
65 | Invalid device. |
Possible reasons:
|
66 | Invalid location(s). |
Possible reasons:
|
99 | Internal CGI error. | |
501 | Invalid HTTP Method. Allowed values are [method names] | For example, the request that should be made via POST was made via GET. |
API last access time
Admin and Co-Admins can see which users accessed AlertSite APIs and when they did it last on the Manage Users screen.
Limitations
Monitor types
-
BitBar monitors cannot be created or edited through the API, but they can be listed by the Get Monitors operation.
-
Uploading password-protected SoapUI projects through the API is not supported.
Monitor settings
AlertSite JSON API provides access to just a subset of monitor configuration settings. Supported settings are listed in Monitor Data Fields. The following settings cannot be read or changed through the JSON API.
Note: | To modify these settings, use the Management API instead. |
Common settings:
- Enable local retry
- Transaction tracing
- Allow AlertSite QA testing
- Performance alerts
- Monitor blackouts
- Custom properties
Web URL monitors:
- Emulate browser
- Use compression (emulate repeat visitor)
- Payload for POST requests and custom HTTP methods
DéjàClick monitor settings:
- Browser version
- Enable UX
- Show only root page UX values
Selenium monitor settings:
- Browser version
- Object timeout
API endpoint monitors:
- Authenticate pre-emptively
- Playback engine
Secure Web URL, Secure API endpoint, SoapUI, and FTPS monitor settings:
- SSL version
- SSL certificate
DNS monitor settings:
- Name to resolve
Code examples
This documentation includes code examples in Python and cURL that can be found in the Examples section in individual operation descriptions.
Python examples use the Requests library.
cURL is a command-line tool that allows you to make API calls from command line (Windows command prompt, OS X terminal or Linux shell) without having to write programming code. cURL is preinstalled on macOS and on many Linux systems. Windows users can download cURL from this web site: