Create an Email Server (POP/SMTP/IMAP) Monitor

Last modified on May 22, 2024

With AlertSite Management API, you can create email server monitors to monitor your POP3, IMAP, and SMTP servers.

To create a new email monitor, send a POST request with a JSON body containing the monitor configuration to the appropriate endpoint which depends on the type of your tested email server:

Email server Endpoint
IMAP /monitors/email-imap
POP3 /monitors/email-pop
SMTP /monitors/email-smtp

Request URL

IMAP email monitor


POP3 email monitor


SMTP email monitor



The request must include the Authorization header containing a user’s access token:

Authorization: Bearer ACCESS_TOKEN

See Authentication for more information.

The authenticating user must have permissions to create monitors.

Request body

The request body is a JSON object containing the monitor configuration parameters. The required data fields for email monitors are:

  • billing_plancode

  • name

  • hostname

For the full list and description of available fields, see Email server monitor fields.

Parameters that are not specified in the request body will take the values specified in AlertSite defaults and your account defaults. For example, if you do not specify locations for the monitor, it will use your account's default monitoring locations.

Below are the minimal examples of email monitor parameters:

Email IMAP monitor

Email POP3 monitor

Email SMTP monitor

Response body

On success, the operation returns the ID of the created monitor.

  "id": "123456"

Error responses have a non-200 status code and contain the errors list, such as:

  "errors": [
      "code": 400,
      "message": "invalid_request - User authentication failed."

Try it out

POST /monitors/email-imap

POST /monitors/email-pop

POST /monitors/email-smtp

Code examples

This code creates a 15-minute SMTP email monitor.

cURL (Windows)

curl -X POST
  -H "Authorization: Bearer ACCESS_TOKEN"
  -H "Content-Type: application/json"
  -d '{\"billing_plancode\":\"UBM - A/A\", \"name\":\"Email Sample Monitor\", \"hostname\":\"\", \"interval\":15, \"enabled\":true}'

Note: New lines are added for readability.
The actual command should be one continuous line.

cURL (bash)

curl -X POST \
  -H "Authorization: Bearer ACCESS_TOKEN" \
  -H "Content-type: application/json" \
  -d '{"billing_plancode":"UBM - A/A", "name":"Email Sample Monitor", "hostname":"", "interval":15, "enabled":true}'


import requests # Requests library
import json

baseUrl = ''
username = '[email protected]'  # Replace with your AlertSite login email
password = 'pa55w0rd'          # Replace with your AlertSite password

monitor_params = {
  'billing_plancode': 'UBM - A/A',
  'name': 'Email Sample Monitor',
  'hostname': '',
  'interval': 15,
  'enabled': True

# Login
payload = {'username': username, 'password': password}
r ='/access-tokens', data=json.dumps(payload), headers={'Content-Type': 'application/json'})
token = r.json()['access_token']

# Create the monitor
headers = {
  'Authorization': 'Bearer ' + token,
  'Content-Type': 'application/json'
r ='/monitors/email-smtp', data=json.dumps(monitor_params), headers=headers)
result = r.json()
if r.status_code ==
    monitor_id = result['id']
    print('Successfully created the monitor. ID:{}'.format(monitor_id))
    print('Could not create a monitor. The following error(s) occurred:', *result['errors'], sep='\n')

See Also

Monitor Operations
Edit an Email Server (POP/SMTP/IMAP) Monitor
Delete Monitor

Highlight search results