Wiki & Documentation

Everything you need to know about configuring and using Uptime Monitor.

Overview

Uptime Monitor is a monitoring platform that tracks the availability and performance of your websites, APIs, servers, and services. It supports 9 different monitor types and 9+ notification channels.

Key Features

  • 9 monitor types: HTTP(S), Ping, Port, Keyword, Heartbeat, SSL, DNS, Domain Expiry, Change Detection
  • 9+ notification channels: Email, Slack, Discord, Telegram, Teams, Google Chat, PagerDuty, Webhooks, Zoho Desk
  • Public status pages with password protection
  • Incident management with timeline tracking
  • Maintenance windows for planned downtime
  • Built-in diagnostic tools (SSL checker, DNS lookup, security headers)
  • Multi-user support with role-based team management
  • Synthetic monitoring with multi-step API checks
  • Embeddable uptime and response time badges
  • Automated weekly reports with uptime summaries
  • Advanced alerting with cooldowns, schedules, and response time thresholds
  • API metrics: P95/P99 latency, error rates, status code distribution
  • CSV export and installable PWA

Monitor Types

HTTP(S)

Monitors web pages and API endpoints. Supports GET, POST, PUT, DELETE methods. Configure custom headers, request body, expected status codes, and authentication (Basic Auth or Bearer Token).

Ping (ICMP)

Sends ICMP echo requests to check if a host is reachable. Useful for monitoring server availability at the network level.

Port (TCP)

Tests TCP connectivity on a specific port. Great for monitoring databases (3306), mail servers (25/587), FTP (21), SSH (22), and custom services.

Keyword Detection

Fetches a URL and checks if specific text is present (or absent). Use this to detect content changes, error messages, or verify critical page content.

Heartbeat / Cron Job

Provides a unique URL endpoint that your cron jobs or services should ping at regular intervals. If a ping is missed within the expected window, an alert is triggered.

# Example cron job that pings every 5 minutes */5 * * * * curl -s https://your-server.com/api/heartbeat/YOUR_TOKEN

SSL Certificate

Monitors SSL/TLS certificate validity and expiration. Get alerts days before your certificate expires.

DNS

Validates DNS records (A, AAAA, CNAME, MX, TXT, NS). Alerts when records change unexpectedly.

Domain Expiry

Checks domain registration expiration dates via WHOIS. Get early warnings before your domain lapses.

Change Detection

Takes a hash of page content and alerts when the content changes. Useful for detecting defacements, unexpected edits, or content updates.

Creating Monitors

To create a new monitor:

  • Navigate to the Dashboard and click Add Monitor
  • Select the monitor type
  • Enter the target URL, hostname, or IP address
  • Configure the check interval (1-60 minutes)
  • Set retry count for failed checks (avoids false alarms)
  • Link notification channels to receive alerts
  • Click Create Monitor

The monitor will start checking immediately and appear on your dashboard.

Heartbeat / Push Monitoring

Heartbeat monitors use a "push" model. Instead of Uptime Monitor checking a service, your service pings Uptime Monitor at regular intervals.

How to Use

  • Create a Heartbeat monitor and set the expected interval
  • Copy the generated heartbeat URL
  • Add it to your cron job, scheduled task, or application
# Ping via curl curl -s https://your-server.com/api/heartbeat/abc123 # Ping via wget wget -q -O /dev/null https://your-server.com/api/heartbeat/abc123

Both GET and POST requests are supported. If no ping is received within the expected interval, an incident is created and notifications are sent.

Notification Channels

Uptime Monitor supports the following notification channels:

ChannelConfiguration Required
Email (SMTP)SMTP server, port, username, password, recipient
SlackWebhook URL
DiscordWebhook URL
TelegramBot token, Chat ID
Microsoft TeamsWebhook URL
Google ChatWebhook URL
PagerDutyIntegration key
WebhookURL, method, headers
Zoho DeskOAuth credentials, department ID

Each monitor can be linked to multiple channels. Manage channels in Settings > Notification Channels.

Channel Setup Guide

Slack

1. Go to your Slack workspace settings > Apps > Incoming Webhooks

2. Create a new webhook and select the target channel

3. Copy the webhook URL into the Slack channel configuration

Discord

1. Open Discord channel settings > Integrations > Webhooks

2. Create a new webhook

3. Copy the webhook URL into the Discord channel configuration

Telegram

1. Message @BotFather on Telegram to create a bot

2. Get the bot token

3. Get your chat ID (message @userinfobot)

4. Enter both in the Telegram channel configuration

Webhook

Configure a custom HTTP webhook with your URL, method, and headers. The payload includes monitor name, status, response time, and incident details in JSON format.

Public Status Pages

Each account gets a unique public status page URL at /status/YOUR_USER_ID. The status page displays:

  • Real-time monitor status (up/down/maintenance)
  • Uptime history over the last 24 hours, 7 days, and 30 days
  • Active incidents and their timeline
  • Scheduled maintenance windows

Configure your status page in Settings > Status Page. You can set a custom title, description, and optionally protect it with a password.

Incident Management

Incidents are automatically created when a monitor goes down. You can:

  • Acknowledge — Mark that you're aware and investigating
  • Add Notes — Document your investigation and resolution steps
  • Resolve — Mark the incident as resolved

Incidents are automatically resolved when the monitor recovers. The full timeline is visible on the status page and in the settings panel.

Maintenance Windows

Schedule maintenance periods to:

  • Suppress alert notifications during planned downtime
  • Show a maintenance badge on the status page
  • Keep uptime statistics accurate

Create maintenance windows in Settings > Maintenance. Set the start time, end time, and add an optional description.

Diagnostic Tools

Access built-in tools at /tools:

SSL Certificate Checker

Analyze SSL/TLS certificates: issuer, validity dates, protocol version, cipher suite, and certificate chain.

DNS Lookup

Query DNS records for any domain. Supports A, AAAA, CNAME, MX, TXT, NS, and SOA record types.

Security Headers Analyzer

Check HTTP security headers: Content-Security-Policy, X-Frame-Options, Strict-Transport-Security, X-Content-Type-Options, and more.

API Authentication

The API uses token-based authentication. Include the token in the Authorization header:

Authorization: Bearer YOUR_TOKEN

Endpoints

POST /api/auth/register
POST /api/auth/login
GET /api/auth/me
POST /api/auth/forgot-password
POST /api/auth/reset-password

Monitors API

GET /api/monitors/
POST /api/monitors/
GET /api/monitors/:id
PUT /api/monitors/:id
DELETE /api/monitors/:id
POST /api/monitors/:id/pause
POST /api/monitors/:id/resume
GET /api/monitors/:id/logs
GET /api/monitors/:id/chart

Channels API

GET /api/channels/
POST /api/channels/
PUT /api/channels/:id
DELETE /api/channels/:id
POST /api/channels/:id/test

Uptime Badges

Display live uptime status and response time badges on your README, documentation, or website. Two badge endpoints are available for each monitor.

Badge Endpoints

GET /api/badge/:monitorId
GET /api/badge/:monitorId/response

Embed in Markdown

![Uptime](https://yourdomain.com/api/badge/MONITOR_ID) ![Response Time](https://yourdomain.com/api/badge/MONITOR_ID/response)

Embed in HTML

<img src="https://yourdomain.com/api/badge/MONITOR_ID" alt="Uptime"> <img src="https://yourdomain.com/api/badge/MONITOR_ID/response" alt="Response Time">

Customization

ParameterDescriptionExample
?label=Custom left-side label text?label=My%20API
?theme=darkDark background variant?theme=dark

Badges are rendered as SVG images and cached for 60 seconds. They update automatically as monitor status changes.

Synthetic Monitoring

Synthetic monitoring executes multi-step API checks in sequence, simulating real user workflows. Each step can make an HTTP request, validate the response, and extract variables for use in subsequent steps.

Step Builder

Each step in a synthetic monitor defines:

  • URL — The endpoint to call
  • Method — GET, POST, PUT, DELETE
  • Headers — Custom request headers (supports variable interpolation)
  • Body — JSON request payload

Assertions

Add assertions to validate each step's response:

  • Status code — Expect a specific HTTP status (e.g., 200, 201)
  • Body contains — Verify the response body includes a specific string

If any assertion fails, the entire synthetic check is marked as failed and alerts are triggered.

Variable Extraction

Extract values from a step's JSON response and reference them in later steps using {{variableName}} syntax:

Step 1: POST /api/auth/login → extract "token" from response Step 2: GET /api/data with header Authorization: Bearer {{token}}

Scheduling

Synthetic monitors run automatically every 5 minutes via cron. Each run executes all steps in order and records pass/fail status plus total execution time.

API Metrics

Track detailed performance metrics for your API endpoints beyond simple uptime.

Available Metrics

  • P95 Response Time — 95th percentile response time, filtering out outliers to show typical worst-case performance.
  • P99 Response Time — 99th percentile response time, showing near-worst-case latency.
  • Error Rate — Percentage of checks returning non-2xx status codes over a given time window.
  • Status Code Distribution — Breakdown of HTTP status codes returned (2xx, 3xx, 4xx, 5xx) with counts and percentages.

Viewing Metrics

Click on any HTTP monitor to expand its detail panel. Switch to the Metrics tab to see P95/P99 latency charts, error rate trends, and status code distribution over time.

Weekly Reports

Automated weekly summaries are emailed every Monday at 9:00 AM IST to your registered email address.

Report Contents

  • Uptime summary — Overall uptime percentage across all monitors
  • Incident counts — Total incidents created and resolved during the week
  • Response times — Average, minimum, and maximum response times per monitor
  • Top offenders — Monitors with the most downtime or slowest response

Manual Trigger

Admin users can generate a report on demand from Settings → Reports → Send Weekly Report Now. The report is generated and delivered to your email within a few minutes.

Advanced Alerting

Fine-tune when and how you receive alert notifications with advanced rules.

Alert Rules

  • Location-down threshold — Set the minimum number of monitoring locations that must report failure before an alert fires.
  • Response time alerts — Trigger alerts when response time exceeds a threshold (e.g., > 2000ms) for consecutive checks.

Notification Cooldown

Prevent alert flooding by setting a cooldown period (default: 5 minutes). After an alert fires, duplicate alerts for the same monitor are suppressed during the cooldown window. Recovery notifications are always sent.

Alert Schedule

Restrict notifications to specific days and hours:

  • Active days — Select which days alerts should fire (e.g., Monday through Friday)
  • Active hours — Set a time window (e.g., 08:00 to 22:00)
  • Outside the schedule, alerts are silenced but incidents are still recorded

Notify on Recovery

Toggle per monitor whether a recovery notification is sent when the service comes back online. Enabled by default.

Team Management

Collaborate with your team by inviting members, assigning roles, and managing access.

Inviting Members

Go to Settings → Team → Invite Member. Enter the person's email and select a role. They receive an email invitation with a link to accept and join your workspace.

Roles

RolePermissions
AdminFull access: monitors, channels, team, billing, settings
UserCreate/edit monitors and channels. Cannot manage team or billing
ViewerRead-only access to dashboard, status pages, and reports

Seat Limits

Free: 1 seat, Solo: 1, Team: 5, Enterprise: unlimited. Upgrade your plan or contact support for additional seats.

CSV Export

Export your monitoring data as CSV files for offline analysis, compliance, or reporting.

How to Export

  • Navigate to a monitor's detail view
  • Click the Export button and select CSV
  • Choose a date range for the export
  • The CSV file downloads immediately

What's Included

Exported CSV files contain: timestamp, status (up/down), response time (ms), status code, error message (if any), and monitoring location.

Progressive Web App (PWA)

Uptime Monitor is a fully installable Progressive Web App. Use it like a native app on desktop and mobile.

Installing the App

  • Desktop (Chrome/Edge): Click the install icon in the address bar or go to Menu → Install Uptime Monitor
  • Mobile (Android): Tap "Add to Home Screen" from the browser menu
  • Mobile (iOS): Tap the Share button → "Add to Home Screen"

Offline Mode

The PWA caches essential assets for offline access. You can view your dashboard, recent monitor data, and status pages even without an internet connection. Data syncs automatically when connectivity is restored.