Uptime Monitoring for Mintlify Documentation Infrastructure 2026
Mintlify is the hosted documentation platform built for developer-facing products — clean design, MDX support, OpenAPI reference generation, and zero-config deployment. Your team writes docs in Git; Mintlify handles the rest.
But "Mintlify handles it" doesn't mean nothing can go wrong. Your custom domain, your embedded API playground, the third-party services Mintlify calls on your behalf — all of these are outside Mintlify's direct control. External monitoring catches what Mintlify's own uptime tracking misses.
By the end of this guide you'll have independent uptime monitoring on your Mintlify-hosted docs, API health monitoring for the product your docs describe, and instant alerts when users can't reach your documentation — all on the free tier.
What Mintlify doesn't monitor for you
Mintlify monitors its own platform and shows status at mintlify.com/status. What it doesn't do:
- Monitor your custom domain configuration — DNS misconfiguration or certificate issues affect only you
- Alert you when your API (the one your docs reference) goes down — broken API examples hurt the docs experience
- Notify you when the OpenAPI spec your docs pull from changes unexpectedly
- Alert you when Mintlify platform issues affect only your subdomain, not the broader platform
- Monitor embedded content (Loom videos, CodeSandbox embeds, third-party widgets) that can 404 independently
Step 1: Monitor your Mintlify custom domain
Every Mintlify project serves on a *.mintlify.app subdomain by default. If you've configured a custom domain (e.g. docs.yourdomain.com), that custom domain is what your users — and your marketing site, your README, your getting-started emails — all point to. A misconfigured DNS record or expired SSL cert on your custom domain is a hard outage your users hit before Mintlify does.
Sign up at Vigilmon — free tier, no credit card required.
- Click New Monitor → HTTP
- Enter your custom docs domain (e.g.
https://docs.yourdomain.com) - Set check interval to 5 minutes
- Add a Keyword match — paste the title of your docs homepage or a string that only appears in your content
- Save
The keyword match catches the case where your custom domain resolves (200) but is serving Mintlify's default 404 page or a DNS parking page — both are a real outage from your users' perspective.
Also add your Mintlify subdomain as a secondary monitor:
https://your-project.mintlify.app
If your custom domain monitor fires but the .mintlify.app monitor is fine, the issue is your DNS/SSL, not Mintlify. This two-monitor pattern narrows the blast radius in seconds.
Step 2: Monitor the API your docs describe
Mintlify's OpenAPI integration lets users try your API live from the docs. If your API is down, the interactive playground breaks — users get errors while following your getting-started guide, right when you want them to have a good experience.
Add a health endpoint to your API and monitor it independently:
Express / Node.js:
// routes/health.js
const router = require('express').Router();
const db = require('../db');
router.get('/health', async (req, res) => {
try {
await db.raw('SELECT 1');
res.json({ status: 'ok', service: 'api' });
} catch (err) {
res.status(503).json({ status: 'error', detail: err.message });
}
});
module.exports = router;
FastAPI / Python:
from fastapi import FastAPI
from sqlalchemy import text
app = FastAPI()
@app.get("/health")
async def health(db: AsyncSession = Depends(get_db)):
try:
await db.execute(text("SELECT 1"))
return {"status": "ok"}
except Exception as e:
return JSONResponse(status_code=503, content={"status": "error", "detail": str(e)})
In Vigilmon, add an HTTP monitor for https://api.yourdomain.com/health. Route its alerts to your engineering channel — when the docs playground breaks, engineering needs to know, not just the docs team.
Step 3: Monitor your OpenAPI spec endpoint
If Mintlify pulls your OpenAPI spec from a URL (common for teams who generate the spec on CI), that spec endpoint is another dependency to monitor.
A spec endpoint returning an error means Mintlify can't regenerate your API reference — new endpoints and changes don't appear in the docs until the spec is accessible again.
In Vigilmon:
- New Monitor → HTTP
- URL:
https://api.yourdomain.com/openapi.json(or wherever your spec is hosted) - Add a Keyword match on
"openapi"— all valid OpenAPI 3.x specs contain this string - Save
This gives you early warning before your docs fall out of sync with your actual API.
Step 4: Heartbeat monitoring for your docs sync pipeline
If you use Mintlify's GitHub integration, every push to your docs branch triggers a redeploy. If GitHub Actions or your CI pipeline stops triggering, your docs go stale. Add a heartbeat monitor to catch a broken sync:
In Vigilmon:
- Click New Monitor → Heartbeat
- Set the expected interval (e.g. 25 hours if you expect at least one docs commit per day)
- Copy the ping URL
Add a heartbeat ping to your docs publish workflow:
# .github/workflows/docs-sync.yml
name: Sync Mintlify Docs
on:
push:
branches: [main]
paths:
- 'docs/**'
- 'openapi/**'
- 'mint.json'
jobs:
sync:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Validate mint.json
run: |
node -e "JSON.parse(require('fs').readFileSync('mint.json', 'utf8'))"
- name: Validate OpenAPI spec
run: npx @redocly/cli lint openapi/openapi.yaml
- name: Ping heartbeat on success
if: success()
run: curl -s "${{ secrets.MINTLIFY_SYNC_HEARTBEAT_URL }}"
Add MINTLIFY_SYNC_HEARTBEAT_URL as a repository secret. Now if docs commits stop flowing to Mintlify — broken workflow, bad spec validation, missing secret — you'll know before users notice stale content.
Step 5: Validate mint.json on every change
Mintlify's configuration lives in mint.json. An invalid mint.json breaks the entire docs deployment. Add validation before the sync step:
// scripts/validate-mint-config.mjs
import { readFileSync } from 'fs';
const config = JSON.parse(readFileSync('mint.json', 'utf8'));
const requiredFields = ['name', 'navigation'];
const missing = requiredFields.filter(f => !config[f]);
if (missing.length > 0) {
console.error(`mint.json is missing required fields: ${missing.join(', ')}`);
process.exit(1);
}
// Validate navigation pages exist
function checkPages(items, prefix = '') {
for (const item of items) {
if (typeof item === 'string') {
const path = `docs/${item}.mdx`;
try {
readFileSync(path);
} catch {
console.error(`Navigation references missing file: ${path}`);
process.exit(1);
}
} else if (item.pages) {
checkPages(item.pages);
}
}
}
for (const group of config.navigation) {
if (group.pages) checkPages(group.pages);
}
console.log('mint.json is valid');
Run this in CI before Mintlify syncs. A navigation entry pointing to a deleted page fails silently in Mintlify — this script makes the failure loud.
Step 6: Webhook alerts
Slack:
- Create an incoming webhook at api.slack.com/messaging/webhooks
- In Vigilmon: Notifications → New Channel → Slack
- Paste the webhook URL and assign it to your Mintlify monitors
Discord:
- Server Settings → Integrations → Webhooks → New Webhook → Copy URL
- In Vigilmon: Notifications → New Channel → Discord
- Paste and assign to monitors
Route docs domain alerts to a #docs-alerts channel; API health alerts to your #engineering or #on-call channel. Different monitors, different audiences.
Step 7: Public status page
When your docs are down, users will ask in Slack, Discord, or GitHub Issues. A status page answers the question before they need to ask.
- In Vigilmon: Status Pages → New Status Page
- Add your custom domain monitor and API health monitor
- Save
Link the status page from your Mintlify footer. In mint.json:
{
"footerSocials": {
"website": "https://yourdomain.com",
"github": "https://github.com/yourorg"
},
"navigation": [
{
"group": "Resources",
"pages": ["status"]
}
]
}
Create docs/status.mdx with a link to your Vigilmon status page — Mintlify doesn't support external footer links directly, but a docs page works.
What you've built
| What | How |
|---|---|
| Custom domain monitoring | Vigilmon HTTP monitor with keyword match |
| Platform vs. DNS triage | Secondary monitor on .mintlify.app subdomain |
| API health monitoring | Health endpoint + Vigilmon HTTP monitor |
| OpenAPI spec endpoint monitoring | Vigilmon HTTP monitor with keyword match |
| Docs sync heartbeat | CI ping after successful Mintlify sync |
| mint.json validation | Pre-sync script that catches broken navigation |
| Instant alerts | Slack/Discord webhook notifications |
| Public status page | Vigilmon status page linked from docs |
Mintlify handles your docs platform. Vigilmon makes sure your users can always reach it. Together you have complete coverage — hosted convenience and independent availability verification.
Get started free at vigilmon.online — your first monitor is running in under a minute.