Your website could go down right now and you might not find out for hours — unless you have a monitor running. Setting up proper uptime monitoring is one of the highest-leverage things you can do for any production service, and with MonitorPlatform it takes under 60 seconds to go from zero to your first alert.
This guide walks you through creating all monitor types — URL, API, SSL Certificate, Heartbeat, Content Change Detection, and Port Monitoring — with exact steps, recommended settings, and pro tips for each.
TL;DR — What You'll Set Up
- 🌐 URL Monitor — Know the instant your website goes down
- ⚡ API Monitor — Validate your API endpoints are responding correctly
- 🔒 SSL Monitor — Get alerted before your certificate expires
- 💓 Heartbeat Monitor — Catch silently failing cron jobs and background tasks
- 📄 Content Change Detection — Get alerted when webpage content changes unexpectedly
- 🔌 Port Monitor — Verify critical services are reachable at the network level
- ⏱️ Time to first monitor: Under 60 seconds
Before You Start: Sign Up for Free
If you don't have a MonitorPlatform account yet, you can create a free account here — no credit card required. The free plan includes all monitor types covered in this guide.
Once you're logged in, every monitor in this guide starts from the same place:
Dashboard → Add Monitor button
You'll see a Monitor Name field and a Monitor Type dropdown. Select the type you want, fill in the details, and your monitor is live — typically in under 60 seconds.
Part 1 — How to Create a URL Monitor
A URL monitor (also called an HTTP or website monitor) is the most fundamental type of uptime check. It sends an HTTP request to your URL on a defined interval and alerts you the moment it stops returning a healthy response.
What it catches:
- Complete website outages (server down, DNS failure)
- HTTP 5xx server errors or unexpected non-200 responses
- Unexpected redirects or response code changes
- Slow response times exceeding your threshold
Step-by-Step: Create a URL Monitor
Step 1 — Open the Add Monitor page
From your MonitorPlatform dashboard, click Add Monitor.
Step 2 — Enter the Monitor Name
Give it a clear, descriptive name you'll recognise instantly in an alert at 2am:
✅ Production Homepage
✅ Checkout Page — US
❌ Monitor 1
Step 3 — Select Monitor Type
In the Monitor Type dropdown, select URL / HTTP Monitor.
Step 4 — Enter your URL
Paste the full URL you want to monitor, including the protocol. Each monitor takes one URL:
https://yourwebsite.com
https://yourwebsite.com/checkout
https://yourwebsite.com/login
💡 Pro tip: Don't just monitor your homepage. Add separate monitors for your most critical pages — login, checkout, payment confirmation, and any page that directly impacts revenue.
Step 5 — Set the Check Interval
Set your check interval to 1 minute for any production or business-critical URL. This means you'll know about an outage within 60 seconds of it starting.
Free plan: intervals from 5 minutes and above. Shorter intervals are available on paid plans.
Step 6 — Set the expected HTTP status code
The default is 200 OK which is correct for most URLs. If your endpoint intentionally returns a different code (e.g. 301, 302, or 204), update this to match.
Step 7 — Click Create Monitor
MonitorPlatform will immediately run its first check. Within 60 seconds you'll see the monitor show as UP (green) in your dashboard if everything is healthy.
Step 8 — Configure Alert Notifications
Navigate to Notifications in your dashboard to configure where alerts are sent:
- Email — enabled by default on your registered email address, no setup needed
- Slack — paste your Slack webhook URL for instant channel notifications
- Discord — paste your Discord webhook for team servers
- Webhook — any custom HTTPS endpoint for PagerDuty, Zapier, custom automations, etc.
✅ URL Monitor Best Practices
- • Use 1-minute intervals for all production URLs
- • Monitor the exact URL your users hit — not just the root domain
- • Add monitors for critical user flows: login, checkout, API gateway
- • Set alert notifications to at least two channels for redundancy
- • Test your alerts by temporarily entering an invalid URL, then restoring it
Part 2 — How to Create an API Monitor
An API monitor goes beyond basic URL checking. Instead of just verifying your endpoint returns a 200 status, it validates the actual response — checking headers, response body content, authentication, and payload structure. You can monitor different endpoints using GET, POST, PUT, PATCH, and DELETE methods.
What it catches:
- API endpoints returning wrong data despite a 200 status
- Authentication failures (401, 403 responses)
- Broken JSON payloads or missing required fields
- Response time degradation above your threshold
Step-by-Step: Create an API Monitor
Step 1 — Open the Add Monitor page
From your dashboard, click Add Monitor.
Step 2 — Enter the Monitor Name and select Monitor Type
Enter a descriptive name, then in the Monitor Type dropdown select API Monitoring.
Step 3 — Enter your API endpoint URL
Enter the full endpoint URL. One API endpoint per monitor:
https://api.yourapp.com/health
https://api.yourapp.com/v1/users
https://api.yourapp.com/v2/products
💡 Pro tip: Most well-designed APIs have a dedicated
/healthor/statusendpoint. If yours doesn't, create one — it's a 5-minute addition that makes monitoring dramatically easier.
Step 4 — Select the HTTP Method
Choose the appropriate method for your endpoint:
GET → for read-only endpoints and health checks
POST → for endpoints that require a request body
PUT → for update endpoints
PATCH → for partial modification endpoints
DELETE → for deletion endpoints (use with caution)
Step 5 — Add Request Headers
If your API requires authentication or specific headers, add them here:
Authorization: Bearer your_api_token
Content-Type: application/json
X-API-Key: your_api_key
Accept: application/json
🔒 Security note: Use a dedicated read-only monitoring API token — never use your primary production credentials in a monitor.
Step 6 — Add a Request Body (for POST / PUT / PATCH)
If your endpoint requires a request body, paste your JSON payload:
{
"check": "health",
"source": "monitor"
}
Step 7 — Set Response Validation
Configure what a healthy response looks like:
- Expected status code — typically
200but could be201,204, etc. - Response contains — a string that must appear in the response body (e.g.
"status":"ok"or"healthy")
Step 8 — Set Check Interval and click Create Monitor
Use 1 minute for production APIs. Click Create Monitor — MonitorPlatform runs the first check immediately.
✅ API Monitor Best Practices
- • Always use a dedicated monitoring API token with read-only permissions
- • Monitor your /health endpoint as a minimum — add critical business endpoints beyond that
- • Validate the response body, not just the status code — a 200 with broken JSON is still broken
- • Set a response time threshold — an API responding in 8 seconds is functionally down
- • Monitor each API version separately if you run v1 and v2 simultaneously
Part 3 — How to Create an SSL Certificate Monitor
An expired SSL certificate is functionally equivalent to downtime. Browsers display a full-page security warning that blocks most users from accessing your site entirely. API clients refuse to connect. And fixing an expired certificate mid-incident — under pressure — is exactly the situation you want to avoid.
What it catches:
- SSL certificates expiring within your alert window
- Certificates that have already expired
- Invalid or misconfigured certificate chains
- Certificates issued to the wrong domain
Step-by-Step: Create an SSL Certificate Monitor
Step 1 — Open the Add Monitor page
From your dashboard, click Add Monitor.
Step 2 — Enter the Monitor Name
Give it a recognisable name, for example: SSL — yourwebsite.com
Step 3 — Select Monitor Type
In the Monitor Type dropdown, select SSL Certificate Monitor.
Step 4 — Enter your Domain
Enter the domain whose SSL certificate you want to monitor:
yourwebsite.com
api.yourapp.com
checkout.yourstore.com
💡 Pro tip: Add a separate SSL monitor for every subdomain that has its own certificate. Even if you use a wildcard certificate, many teams use separate certificates for critical subdomains like
api.orcheckout.— each needs its own monitor.
Step 5 — Set the Check Interval
SSL certificates don't need 1-minute checks — daily or hourly is sufficient. The critical thing is that the monitor is running so expiry alerts fire in time.
Step 6 — Click Create Monitor
Click Create Monitor. The monitor immediately checks your certificate and shows:
- Days until expiry
- Certificate issuer
- Current validity status
If your certificate has more than 30 days remaining, it will show as UP (green). You will be alerted automatically as expiry approaches.
⚠️ Why SSL Monitoring is Non-Negotiable
A single expired certificate has taken down entire businesses for hours while their team scrambled to renew it. The Let's Encrypt 90-day cycle means teams without auto-renewal need to renew 4 times per year per domain. One missed renewal = customers seeing a security warning instead of your website.
Even if you use auto-renewal, an SSL monitor catches cases where auto-renewal silently fails — which happens more often than you'd expect.
Part 4 — How to Create a Heartbeat Monitor
A Heartbeat monitor (also called a cron job monitor or dead man's switch) works in reverse from every other monitor type. Instead of MonitorPlatform reaching out to check your service, your service reaches out to MonitorPlatform on a schedule. If the expected ping doesn't arrive within your defined window, you get alerted.
This catches a category of failures that URL and API monitors completely miss: silently failing automation.
What it catches:
- Database backups that stopped running without any error
- Scheduled reports that never generated
- Data sync jobs that failed silently
- Email sending queues that stopped processing
- Any cron job, background worker, or scheduled task
Step-by-Step: Create a Heartbeat Monitor
Step 1 — Open the Heartbeats page
From your dashboard, click Heartbeats in the navigation, then click the Create Heartbeat button.
Step 2 — Name your Heartbeat
Give it a name that describes the specific job you're monitoring:
✅ Daily Database Backup — 2am UTC
✅ Stripe Webhook Processor
✅ Weekly Invoice Email Job
✅ Elasticsearch Index Sync
Step 3 — Add a Description (optional)
Add a description to remind yourself or your team why this heartbeat exists and what job it monitors. Useful when you have many heartbeats running.
Step 4 — Set the Expected Ping Interval
Define how often your job runs. MonitorPlatform waits this long before raising an alert if no ping is received:
Every 1 minute → for jobs that run every minute
Every 1 hour → for hourly jobs
Every 24 hours → for daily jobs (backups, reports)
Every 7 days → for weekly jobs
Step 5 — Set the Grace Period
The grace period is the buffer time MonitorPlatform waits after the expected ping window closes before firing an alert. This prevents false positives for jobs that occasionally run a few minutes late:
Daily job (24h interval) → 30–60 minute grace period
Hourly job (1h interval) → 5 minute grace period
Minute job (1m interval) → 30 second grace period
Step 6 — Click Create Heartbeat and Copy Your Unique Ping URL
After saving, MonitorPlatform generates a unique ping URL for this heartbeat:
https://app.monitorplatform.com/api/v1/heartbeats/ping/YOUR_UNIQUE_TOKEN
Copy this URL — you'll add it to your cron job in the next step.
Step 7 — Add the Ping to Your Job
Add a simple HTTP GET request to the end of your job script, after all work completes:
Linux / Mac cron with curl:
# Run your job, then ping MonitorPlatform only on success
0 2 * * * /scripts/backup.sh && curl -s https://app.monitorplatform.com/api/v1/heartbeats/ping/YOUR_UNIQUE_TOKEN
Node.js:
// At the very end of your job function
await fetch('https://app.monitorplatform.com/api/v1/heartbeats/ping/YOUR_UNIQUE_TOKEN')
Python:
import requests
# At the very end of your job
requests.get('https://app.monitorplatform.com/api/v1/heartbeats/ping/YOUR_UNIQUE_TOKEN')
PHP:
// At the very end of your job
file_get_contents('https://app.monitorplatform.com/api/v1/heartbeats/ping/YOUR_UNIQUE_TOKEN');
💡 Critical: Place the ping after your job completes successfully. If the job fails before reaching the ping line, the ping won't fire — which is exactly what you want. No ping = alert fired.
Step 8 — Configure Alert Notifications
From the dashboard click Notifications. Add Slack, Discord, email, or webhook alerts. Email is enabled by default. For critical jobs like database backups, configure at least two alert channels.
Step 9 — Verify It's Working
Trigger your cron job manually once. You should see the heartbeat switch to UP (green) and the Last Ping timestamp update in your dashboard.
✅ Heartbeat Monitor Best Practices
- • Only ping after successful completion — not at the start of the job
- • Create a separate heartbeat for each critical job — one monitor per job
- • Set a reasonable grace period to avoid false alarms for jobs that occasionally run long
- • Keep your ping URL private — treat it like a password, never commit to public repos
- • Test by intentionally skipping a ping and verifying the alert fires
- • Monitor your database backup job first — the most commonly unmonitored critical job
Part 5 — How to Create a Content Change Detection Monitor
A Content Change Detection monitor watches a webpage and alerts you the moment its content changes unexpectedly. Your site can be fully "up" while serving defaced content, changed pricing, or injected malicious scripts — only content monitoring catches this.
What it catches:
- Unauthorised content changes or website defacement
- Unexpected changes to pricing tables or product pages
- Legal page or compliance content modifications
- Competitor pricing and product updates
- Script injection or malicious content additions
Perfect for: Legal pages · Pricing tables · Compliance content · Competitor tracking
Step-by-Step: Create a Content Change Detection Monitor
Step 1 — Open the Add Monitor page
From your dashboard, click Add Monitor.
Step 2 — Enter the Monitor Name
Give it a descriptive name:
✅ Pricing Page — Change Watch
✅ Terms of Service — Compliance Monitor
✅ Competitor Homepage Tracker
Step 3 — Select Monitor Type
In the Monitor Type dropdown, select Content Change Detection.
Step 4 — Enter the URL to Monitor
Enter the full URL of the page you want to watch:
https://yourwebsite.com/pricing
https://yourwebsite.com/terms
https://competitor.com/pricing
Step 5 — Set the Check Interval
For security-sensitive pages like your homepage, use a short interval. For compliance or competitor tracking, hourly or daily is usually sufficient.
Free plan: intervals from 5 minutes and above. Shorter intervals are available on paid plans.
Step 6 — Configure Content Change Detection Settings
Monitoring Mode:
Text Content Only → Recommended for most use cases. Ignores layout
and style changes, alerts only on text changes.
Full Page → Detects any change including HTML structure and scripts.
Ignore Elements (CSS Selectors):
Exclude dynamic elements that change on every load to prevent false positives:
.ads, .timestamp, #comments
Add CSS selectors for ad banners, live timestamps, comment counts, or chat widgets.
Ignore Patterns (Regex):
Exclude content that changes regularly but isn't meaningful:
\d{4}-\d{2}-\d{2}, Copyright \d{4}
This ignores date strings and copyright year changes. Add patterns for any content you don't want triggering alerts.
Minimum Change Threshold (%):
The minimum percentage of content that must change before an alert fires. Default is 10%:
5% → More sensitive, for critical pages like login or checkout
10% → Default, good for most pages
25% → Less sensitive, for pages with frequent minor updates
Ignore Whitespace:
Toggle ON (recommended default) — ignores changes in spacing, tabs, and line breaks. Eliminates a large source of false positives from CMS platforms that reformat whitespace on every save.
Ignore Case:
Toggle ON if uppercase and lowercase should be treated as the same. Useful when capitalisation may vary but meaning doesn't change.
Step 7 — Click Create Monitor
MonitorPlatform takes a baseline snapshot of the page immediately. All future checks compare against this baseline and alert you when changes exceed your threshold.
✅ Content Change Detection Best Practices
- • Start with Text Content Only mode — eliminates most false positives from styling changes
- • Always add CSS selectors for dynamic elements like ads, timestamps, and chat widgets to the ignore list
- • Set the Minimum Change Threshold to 5% for security-sensitive pages
- • Enable Ignore Whitespace — it's on by default for good reason
- • Use this monitor for competitor pricing pages to get alerted when they change their pricing
- • Monitor your Terms of Service and Privacy Policy pages for compliance change tracking
Part 6 — How to Create a Port Monitor
A Port monitor verifies that critical services are actually reachable at the network level — not just that a web page loads, but that the underlying TCP or UDP port is open and accepting connections. Essential for database servers, mail servers, game servers, SSH, and any custom service running on a specific port.
What it catches:
- Database ports that have closed (MySQL 3306, PostgreSQL 5432, Redis 6379)
- Mail server ports going down (SMTP 587, IMAP 993)
- SSH access becoming unavailable (port 22)
- Custom application ports closing unexpectedly
- Connection latency spikes above your threshold
Perfect for: DB servers · Mail servers · Game servers · SSH · Custom TCP/UDP services
Step-by-Step: Create a Port Monitor
Step 1 — Open the Add Monitor page
From your dashboard, click Add Monitor.
Step 2 — Enter the Monitor Name
Name it to identify the service and port clearly:
✅ MySQL Database — Port 3306
✅ Redis Cache — Port 6379
✅ Mail Server SMTP — Port 587
✅ Game Server — UDP 27015
Step 3 — Select Monitor Type
In the Monitor Type dropdown, select Port Monitoring.
Step 4 — Set the Check Interval
For production databases and mail servers, use the shortest available interval.
Free plan: intervals from 5 minutes and above. Shorter intervals are available on paid plans.
Step 5 — Configure Port Monitoring Settings
Quick Select (Common Ports):
Use the Quick Select dropdown to pick from pre-configured common ports — this automatically fills the port number and service name:
HTTP (80) · HTTPS (443) · MySQL (3306) · PostgreSQL (5432)
Redis (6379) · SMTP (587) · SSH (22) · and more
Or skip Quick Select and configure the fields manually below.
Host / IP Address:
Enter the hostname or IP address of the server to monitor:
example.com
192.168.1.1
db.yourapp.com
mail.yourcompany.com
Port Number:
Enter the port number your service runs on. Default shown is 3306 (MySQL).
Protocol:
TCP → For most services: databases, web servers, SSH, mail
UDP → For game servers, DNS, VoIP, and custom UDP services
Service Name (Optional):
Add a human-readable label for the service (e.g. MySQL, Redis, Nginx). This appears in your dashboard and alert messages making it easy to identify what's affected at a glance.
Timeout (seconds):
Default is 10 seconds. If the port doesn't respond within this window, MonitorPlatform treats it as down. Reduce for local network services; keep at 10 for remote servers.
Step 6 — Test Port Connection
Before saving, click Test Port Connection to verify MonitorPlatform can reach the host and port right now. This confirms your configuration is correct before the monitor goes live.
Step 7 — Click Create Monitor
Click Create Monitor. MonitorPlatform begins checking your port immediately and shows the connection status and latency in your dashboard.
✅ Port Monitor Best Practices
- • Use Quick Select for common ports — saves time and reduces configuration errors
- • Always add a Service Name so alerts clearly identify which service is down
- • Monitor your database port separately from your application URL — a healthy web page doesn't mean the DB port is open
- • Use TCP for databases, mail servers, and SSH; use UDP for game servers and DNS
- • Click Test Port Connection before saving to catch configuration mistakes immediately
- • Set a shorter timeout for local network services — 10 seconds is too lenient for something that should respond in milliseconds
Setting Up Alert Notifications (All Monitor Types)
Every monitor type on MonitorPlatform supports the same four alert channels:
Email alerts are enabled by default on your registered email address — no configuration needed. You automatically receive alerts for every monitor you create.
Slack
- Go to your Slack workspace → Apps → Incoming Webhooks → Add to Slack
- Choose the channel where alerts should be posted
- Copy the Webhook URL (starts with
https://hooks.slack.com/...) - In MonitorPlatform under Notifications, paste it into the Slack Webhook field
Discord
- In your Discord server → Server Settings → Integrations → Webhooks → New Webhook
- Choose the channel and give the webhook a name (e.g. "MonitorPlatform Alerts")
- Copy the Webhook URL
- In MonitorPlatform under Notifications, paste it into the Discord Webhook field
Webhook (Custom / PagerDuty / OpsGenie / Zapier)
Enter any HTTPS endpoint URL under Notifications → Webhook. MonitorPlatform POSTs a JSON payload on every status change — connecting to PagerDuty, OpsGenie, Zapier workflows, and custom alerting systems.
Recommended Monitor Setup for a Typical Production App
Homepage
yourwebsite.com — 1 min interval
Login Page
yourwebsite.com/login — 1 min
Checkout / Payment
yourwebsite.com/checkout — 1 min
Health Endpoint
api.yourapp.com/health — 1 min
Auth Endpoint
api.yourapp.com/v1/auth — 1 min
Core Business API
Your most critical endpoint — 1 min
Main Domain
yourwebsite.com — expiry alerts
API Subdomain
api.yourapp.com — expiry alerts
Any Other Subdomains
app., dashboard., etc.
Database Backup
Daily — 24h interval, 60m grace
Email Queue Worker
Hourly — 1h interval, 5m grace
Any Other Cron Jobs
Match your job schedule
Homepage
Defacement detection — 5 min
Pricing Page
Accidental change detection — 1h
Legal / Terms Page
Compliance tracking — daily
Database Port
MySQL 3306 / Postgres 5432 — 1 min
Redis / Cache
Port 6379 — 1 min
Mail Server
SMTP 587 / IMAP 993 — 5 min
Frequently Asked Questions
How long does it take to set up a monitor on MonitorPlatform?
Under 60 seconds for a URL monitor — enter your URL, name the monitor, click Create Monitor, and you're done. API, SSL, Heartbeat, Content Change, and Port monitors take slightly longer due to additional configuration, but all six types can be fully set up in under 10 minutes total.
What is the fastest check interval available on MonitorPlatform?
MonitorPlatform checks every 1 minute on paid plans. The free plan uses intervals from 5 minutes and above. For business-critical services, the 1-minute interval means you'll know about an outage within 60 seconds of it happening.
What is a heartbeat monitor and do I need one?
A heartbeat monitor catches silently failing background jobs — tasks that stop running without throwing a visible error. If you have any cron jobs, database backups, scheduled reports, or background workers in production, you need at least one heartbeat monitor. These failures are completely invisible to URL and API monitors.
What is the difference between URL monitoring and API monitoring?
A URL monitor checks that your endpoint returns a healthy HTTP status code. An API monitor goes further — it sends specific request headers, authentication tokens, and a request body, then validates that the response contains expected content. Use URL monitors for public web pages and API monitors for authenticated or data-returning endpoints.
What is Content Change Detection monitoring?
Content Change Detection watches a webpage and alerts you when its content changes beyond your defined threshold. It catches website defacement, unexpected pricing changes, compliance content modifications, and competitor page updates. You can exclude dynamic elements like ads and timestamps to prevent false positives.
What is Port monitoring and when do I need it?
Port monitoring verifies that a specific TCP or UDP port on a server is open and accepting connections. You need it when you want to confirm that a database, mail server, SSH service, or game server is reachable at the network level. A healthy website can coexist with a closed database port — only a port monitor will catch that.
Can I monitor internal services or localhost with MonitorPlatform?
URL and API monitors require a publicly accessible URL. For internal services, either expose a health endpoint through your load balancer or reverse proxy, or use the Heartbeat monitor — which works by your internal service pinging outward, requiring no inbound access.
What alert channels does MonitorPlatform support?
MonitorPlatform supports Email (default, no setup required), Slack, Discord, and Webhooks. The webhook integration connects to any third-party service including PagerDuty, OpsGenie, Zapier, and custom alerting systems.
Does MonitorPlatform have a free plan?
Yes. The free plan includes all monitor types — URL, API, SSL, Heartbeat, Content Change Detection, and Port Monitoring — with 10 monitors total and 5-minute check intervals. No credit card required. Paid plans start at $5/month for 1-minute check intervals.
How do I test if my monitor is working correctly?
After creating a monitor, deliberately trigger a failure. For URL monitors, temporarily point to a broken URL. For Heartbeat monitors, skip one ping cycle. You should receive an alert — if you do, your monitoring is confirmed working end-to-end.
Start Monitoring in 60 Seconds
You now have everything you need to set up comprehensive monitoring across your entire production stack:
- URL Monitor — your website is reachable and returning healthy responses
- API Monitor — your endpoints are authenticated, responding, and returning correct data
- SSL Monitor — your certificates won't expire unexpectedly and take you offline
- Heartbeat Monitor — your background jobs, backups, and cron tasks are running on schedule
- Content Change Detection — your pages haven't been defaced, modified, or injected with malicious content
- Port Monitor — your databases, mail servers, and network services are reachable at the port level
The entire setup — all monitor types, all alert channels — takes less than 10 minutes and protects you from the most common and costly production failures.
Create your free MonitorPlatform account and set up your first monitor in 60 seconds →
No credit card. No trial expiry. all monitor types available on the free plan.
Have questions about setting up a specific monitor type? We're actively building MonitorPlatform and genuinely want to help. Reach out here and we'll walk you through it.
