Quotas and limits
Your plan sets several limits at once. This page explains what each one means, how to read your current numbers, and how a script or an AI assistant checks them before doing work that would otherwise be refused.
Monitor and feature limits
Section titled “Monitor and feature limits”| Limit | What it means | Where it’s enforced |
|---|---|---|
| Monitor count | The maximum number of enabled monitors your plan allows. Creating a new monitor beyond the cap is refused (or, when the request opts into it, lands the new monitor disabled instead); monitors you already have keep running. | 403 package_limit (API) / an in-app validation message |
| Check interval floor | The shortest interval a monitor on your plan can use. Some monitor types (certificate expiry, domain expiry, DNSBL: every 6 hours; Web Risk: every 12 hours) have their own fixed cadence regardless of plan. | 422 invalid_interval / 403 package_interval_conflict |
| Contacts | The maximum number of alert contacts, and a per-contact-type sub-cap (for example voice-call contacts may be capped lower, or unavailable, on some plans). | 403 package_limit |
| Reports | Which report frequencies (daily/weekly/monthly/quarterly/yearly) are available, if any. | refused subscription write |
| Status pages and subscribers | Each has its own plan-dependent cap. | in-app validation |
| Assertion rules per monitor | How many validation rules (AssertRuleLang) a single HTTP or API monitor can carry. | 422 on save |
| Bulk operation size | How many items a single bulk create/update/delete request may touch - published per account, not a flat constant. | 422 too_many_items |
See Plans and packages compared for how these scale across tiers, and Upgrade or downgrade for what happens if a change puts you over a limit.
Checking your current usage in the app
Section titled “Checking your current usage in the app”Open Billing -> Packages to see:
- Your plan’s limits.
- How much of each you’re currently using.
- Whether you’re at or near a cap.
Do it with the API or MCP
Section titled “Do it with the API or MCP”GET /account (MCP get_account) returns two blocks that answer “may I, and how much”:
usage.{monitor,contact,report,maintenance}-{used, allowed}per area;allowed: nullmeans unlimited, never zero.limits- the account’s allowed check intervals, alert-delay ladder, and the bulk-operation size caps (maxBulkItems,maxBulkSelection) your account may actually use (these can be smaller than the platform ceiling on a small plan).flags.apiEnabled- whether the account’s plan and billing state allow API access at all.
GET /account/quota (MCP get_account_quota) is the API rate-limit view, separate from the resource
limits above - call it first whenever another call answers 429 or a 403 you don’t understand:
{ "apiEnabled": true, "pools": { "account": { "limit": 6000, "used": 42, "remaining": 5958, "resetAt": 1758000000, "quotas": [ { "scope": "monitor:write", "quota": "requests-per-minute", "limit": 60, "used": 3, "remaining": 57, "resetAt": 1758000060, "windowSec": 60, "successOnly": false } ] }, "ic": { "limit": 100, "used": 5, "remaining": 95, "resetAt": 1758000000, "quotas": [ /* ... */ ] } }, "scopes": [ { "scope": "monitor:read", "description": "..." } ]}Quota is per user, per pool - account covers everything except instant checks, and ic covers instant
checks separately, each with its own tightest-binding window across possibly several configured windows
(minute, day, month). Every metered API response also carries RateLimit-Limit, RateLimit-Remaining and
RateLimit-Reset headers, plus a RateLimit-Policy header naming the exact quota that applies to that call -
you don’t have to call GET /account/quota just to read your remaining budget on a normal request.
Limits and gotchas
Section titled “Limits and gotchas”- A request over the rate limit gets
429with aRetry-Afterheader (and, on the anonymous/reference tier,rate_limitedwith the window length). This is separate from a403 package_limit, which means your plan doesn’t include the resource or feature at all, not that you’re calling too fast. usage.<area>.allowed: nullmeans unlimited - never compare it tousedas if it were a real number.- A token can carry its own self-imposed cap (
tokenCap, tighter than the account limit) -GET /account/quotaechoes it when present so a client can tell the two apart.

