Hi,
I recently wanted to integrate automated domain and SSL monitoring into a couple of my personal projects. I checked RapidAPI hoping to find an API that would handle background monitoring for me, but almost everything available was a "one-off" checker, endpoints where you have to manually make a request to get the status right then and there, rather than something that monitors in the background and alerts you (which is what I wanted, I'm lazy...).
Since I couldn't find what I needed, I decided to build my own headless monitoring API. I plan to use it as the backend monitoring engine for my future projects (basically monitoring all of my projects), but I’ve also made it publicly available in case it’s useful to anyone else. It also has a generous free tier.
What it does
Instead of just checking a domain on-demand, you register a monitor once with a webhook URL. The API runs background checks on a schedule and pushes alerts to your webhook if something goes wrong. And yes, the one-off checks are included as utility, but the heavy weapon is the monitoring stuff, it's what you want to use in the free tier as well, since the (daily) alerts don't count as API calls.
Features
- Automated Background Checks: Register once, and the engine monitors your domains on a schedule.
- SSL/TLS Chain Validation: Monitors days remaining and validates intermediate/root certificates.
- DNS Change Tracking: Takes a snapshot of your A, MX, TXT, and NS records and alerts you if they are altered.
- Domain Expiry (WHOIS/RDAP): Tracks domain registration status so you don’t lose ownership.
- Certificate Transparency (CT) Alerts: Detects when new certificates are issued for your domain.
- Native Webhooks: Supports structured alerts formatted for Slack, Discord, or raw JSON.
- On-Demand Utility: Still includes a GET /v1/check endpoint if you just want an instant diagnostic check.
How It Works
Instead of requiring you to query a domain on-demand continually, this API lets you register a monitor once with a webhook URL. The engine then runs background checks on a schedule and pushes formatted alert cards directly to your webhook (Slack, Discord, or Raw JSON) if a check fails or an unexpected change occurs.
1. Register a Monitor (e.g., via cURL)
You register a domain and set your alert threshold.
curl -X POST "https://ssl-domain-monitor-api.p.rapidapi.com/v1/monitors" \
-H "X-RapidAPI-Key: YOUR_RAPIDAPI_KEY" \
-H "Content-Type: application/json" \
-d '{
"domain": "example.com",
"port": 443,
"webhook_url": "https://discord.com/api/webhooks/your-channel",
"webhook_type": "discord",
"alert_threshold_days": 14,
"check_interval_hours": 24
}'
2. Receive Automated Alerts
If your SSL certificate is within your alert threshold, a DNS record is altered, or the WHOIS registration is nearing expiration, the engine dispatches a structured payload.
If you use "slack" or "discord", you will receive a pre-formatted markdown alert card directly in your channel. If you use "raw", you get a structured JSON payload to trigger your own backend actions:
{
"domain": "example.com",
"port": 443,
"ssl_status": {
"is_valid": true,
"days_remaining": 12,
"issuer": "CN=Let's Encrypt Authority X3",
"subject": "CN=example.com"
},
"dns_changes": [
{
"record_type": "A",
"added": ["192.0.2.2"],
"removed": ["192.0.2.1"]
}
],
"whois_status": {
"success": true,
"expires_at": "2028-09-13T07:00:00+00:00",
"days_remaining": 779
},
"checked_at": "2026-07-25T14:30:00Z"
}
Free Tier
The basic tier is completely free and allows you to monitor up to 3 domains with a 24-hour check interval, including full webhook support.
If you want to check it out or use it for your own dashboard/tools, it is available here: SSL & Domain Monitor API
I would love to get your feedback on the feature set, the webhook payload structure, or any other monitoring metrics you think would be valuable to add.
Anyway, this is it, this project took quite some time but I hope it will save me 10x more lol.
Top comments (1)
I would like to know if you guys think the raw structure makes sense for integrating into your own backends, and if there are any more features that I might add; I probably added too many already but...