Check intervals
interval_seconds is how often an active probe runs. It is not a free-form number: it must be
one of a small set of tiers, and it must also clear your plan’s floor. Those are two different rules
with two different error codes, which is why “why can’t I pick 30 seconds?” has two possible answers.
The tiers
Section titled “The tiers”An interval that is not one of these is rejected as a validation error — a 400, before anything is
saved.
INTERVAL_TIERS— 30, 60, 300 secondsTLS_INTERVAL_TIERS— 30, 60, 300, 3600, 86400 secondsMULTISTEP_INTERVAL_TIERS— 60, 300 seconds
Which set applies is decided by the monitor’s type:
| Type | Tiers |
|---|---|
http |
INTERVAL_TIERS |
tcp |
INTERVAL_TIERS |
tls |
TLS_INTERVAL_TIERS |
dns |
INTERVAL_TIERS |
ping |
INTERVAL_TIERS |
heartbeat |
none |
multistep |
MULTISTEP_INTERVAL_TIERS |
Two of those rows are deliberate exceptions:
tlskeeps the frequent tiers and adds hourly and daily. A certificate does not change between two 30-second handshakes, so a daily check is enough to watch an expiry date. The handshake is still an uptime signal, so the frequent tiers remain valid if that is what you want from it.multistepdrops the fastest tier. One run issues many requests, so a 30-second synthetic transaction would hammer the target rather than measure it.
And one is not an exception but a different thing entirely: a heartbeat has no interval at all.
Setting one is a validation error. Its cadence is config.period_seconds, which may be anything
from 30 seconds to 604800 seconds — sub-minute health pings through weekly batch jobs. See
Monitor types.
The plan floor
Section titled “The plan floor”On top of the tier set, your plan carries a min_interval_seconds quota. An interval below it is
refused with 402 and the metric named — the request is valid, your plan does not include it.
| Plan | min_interval_seconds |
|---|---|
free |
300 |
basic |
60 |
premium |
30 |
enterprise |
30 |
So on Free, 30 is a legal tier and still refused: the tier check passes and the floor rejects it.
The two answers to “why can’t I pick 30 seconds” are therefore distinguishable by status code — 400
means the number is not a tier, 402 means your plan floors above it.
The floor is re-checked when you edit a monitor, not only when you create one.
The timeout is bound to the interval
Section titled “The timeout is bound to the interval”timeout_ms must be strictly less than interval_seconds × 1000, and must itself be between
1000 and 60000 milliseconds. A probe that could still be running when the next one starts is not a
measurement of anything, so this is refused rather than clamped.
At the Free floor of 300 seconds a timeout has 300000 milliseconds of headroom, so the 60-second ceiling binds first. At 30 seconds the interval binds: 29999 is the highest legal value.
What the interval does not control
Section titled “What the interval does not control”- How fast an incident opens. That is the detection rule — consecutive failures, then a corroborating probe from a second location. A longer interval makes each of those steps take longer in wall-clock time, but the count does not change. See Getting started.
- How long results are kept. That is the
history_window_daysquota. - How many locations probe. Each location probes on the same interval independently, so a monitor on three locations at 60 seconds issues three requests a minute, not one.