Heartbeat Monitors

List heartbeat monitors.

get

This resource uses a 'cursor' to paginate. 'start-index' has no effect here.

Authorizations
Query parameters
cursorstringOptional

A cursor identifying the current position in the pagination, leave empty to start at the first item, each call returns a 'next-cursor' header for the next page, do not alter the cursor yourself.

Default: null
max-resultsinteger · int32 · max: 200Optional

The maximum number of results when paging through a list of heartbeat monitors.

Default: 100
Responses
200
The heartbeat monitor objects
application/json
get
GET /api/heartbeat-monitors HTTP/1.1
Host: 
Authorization: YOUR_API_KEY
Accept: */*
200

The heartbeat monitor objects

[
  {
    "id": 1,
    "name": "text",
    "state": "UNKNOWN",
    "intervalSec": 1,
    "alertSummary": "text",
    "createdAt": "text",
    "updatedAt": "text",
    "teams": [
      {
        "id": 1,
        "name": "text"
      }
    ]
  }
]

Create a new heartbeat monitor.

post

The 'integrationKey' field cannot be set as it is generated automatically. Note: if you are building installation scripts for your hosts, you may send deterministic names and ?include=integrationUrl to still return the 'response.body.integrationUrl' field on 409 (already existing resource) conflict responses. This allows you to run installations with a simple single POST request.

Authorizations
Query parameters
Body
namestringRequired
intervalSecinteger · int32 · min: 25 · max: 2678400Required

We recommend using an interval between 3 and 5 minutes, while pinging every 60 seconds. Of course if you are tracking use-cases like backup jobs that run once a week, a larger timeout and less pings suffice.

alertSummarystringOptional
Responses
201
Your newly created heartbeat monitor
application/json
post
POST /api/heartbeat-monitors HTTP/1.1
Host: 
Authorization: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 76

{
  "name": "text",
  "intervalSec": 1,
  "alertSummary": "text",
  "alertSource": {
    "id": 1
  }
}
{
  "id": 1,
  "name": "text",
  "state": "UNKNOWN",
  "intervalSec": 1,
  "alertSummary": "text",
  "createdAt": "text",
  "updatedAt": "text",
  "alertSource": {
    "id": 1,
    "teams": [
      {
        "id": 1,
        "name": "text"
      }
    ],
    "name": "text",
    "iconUrl": "text",
    "lightIconUrl": "text",
    "darkIconUrl": "text",
    "escalationPolicy": {
      "id": 1,
      "name": "text",
      "escalationRules": [
        {
          "escalationTimeout": 1,
          "user": {
            "id": 1
          },
          "schedule": {
            "id": 1
          },
          "users": [
            {
              "id": 1,
              "firstName": "text",
              "lastName": "text"
            }
          ],
          "schedules": [
            {
              "id": 1,
              "name": "text",
              "type": "STATIC"
            }
          ]
        }
      ],
      "teams": [
        {
          "id": 1,
          "name": "text"
        }
      ],
      "repeating": false,
      "frequency": 1,
      "delayMin": 0,
      "routingKey": "text"
    },
    "integrationType": "NAGIOS",
    "integrationKey": "text",
    "integrationUrl": "text",
    "autoResolutionTimeout": "text",
    "alertGroupingWindow": "text",
    "alertCreation": "ONE_ALERT_PER_EMAIL",
    "status": "PENDING",
    "active": true,
    "alertPriorityRule": "HIGH",
    "supportHours": {
      "id": 1
    },
    "bidirectional": true,
    "summaryTemplate": {
      "textTemplate": "text",
      "elements": [
        {
          "type": "TEXT",
          "val": "text",
          "func": "text",
          "args": [
            {
              "S": "text",
              "N": 1
            }
          ]
        }
      ]
    },
    "detailsTemplate": {
      "textTemplate": "text",
      "elements": [
        {
          "type": "TEXT",
          "val": "text",
          "func": "text",
          "args": [
            {
              "S": "text",
              "N": 1
            }
          ]
        }
      ]
    },
    "routingTemplate": {
      "textTemplate": "text",
      "elements": [
        {
          "type": "TEXT",
          "val": "text",
          "func": "text",
          "args": [
            {
              "S": "text",
              "N": 1
            }
          ]
        }
      ]
    },
    "linkTemplates": [
      {
        "text": "text",
        "hrefTemplate": {
          "textTemplate": "text",
          "elements": [
            {
              "type": "TEXT",
              "val": "text",
              "func": "text",
              "args": [
                {
                  "S": "text",
                  "N": 1
                }
              ]
            }
          ]
        }
      }
    ],
    "priorityTemplate": {
      "valueTemplate": {
        "textTemplate": "text",
        "elements": [
          {
            "type": "TEXT",
            "val": "text",
            "func": "text",
            "args": [
              {
                "S": "text",
                "N": 1
              }
            ]
          }
        ]
      },
      "mappings": [
        {
          "value": "text",
          "priority": "LOW"
        }
      ]
    },
    "eventFilter": "text",
    "alertKeyTemplate": {
      "textTemplate": "text",
      "elements": [
        {
          "type": "TEXT",
          "val": "text",
          "func": "text",
          "args": [
            {
              "S": "text",
              "N": 1
            }
          ]
        }
      ]
    },
    "eventTypeFilterCreate": "text",
    "eventTypeFilterAccept": "text",
    "eventTypeFilterResolve": "text"
  },
  "teams": [
    {
      "id": 1,
      "name": "text"
    }
  ],
  "integrationKey": "text",
  "integrationUrl": "text"
}

Get the heartbeat monitor with specified id.

get
Authorizations
Path parameters
idstringRequired

numeric entity id

Query parameters
Responses
200
the heartbeat monitor object
application/json
get
GET /api/heartbeat-monitors/{id} HTTP/1.1
Host: 
Authorization: YOUR_API_KEY
Accept: */*
200

the heartbeat monitor object

{
  "id": 1,
  "name": "text",
  "state": "UNKNOWN",
  "intervalSec": 1,
  "alertSummary": "text",
  "createdAt": "text",
  "updatedAt": "text",
  "alertSource": {
    "id": 1,
    "teams": [
      {
        "id": 1,
        "name": "text"
      }
    ],
    "name": "text",
    "iconUrl": "text",
    "lightIconUrl": "text",
    "darkIconUrl": "text",
    "escalationPolicy": {
      "id": 1,
      "name": "text",
      "escalationRules": [
        {
          "escalationTimeout": 1,
          "user": {
            "id": 1
          },
          "schedule": {
            "id": 1
          },
          "users": [
            {
              "id": 1,
              "firstName": "text",
              "lastName": "text"
            }
          ],
          "schedules": [
            {
              "id": 1,
              "name": "text",
              "type": "STATIC"
            }
          ]
        }
      ],
      "teams": [
        {
          "id": 1,
          "name": "text"
        }
      ],
      "repeating": false,
      "frequency": 1,
      "delayMin": 0,
      "routingKey": "text"
    },
    "integrationType": "NAGIOS",
    "integrationKey": "text",
    "integrationUrl": "text",
    "autoResolutionTimeout": "text",
    "alertGroupingWindow": "text",
    "alertCreation": "ONE_ALERT_PER_EMAIL",
    "status": "PENDING",
    "active": true,
    "alertPriorityRule": "HIGH",
    "supportHours": {
      "id": 1
    },
    "bidirectional": true,
    "summaryTemplate": {
      "textTemplate": "text",
      "elements": [
        {
          "type": "TEXT",
          "val": "text",
          "func": "text",
          "args": [
            {
              "S": "text",
              "N": 1
            }
          ]
        }
      ]
    },
    "detailsTemplate": {
      "textTemplate": "text",
      "elements": [
        {
          "type": "TEXT",
          "val": "text",
          "func": "text",
          "args": [
            {
              "S": "text",
              "N": 1
            }
          ]
        }
      ]
    },
    "routingTemplate": {
      "textTemplate": "text",
      "elements": [
        {
          "type": "TEXT",
          "val": "text",
          "func": "text",
          "args": [
            {
              "S": "text",
              "N": 1
            }
          ]
        }
      ]
    },
    "linkTemplates": [
      {
        "text": "text",
        "hrefTemplate": {
          "textTemplate": "text",
          "elements": [
            {
              "type": "TEXT",
              "val": "text",
              "func": "text",
              "args": [
                {
                  "S": "text",
                  "N": 1
                }
              ]
            }
          ]
        }
      }
    ],
    "priorityTemplate": {
      "valueTemplate": {
        "textTemplate": "text",
        "elements": [
          {
            "type": "TEXT",
            "val": "text",
            "func": "text",
            "args": [
              {
                "S": "text",
                "N": 1
              }
            ]
          }
        ]
      },
      "mappings": [
        {
          "value": "text",
          "priority": "LOW"
        }
      ]
    },
    "eventFilter": "text",
    "alertKeyTemplate": {
      "textTemplate": "text",
      "elements": [
        {
          "type": "TEXT",
          "val": "text",
          "func": "text",
          "args": [
            {
              "S": "text",
              "N": 1
            }
          ]
        }
      ]
    },
    "eventTypeFilterCreate": "text",
    "eventTypeFilterAccept": "text",
    "eventTypeFilterResolve": "text"
  },
  "teams": [
    {
      "id": 1,
      "name": "text"
    }
  ],
  "integrationKey": "text",
  "integrationUrl": "text"
}

Update an existing heartbeat monitor.

put

ATTENTION: changing 'intervalSec' will regenerate the 'integrationKey', you will have to update your monitoring integrations.

Authorizations
Path parameters
idnumberRequired

entity ID

Body
namestringRequired
intervalSecinteger · int32 · min: 25 · max: 2678400Required

We recommend using an interval between 3 and 5 minutes, while pinging every 60 seconds. Of course if you are tracking use-cases like backup jobs that run once a week, a larger timeout and less pings suffice.

alertSummarystringOptional
Responses
200
the updated heartbeat monitor object
application/json
put
PUT /api/heartbeat-monitors/{id} HTTP/1.1
Host: 
Authorization: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 76

{
  "name": "text",
  "intervalSec": 1,
  "alertSummary": "text",
  "alertSource": {
    "id": 1
  }
}
200

the updated heartbeat monitor object

{
  "id": 1,
  "name": "text",
  "state": "UNKNOWN",
  "intervalSec": 1,
  "alertSummary": "text",
  "createdAt": "text",
  "updatedAt": "text",
  "alertSource": {
    "id": 1,
    "teams": [
      {
        "id": 1,
        "name": "text"
      }
    ],
    "name": "text",
    "iconUrl": "text",
    "lightIconUrl": "text",
    "darkIconUrl": "text",
    "escalationPolicy": {
      "id": 1,
      "name": "text",
      "escalationRules": [
        {
          "escalationTimeout": 1,
          "user": {
            "id": 1
          },
          "schedule": {
            "id": 1
          },
          "users": [
            {
              "id": 1,
              "firstName": "text",
              "lastName": "text"
            }
          ],
          "schedules": [
            {
              "id": 1,
              "name": "text",
              "type": "STATIC"
            }
          ]
        }
      ],
      "teams": [
        {
          "id": 1,
          "name": "text"
        }
      ],
      "repeating": false,
      "frequency": 1,
      "delayMin": 0,
      "routingKey": "text"
    },
    "integrationType": "NAGIOS",
    "integrationKey": "text",
    "integrationUrl": "text",
    "autoResolutionTimeout": "text",
    "alertGroupingWindow": "text",
    "alertCreation": "ONE_ALERT_PER_EMAIL",
    "status": "PENDING",
    "active": true,
    "alertPriorityRule": "HIGH",
    "supportHours": {
      "id": 1
    },
    "bidirectional": true,
    "summaryTemplate": {
      "textTemplate": "text",
      "elements": [
        {
          "type": "TEXT",
          "val": "text",
          "func": "text",
          "args": [
            {
              "S": "text",
              "N": 1
            }
          ]
        }
      ]
    },
    "detailsTemplate": {
      "textTemplate": "text",
      "elements": [
        {
          "type": "TEXT",
          "val": "text",
          "func": "text",
          "args": [
            {
              "S": "text",
              "N": 1
            }
          ]
        }
      ]
    },
    "routingTemplate": {
      "textTemplate": "text",
      "elements": [
        {
          "type": "TEXT",
          "val": "text",
          "func": "text",
          "args": [
            {
              "S": "text",
              "N": 1
            }
          ]
        }
      ]
    },
    "linkTemplates": [
      {
        "text": "text",
        "hrefTemplate": {
          "textTemplate": "text",
          "elements": [
            {
              "type": "TEXT",
              "val": "text",
              "func": "text",
              "args": [
                {
                  "S": "text",
                  "N": 1
                }
              ]
            }
          ]
        }
      }
    ],
    "priorityTemplate": {
      "valueTemplate": {
        "textTemplate": "text",
        "elements": [
          {
            "type": "TEXT",
            "val": "text",
            "func": "text",
            "args": [
              {
                "S": "text",
                "N": 1
              }
            ]
          }
        ]
      },
      "mappings": [
        {
          "value": "text",
          "priority": "LOW"
        }
      ]
    },
    "eventFilter": "text",
    "alertKeyTemplate": {
      "textTemplate": "text",
      "elements": [
        {
          "type": "TEXT",
          "val": "text",
          "func": "text",
          "args": [
            {
              "S": "text",
              "N": 1
            }
          ]
        }
      ]
    },
    "eventTypeFilterCreate": "text",
    "eventTypeFilterAccept": "text",
    "eventTypeFilterResolve": "text"
  },
  "teams": [
    {
      "id": 1,
      "name": "text"
    }
  ],
  "integrationKey": "text",
  "integrationUrl": "text"
}

Delete the specified heartbeat monitor.

delete
Authorizations
Path parameters
idnumberRequired

entity ID

Responses
204
if deletion was successful
delete
DELETE /api/heartbeat-monitors/{id} HTTP/1.1
Host: 
Authorization: YOUR_API_KEY
Accept: */*
204

if deletion was successful

No content

Was this helpful?