Skip to main content

Documentation

Everything you need to set up your status page and start communicating incidents like a pro.

Quick Start

1

Create your account

Sign up with your email. No credit card required — the free plan includes everything you need to get started.

2

Create a status page

From the dashboard, click Create Status Page. Choose a name and URL slug. Your public status page will be live immediately at your-slug.pagecalm.com.

3

Add components

Components represent the parts of your service (API, Website, Database, etc.). Add them from the dashboard — they'll appear on your public status page with their current status.

4

You're live!

Share your status page URL with customers. When incidents happen, you'll manage them from the dashboard and your page updates in real time.

AI Incident Writer

The AI incident writer is PageCalm's standout feature. It turns raw alerts and technical descriptions into polished communications in seconds.

How to use it

  1. Create an incident from the dashboard — enter a title, select the status and severity level.
  2. Describe what's happening — paste a monitoring alert, error log, or just describe the issue in plain English.
  3. Click "Generate with AI"— PageCalm produces a professional, customer-facing update that's clear, non-technical, and reassuring.
  4. Review and edit — AI generates a starting point. Always review before publishing. You know your customers best.
  5. Publish — the update appears on your public status page and subscribers are notified automatically.

Tips for better AI output

  • More context = better output."Database is slow" produces a generic update. "PostgreSQL connection pool exhausted on db-primary-01, 500/500 connections, API timeouts for 12 minutes" produces a specific, helpful one.
  • Include affected services. The AI will reference them naturally in the update.
  • Mention what you're doing about it."Scaling up database connections and investigating root cause" gives the AI something concrete to tell customers.

Generation limits

PlanAI Generations / Month
Free15
Starter30
Pro100

Incident Management

Severity Levels

  • Minor — Small issue with limited impact. Most users unaffected.
  • Major — Significant issue affecting a large portion of users or a critical feature.
  • Critical — Full service outage or severe degradation affecting all users.

Incident Lifecycle

  1. Create — Something breaks. Create an incident from the dashboard (or automatically via the webhook API), select status and severity, and link affected components.
  2. Review — Incidents created via the API start as drafts. Review the AI-generated update, edit if needed, then publish to make it visible on your status page.
  3. Update — Post updates as you investigate and fix. Each update is timestamped on the public timeline. Use the AI writer to draft updates quickly. You can edit any update after posting by hovering over it and clicking the edit icon.
  4. Resolve— Fix confirmed. Resolve the incident. Affected components automatically return to "Operational" status.

Scheduled Maintenance

Use scheduled maintenance to announce planned downtime in advance. From the Incidents page, click Schedule Maintenance and set a title, description, start time, end time, and affected components.

  1. Scheduled — Maintenance is announced. Your status page shows an upcoming maintenance window in a blue banner.
  2. In Progress— Maintenance has started. Affected components show "Under Maintenance" status.
  3. Completed— Maintenance is done. Components return to "Operational" and subscribers are notified.

Subscribers are notified when maintenance is scheduled and when it's completed.

Component Statuses

  • Operational — Everything is working normally.
  • Degraded Performance — Working but slower or partially impaired.
  • Partial Outage — Some functionality is unavailable.
  • Major Outage — Service is down or unusable.
  • Under Maintenance — Planned downtime in progress.

Uptime History

Your public status page displays a 90-day uptime history for each component. Each day is represented by a colored bar:

  • Green — No incidents that day.
  • Yellow — Minor or degraded performance incident.
  • Red — Major or critical incident.
  • Blue — Scheduled maintenance (counts as uptime).
  • Gray— Component didn't exist yet.

Hover over any day to see the date, uptime percentage, and incident details. The overall uptime percentage is shown below each component's chart.

Uptime is calculated automatically from your incident history — no extra setup required.

Webhook API

Connect your monitoring tools to PageCalm so incidents are created automatically when alerts fire.

Getting started

  1. Go to Dashboard → Integrations and click Create API Key. Give it a name (e.g. "UptimeRobot").
  2. Copy your API key immediately— it won't be shown again. Store it securely in your monitoring tool's webhook configuration.
  3. Note your status page IDfrom the same page — you'll need it in the request body.

Create an incident

Send a POST request to create a draft incident:

POST https://pagecalm.com/api/v1/incidents
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json

{
  "title": "API returning errors",
  "status_page_id": "YOUR_STATUS_PAGE_ID",
  "severity": "major",
  "affected_component_ids": ["COMPONENT_ID"],
  "raw_input": "Monitor api-health is DOWN. HTTP 503.",
  "generate_ai_update": true,
  "tone": "professional"
}

Request fields

FieldRequiredDescription
titleYesShort description of the incident (max 200 chars)
status_page_idYesUUID of your status page (shown on the API page)
severityNominor, major (default), or critical
statusNoinvestigating (default), identified, or monitoring
affected_component_idsNoArray of component UUIDs to link (max 50)
raw_inputNoAlert text or description for AI to process
generate_ai_updateNoSet to true to generate an AI customer update from raw_input
toneNoprofessional (default), friendly, or minimal

Draft workflow

Incidents created via the API are drafts— they are not visible on your public status page and subscribers are not notified. This gives you time to review the AI-generated update, edit it if needed, and publish when ready.

  1. Monitoring alert fires → webhook creates a draft incident.
  2. Open the incident in your dashboard — you'll see a "Draft" banner.
  3. Review and edit the AI-generated customer update (hover over the update to edit).
  4. Click Publish — the incident goes live, components are updated, and subscribers are notified.

Rate limits

The API is rate limited to 30 requests per minute per user. If you exceed this, you'll receive a 429 response.

API key management

  • You can have one active API key at a time.
  • To rotate your key, revoke the current one and create a new one.
  • Revoked keys stop working immediately.
  • API keys are hashed before storage — we cannot retrieve your key after creation.

Subscribers

Visitors to your public status page can subscribe with their email to receive automatic notifications when incidents are created or updated.

How it works

  1. A visitor enters their email on your public status page.
  2. They receive a confirmation email — they must click the link to confirm.
  3. Once confirmed, they receive email notifications for all incident updates.
  4. Every notification includes an unsubscribe link.

Subscriber limits

Subscriber limits per plan: Free supports 100 subscribers, Starter supports 250, and Pro supports 1,000. These caps protect deliverability and email costs while still leaving plenty of room for small-team SaaS audiences.

Slack Notifications

Send incident updates to your team's Slack channel alongside (or instead of) email. Available on every plan, including Free.

Setup

  1. In Slack, open Incoming Webhooks and pick the channel you want updates to post to. Copy the webhook URL Slack gives you.
  2. In PageCalm, go to Dashboard → Integrations and click Add Slack on the status page you want notifications for.
  3. Paste the webhook URL, add an optional label (e.g. "#oncall"), and save. PageCalm automatically fires a test message so you can confirm the channel receives it.

What gets sent

Every published incident event posts a message to Slack:

  • When an incident is published — initial notification with severity, status, and the update body.
  • When you post an update on a published incident — follow-up message with the new status.
  • When the incident resolves — green-colored all-clear message.

Draft incidents and internal-only activity do not post to Slack. Only events that would go to your public status page subscribers get delivered.

Delivery failures

If Slack returns an error (for example, the webhook was deleted from the Slack side), the integration surfaces the reason next to its row in the Integrations hub. A webhook that's permanently gone is auto-disabled so it doesn't keep retrying on every future incident. Re-add it to resume delivery.

Security

The webhook URL you paste is encrypted at rest. It's decrypted only at send-time to deliver notifications, never logged, and never returned in an API response.

Other chat platforms

Discord and Microsoft Teams support is planned. Reach out via support@pagecalm.com if you'd like us to prioritize one.

Team

Invite teammates to share your PageCalm account. Members are included on every plan, free of charge — there's no per-seat pricing. Your account can hold up to 25 members.

Inviting members

Open Settings → Team and click Invite member. Enter the teammate's email and PageCalm sends them a one-time link. Invitations expire after seven days; you can cancel a pending invitation at any time from the same page.

When the invitee clicks the link they land on /join/<token>, choose a password, and join the account immediately.

Roles: owner vs member

Each account has exactly one owner. The owner can:

  • Invite, remove, and manage members
  • Change plan, manage payment, view invoices
  • Everything a member can do

Memberscan do everything operational — create and edit incidents, manage components and integrations, post AI-written updates, create and revoke API keys, manage custom domains. Members can't manage billing or invite/remove other members.

Owner-of-account changes aren't self-service today. Contact support@pagecalm.com if you need one.

What members share

Everyone on the same account sees the same status pages, incidents, subscribers, integrations, and API keys. The monthly AI-generation allowance is also shared — usage by any member counts against the account's plan limit. Incident edits are recorded in a per-incident audit log, attributed to whichever member made the change.

Removing a member

From Settings → Team, click Removenext to a member. Their access is revoked immediately. Anything they created while on the account (incidents, components, API keys, audit-log attribution) stays on the account. The member's PageCalm login is not deleted; they simply no longer belong to your account.

Joining a different account

A PageCalm login can belong to one account at a time. If you already have an account and someone invites you to theirs, contact support to switch — cross-account membership isn't supported in v1.

Billing

PageCalm uses Stripe for secure payment processing. We never see or store your credit card details.

Upgrading

Go to Dashboard → Billing and click Upgrade. You'll be taken to a Stripe checkout page. Your plan activates immediately after payment.

Managing your subscription

From the Billing page, click Manage Subscription to open the Stripe customer portal. There you can update payment methods, view invoices, or cancel your subscription.

Cancellation

You can cancel anytime. Your plan remains active until the end of the current billing period. After that, you'll be moved to the free plan. Your data is preserved — you won't lose any incidents or history.

Account & Data

Manage your account from Dashboard → Settings. View your email, plan, and account creation date.

Export your data

Click Export Data to download a JSON file containing all your data — profile, status pages, components, incidents (with updates), subscribers, custom domains, and API keys. This supports your right to data portability under GDPR.

Delete your account

You can permanently delete your account and all associated data from the settings page. Deletion is immediate and cannot be undone. All status pages, incidents, subscriber data, API keys, and custom domain configurations will be removed.

FAQ

Is the AI reading my private data?

No. The AI only processes text you explicitly provide in the incident writer — the description you type or paste. It does not access your database, monitoring tools, or any other data.

Can I use a custom domain?

Yes! Starter and Pro users can add a custom domain (like status.yourcompany.com) from the status page settings. Add a CNAME record pointing to domains.pagecalm.com and we'll handle SSL automatically. Free users can use your-slug.pagecalm.com.

What happens if I hit my AI generation limit?

You can still create and publish incidents manually — you just won't be able to use the AI writer until the limit resets next month, or you upgrade your plan.

Do you offer uptime monitoring?

PageCalm focuses on status pages and incident communication — we don't run probes ourselves. But you can connect any monitoring tool via our webhook API to automatically create incidents when alerts fire. See the Webhook API section above.

Can I export or delete my data?

Yes. Go to Dashboard → Settings to export all your data as a JSON file or permanently delete your account. Both are self-service — no need to contact support.

Need help?

Can't find what you're looking for? We're here to help.

Email Support