Skip to content

Check intervals

View as Markdown

The interval is how often a monitor runs its check. A shorter interval notices an outage sooner and gives finer response-time data; a longer one is enough for things that change slowly. For calendar-style schedules (“every Monday at 09:00”) use a cron schedule instead.

Setting (app label) API field (v2) Type / allowed values Default Plan limits What it does for you
Interval (under Interval schedule) interval Integer seconds; must be one of the account’s allowed values (GET /account -> limits.intervals) and at or above the type’s and your plan’s minimum App: per type (table below). API: 180 (3 minutes) Your plan sets the fastest interval How often the check runs.
Check interval (Profile -> Defaults) - (app only) 1, 3, 5, 10, 15, 30 min; 1, 6, 12, 24 h; or Built-in default Built-in default Types with a larger minimum keep their own The interval the Add Monitor form starts with.

The app offers a fixed list per type, so every monitor lands on a value the scheduler supports:

Monitor types Intervals offered in the app App default
Website/HTTPS, API, Ping, Port, Counter, SNMP 1, 2, 3, 5, 10, 15, 30, 45 min; 1, 2, 4, 6, 12, 24 h 3 min (SNMP 5 min)
Page speed, Transaction, Web content check, Database 10, 15, 30, 45 min; 1, 2, 4, 6, 12, 24 h 15 min (Page speed), 10 min (others)
Russian BL check 30, 45 min; 1, 2, 4, 6, 12, 24 h 1 h
SSL/TLS certificate expiry, Domain expiry, DNSBL Fixed: every 6 hours -
Web Risk Fixed: every 12 hours -
Site crawl Cron only (weekly by default) Mondays 03:00 UTC

On the API the same values are sent in seconds: 60, 120, 180, 300, 600, 900, 1800, 2700, 3600, 7200, 14400, 21600, 43200, 86400. The authoritative list for your account is limits.intervals in GET /account; a value outside it is refused with 422 invalid_interval, and the error’s allowed array lists the valid ones.

Two floors apply on top of the allowed list, and the stricter one wins:

  • Your plan’s floor. The permanent free plan checks every 30 minutes; the 30-day trial and the faster paid plans allow checks every minute (the exact floor depends on the plan). A plan can also set its own floor for specific types (for example Page speed). An interval below your plan’s floor is refused with 403 package_limit (“Your package’s minimum check interval is …”).
  • The type’s own floor. Some checks are expensive or change slowly, so HostTracker sets a minimum regardless of plan:
Type Minimum interval
Page speed (waterfall), Database (database) 10 minutes
Russian BL check (http with preset bl:ru) 30 minutes
DNSBL, Domain expiry, SSL/TLS certificate expiry 6 hours (fixed)
Web Risk 12 hours (fixed)
Site crawl 1 day (cron only)
Every other type No minimum above 1 minute

An interval below the type’s floor is refused with 422 interval_below_type_floor (the error carries minInterval). If no allowed interval satisfies both floors - a type whose minimum is above everything your plan offers - the answer is 403 package_interval_conflict.

To read your effective floor per type, call GET /monitor/type with your token: each row’s accountLimits.minInterval (seconds) is the larger of the type’s floor and your plan’s, and fixedInterval is present for the fixed-cadence types. MCP: list_monitor_types.

DNSBL, Domain expiry and SSL/TLS certificate expiry monitors always run every 6 hours, and Web Risk monitors every 12 hours. The app shows no interval control for them. On the API you can omit interval - the monitor is created at its fixed cadence; a value you do send is still checked against the allowed list and the type’s floor, then the fixed cadence is stored anyway. A cron schedule is not supported for these types (it is cleared with a warning).

The same four checks attached to a website monitor (see Attached sub-checks) run every 12 hours, whatever the parent monitor’s interval.

  1. On Sites, open the monitor (or click Add Monitor for a new one).
  2. Expand Main Settings.
  3. Make sure Interval schedule is selected (not Cron schedule).
  4. Pick the value in the Interval dropdown, or drag the slider.
  5. Save.

To change the interval of many monitors at once, select them on Sites and use Edit -> Monitoring interval (see Bulk operations).

Terminal window
# Every 5 minutes (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 '{ "interval": 300 }'
  • Create: include "interval": 300 in POST /monitor. Omit it to get 3 minutes (or the fixed cadence).
  • Switch a cron-scheduled monitor back to an interval: { "cronSchedule": null, "interval": 300 }.
  • MCP: update_monitor (id, interval) and create_monitor (interval). Pass seconds (300 = 5 minutes): the value is forwarded unchanged to the API’s interval field.
  • Many monitors: POST /monitor/bulk-update with { "ids": [...], "patch": { "interval": 300 } }, MCP bulk_update_monitors.

The scheduler picks up the new cadence within about a minute of saving; from then on checks are spaced by the new interval. Results already recorded are not changed.

  • If you create a monitor without interval and 3 minutes is not allowed for that type on your plan, the API answers 422 validation_failed with reason: "required" at /interval and lists the allowed values - send an explicit interval.
  • A bulk interval change over mixed types fails, item by item, for monitors whose type floor is above the chosen value (interval_below_type_floor); the others are updated.
  • If your plan changes to one with a slower floor, monitors that run faster are slowed to the new floor automatically.
  • A monitor that has a cron schedule stores interval: 0; the two schedules are alternatives.