Skip to content

Pause, enable and delete a monitor

View as Markdown

Besides editing its settings, a monitor has four lifecycle actions: pause (stop checking, keep everything), enable (resume), reset statistics (start the uptime history over) and delete (remove it for good).

Setting (app label) API field (v2) Type / allowed values Default Plan limits What it does for you
Monitoring enabled (create form), Enabled / Paused (edit panel header) enabled true / false true Enabling counts against your plan’s monitor limit; paused monitors do not false pauses: no checks and no alerts until you enable it again.
- state (read-only) up, down, maintenance, paused - - Reads paused both for monitors you paused and for monitors switched off by your plan’s limit.

Use pause for planned work you do not want to set up a maintenance window for, or for a site you are not watching right now.

  1. On Sites, open the monitor’s row menu and choose Disable (or switch the Enabled toggle in the monitor’s edit panel).
  2. Confirm Pause “…”? - “Checks and alerts stop until you enable it again. History is kept.”

Many at once: select them and click Disable in the bulk bar, or Edit -> Monitoring state -> Paused (see Bulk operations).

While a monitor is paused:

  • no checks run and no alerts are sent;
  • its state reads paused;
  • its settings, subscriptions, results and incidents are kept; the paused period appears as a gap in its history (disabledSpans in expand=spans), not as downtime;
  • it does not count toward your plan’s limit of active monitors.
  1. On Sites, open the row menu and choose Enable (or switch the edit panel’s toggle to Enabled).
  2. The monitor is picked up by the scheduler within about a minute and continues on its normal schedule.

If enabling would take you over your plan’s monitor limit, it is refused and the monitor stays paused (“Failed to enable monitor”). Pause or delete another monitor, or upgrade, and try again.

Over-limit monitors. When your plan’s limit is lower than the number of enabled monitors (for example after a downgrade), some monitors are switched off automatically. They keep enabled: true but read state: "paused" and show Over limit on the dashboard (“This monitor is over your package limits and isn’t being monitored. Upgrade your package or free up capacity to re-enable it.”).

Clears a monitor’s computed uptime and state history and starts fresh; the monitor keeps running. In the row menu choose Reset Stats and confirm (“This deletes the computed uptime and state history. Monitoring continues and starts with fresh statistics.”). For many monitors use Reset Stats in the bulk bar.

  1. On Sites, open the row menu and choose Delete (or select several and click Delete in the bulk bar).
  2. Confirm Delete “…”? - “This permanently deletes the monitor and its history. It cannot be undone.”

Deleting removes the monitor and its history, its alert and report subscriptions, its place in maintenance windows, and the results of its attached sub-checks. None of it can be read from the app or the API afterwards.

Terminal window
# Pause (scope monitor:write)
curl -X PATCH "https://api2.host-tracker.com/monitor/$MONITOR_ID" \
-H "Authorization: Bearer $HT_TOKEN" -H "Content-Type: application/json" \
-d '{ "enabled": false }'
# Resume; "onOverlimit": "disable" applies the rest of the patch but leaves the monitor off
# (instead of refusing) when your plan has no room
curl -X PATCH "https://api2.host-tracker.com/monitor/$MONITOR_ID" \
-H "Authorization: Bearer $HT_TOKEN" -H "Content-Type: application/json" \
-d '{ "enabled": true }'
# Reset statistics (asynchronous job; Idempotency-Key required)
curl -X POST "https://api2.host-tracker.com/monitor/$MONITOR_ID/reset-stats" \
-H "Authorization: Bearer $HT_TOKEN" -H "Idempotency-Key: reset-$MONITOR_ID-1"
# Delete - answers with a receipt of what was removed with it
curl -X DELETE "https://api2.host-tracker.com/monitor/$MONITOR_ID" -H "Authorization: Bearer $HT_TOKEN"
# { "id": "...", "deleted": true, "type": "http", "name": "Shop", "url": "https://shop.example.com/",
# "cascaded": { "alertSubscriptions": 2, "reportSubscriptions": 1, "maintenanceSubscriptions": 0 } }
  • Many monitors: POST /monitor/bulk-update with { "patch": { "enabled": false } }, { "operation": "resetStats" }, or POST /monitor/bulk-delete - see Bulk operations.
  • MCP: pause_monitor and resume_monitor (id), delete_monitor (call once to see the monitor, then again with confirmed=true), bulk_update_monitors (operation=resetStats or patchJson {"enabled":false}), bulk_delete_monitors.
  • To follow these changes from another system, subscribe a webhook to monitor.updated (a pause or resume arrives as one) and monitor.deleted.
  • Resuming over your plan’s limit answers 403 package_limit unless you send "onOverlimit": "disable".
  • A paused monitor still counts toward the total number of monitors an account may hold (your plan’s limit plus 5000, running and paused together); only deleting frees that room.
  • DELETE of a monitor that does not exist, or belongs to another account, answers 404 not_found.
  • A manual pause does not move the monitor’s updated timestamp, so GET /monitor?updatedSince= does not report it; use the monitor.updated webhook.