Plan limits
Side-by-side comparison of what every plan ships with — bot count, intervals, retention, alert channels, and feature gates.
The full feature matrix across the three plans. All values are server-enforced — the UI mirrors them, but the API is authoritative.
Pricing
Tax-exclusive USD. Paddle adds VAT at checkout based on your country.
| Plan | Monthly | Annual | Annual / month |
|---|---|---|---|
| Starter | Free | Free | — |
| Pro | $19 | $180 | $15 |
| Business | $79 | $780 | $65 |
Annual saves ~21% on Pro, ~18% on Business. Switch between monthly and annual on the billing page; the proration is handled automatically.
Bots per account
| Plan | Limit |
|---|---|
| Starter | 1 |
| Pro | 5 |
| Business | Unlimited |
Enforced at bot-create time. Trying to create more than your plan allows returns a 403 with a "limit reached" message and a link to the upgrade page.
Monitoring interval
How often CloudLine's BotMonitor wakes up to evaluate the bot's status. Also the default heartbeat cadence the SDK uses.
| Plan | Default interval | Customizable? |
|---|---|---|
| Starter | 60 s | No — fixed. |
| Pro | 30 s | No — fixed. |
| Business | 10 s | Yes — pick from 10 / 20 / 30 / 45 / 60 s. |
A shorter interval means faster offline detection but more heartbeat traffic. The Business 10-second option is for status-page operators and paid-SaaS bots where users notice every minute of downtime.
Offline threshold
How many missed heartbeats before the bot is marked offline.
| Plan | Threshold |
|---|---|
| Starter | Fixed at 2 missed heartbeats (~2 minutes). |
| Pro | Configurable: 1, 2, or 3. |
| Business | Configurable: 1, 2, or 3. |
A threshold of 1 fires as soon as a single heartbeat is late. A threshold of 3 waits for three in a row.
Alert channels
| Channel | Starter | Pro | Business |
|---|---|---|---|
| Discord webhook | ✓ | ✓ | ✓ |
| — | ✓ | ✓ |
On the Starter plan, the email field is server-side stripped on every save — even if you bypass the UI gate, the value is silently dropped. Downgrading from Pro to Starter clears any stored email on the next save so old alerts don't keep arriving.
Alert thresholds
The eight threshold-based alerts (offline, latency, CPU, RAM, lag, errors, zombie, shard-down) are available on all plans. The per-metric sustained window floor varies:
| Plan | Latency sustained floor |
|---|---|
| Starter | 60 s (matches 60 s interval) |
| Pro | 30 s (matches 30 s interval) |
| Business | 10 s (matches 10 s interval) |
All plans share a 1-hour ceiling. The floor matches your interval so the BotMonitor can observe at least one full check cycle before alerting.
The other alerts (CPU, RAM, lag, errors, zombie, shard-down) share a plan-agnostic 10 s – 1 h sustained window range.
Branding
Customizing the alert appearance (Discord embed color, logo, footer text, reply-to address).
| Feature | Starter | Pro | Business |
|---|---|---|---|
| Custom brand color | — | — | ✓ |
| Custom logo | — | — | ✓ |
| Custom email reply-to | — | — | ✓ |
| Custom footer text | — | — | ✓ (up to 200 chars) |
Each branding field can also be scoped per channel — e.g. apply brand color on Discord only, default footer on email.
Date range picker
Picking arbitrary time windows on the Monitor view, beyond the five fixed presets (1h / 24h / 7d / 30d / 90d).
| Plan | Custom range |
|---|---|
| Starter | — (fixed presets only) |
| Pro | ✓ up to 365 days |
| Business | ✓ up to 365 days + CSV export |
CSV export downloads the raw events for the currently-selected range. Business-only.
SLA target
The default uptime target used to compute the SLA budget.
| Plan | Target | Can change? |
|---|---|---|
| Starter | 99% | — |
| Pro | 99% | Yes — pick from 99 / 99.5 / 99.9 / 99.95 / 99.99%. |
| Business | 99% | Same options as Pro. |
The Excellent / Good / At-risk / Critical reliability tiers don't change with your SLA target — they're computed against fixed thresholds (≥99 / ≥97 / ≥93 / <93%). See Reliability tiers.
Display name
How often you can change your CloudLine display name.
| Plan | Cooldown between renames |
|---|---|
| Starter | 30 days |
| Pro | 14 days |
| Business | 7 days |
First rename (you've never changed it) is always allowed. Name length 6–16 characters.
Data retention
How long CloudLine keeps your bot's history. See Retention policy for the full breakdown.
| Plan | Raw events | Daily aggregates |
|---|---|---|
| Starter | 7 days | 1 year |
| Pro | 30 days | 3 years |
| Business | 90 days | 5 years |
Raw events power the second-resolution charts and incident timelines. Daily aggregates power the long-term uptime and reliability trends.
Reliability comparison
| Feature | Starter | Pro | Business |
|---|---|---|---|
| Period-over-period comparison | — | ✓ | ✓ |
| Custom date range | — | ✓ (365d max) | ✓ (365d max) |
| CSV export | — | — | ✓ |
| Public status page (toggle to remove "Powered by CloudLine" footer) | Always shows footer | ✓ Can hide | ✓ Can hide |
What's enforced where
Every feature gate is enforced both server-side (at the API route) and client-side (UI hides the affordance). A bypass attempt that hits the API directly with the wrong plan is rejected — for paid-tier downgrade, the previously-stored values that affect billing (email channel, custom range customization) reset on the next write.
Branding values (custom color, logo, footer) persist across downgrades — they're stored values, not paid signals. If you downgrade from Business to Pro, your custom color stays in the database, just doesn't apply to new alerts. Re-upgrading restores them automatically.
Zombie state
The bot's process is alive — heartbeats are landing — but its Discord gateway connection is dead. The bot looks online but isn't actually working.
Retention policy
Two-tier retention — raw events for short-term resolution, daily aggregates for long-term trends. What's kept, for how long, on which plan.