Concepts

Plans & limits

Quotas, minimum check intervals, and feature gates per plan.

Authoritative source: apps/web/src/lib/plans.ts — table below mirrors that file.

Limit / featureFreeProBusinessEnterprise
Max monitors550200unlimited
Min check interval3 min30 sec10 sec5 sec
Allowed monitor typeshttp, pinghttp, ping, tcp, dns, keyword+ udp+ udp
Custom HTTP request headers——✓✓
Status pages13unlimitedunlimited
Status page password protection——✓✓
Maintenance windows—✓✓✓
Data retention7 days90 days365 days730 days
API access—read-onlyfullfull
Alert channelsemail+ slack, discord, telegram+ webhook+ webhook

Hitting a limit

When you try to create a resource that would exceed your plan, the API returns:

HTTP/1.1 403 Forbidden

{ "error": "The webhook alert channel requires a higher plan. Please upgrade." }

Creation and updates must fit the current plan. A downgrade can pause incompatible monitors or disable unsupported channels. Review your monitor and channel settings after changing plans.

Rate limits

Rate limits apply independently of feature limits and may use endpoint, account, API-key, and IP buckets. See rate limits for handling 429 responses.

Notes

  • Webhook alert channels are Business+ — channel creation enforces this. The udp monitor type is also Business+.
  • keyword monitor type is Pro+ — fetches an HTTP body and asserts a substring is present.
  • Maintenance windows are Pro+ — POST /maintenance-windows returns 403 on Free.
  • API tier is enforced for API-key auth: Free returns 403 on every call, Pro accepts GET/HEAD only, Business and Enterprise have full access. The dashboard (session-based) bypasses this and works on every plan.

Custom domains and team membership management are not currently offered. Status pages use the hosted obzerv.xyz/status/<slug> URL.