Everything you need to set up and customize StatusDrop. From first embed to custom domains.
Sign up at statusdrop.dev and choose Quick setup. Paste your site's URL: StatusDrop scans your public homepage, detects the third-party services it depends on (payments, hosting, auth, analytics), and suggests them from the catalog. Review the list, name your stack, and you are done. Prefer manual setup? Click "New Stack" instead and continue below.
Search the catalog of 550+ pre-integrated services across 13 categories (payments, cloud, CDN, email, devtools, analytics, auth, database, messaging, monitoring, AI, storage, and more). Click to add services like Stripe, AWS, GitHub, Vercel, Cloudflare, etc. You can also add custom status page URLs and health check endpoints, or request new services to be added to the catalog.
Copy the embed code from your stack page and paste it into your website HTML, just before the closing </body> tag:
<script src="https://statusdrop.dev/widget.js" data-stack="YOUR_STACK_ID"></script>That's it. The widget will appear on your site showing real-time service statuses. It polls for updates every 60 seconds automatically.
The StatusDrop widget is a standalone JavaScript bundle (~14KB gzipped, no dependencies) that renders a status indicator on your website. It runs in an isolated scope and does not interfere with your page styles or scripts.
| Attribute | Required | Description |
|---|---|---|
| data-stack | Yes | Your stack ID (from the embed code on your stack page) |
| src | Yes | https://statusdrop.dev/widget.js |
Choose a template in the visual widget builder. Each template includes a hover popup with full service details. You can also browse 12 preset configurations in the Template Gallery.
Single dot showing overall health with a status label. Minimal footprint, great for nav bars and footers.
Horizontal bar with colored dots and service names. Best for headers, footers, or sidebars.
Single colored circle with no text. Just a green, yellow, or red dot with hover popup for details.
The visual widget builder (accessible from each stack page) gives you full control:
Every stack can have a hosted status page. Enable it from the Status Page tab on your stack page. Your status page is available at:
https://statusdrop.dev/s/YOUR_STACK_IDThe status page shows all visible services with their current status, incident history timeline, and last updated timestamp. Share this URL with your users or link it from your support docs.
Customize your status page with the visual builder:
Point a custom subdomain like status.yourdomain.com to their status page. SSL is included automatically.
status.yourdomain.com) and click Save Domain. You'll receive a verification token.| Type | Name / Host | Value / Target | Purpose |
|---|---|---|---|
| CNAME | status | cname.vercel-dns.com | Routes traffic to StatusDrop |
| TXT | _statusdrop-verify.status | sd-verify-xxxxx (your token) | Proves domain ownership |
If your subdomain is status.yourdomain.com, the TXT record name would be _statusdrop-verify.status.yourdomain.com.
Once verified, your status page is live at https://status.yourdomain.com with a valid SSL certificate. The widget will also link to your custom domain instead of statusdrop.dev.
If you use Cloudflare, make sure the CNAME proxy is set to DNS Only(gray cloud icon), not Proxied (orange cloud). Cloudflare's proxy can interfere with Vercel's SSL certificate provisioning.
Beyond automatic dependency monitoring, you can announce your own incidents and maintenance from the Incidents tab on your stack page.
Open an incident with a title, impact level (none, minor, major, critical), and affected services. Post timeline updates through the lifecycle: Investigating → Identified → Monitoring → Resolved. Active incidents render as a banner at the top of your public status page with the full timeline; resolved incidents stay in a 30-day history section.
Schedule a maintenance window with a start and end time. Your status page shows an upcoming banner before the window and an active banner during it; the transitions happen automatically on a one-minute scheduler, and completion posts a timeline update for you.
Enable the subscribe box in the status page builder and visitors can opt in with their email (double opt-in). Every incident update and maintenance announcement is emailed to confirmed subscribers automatically, each with a one-click unsubscribe link. Manage subscribers from the Notifications tab.
Group services into titled sections ("Core API", "Integrations") that render on your status page. Create groups in the Servicestab, then assign each service from the group dropdown next to it in the services list. Ungrouped services appear under "Other services".
Put a status page behind a shared password (Status Page tab → Password Protection) for internal tools or private betas. Passwords are stored with salted PBKDF2 hashing; changing or removing the password invalidates every existing visitor session. Protected pages are excluded from search engines and their API endpoints require the same authorization.
Your status page speaks your users' language: pick from English, Romanian, Spanish, German, French, or Portuguese in the builder (Status Page → Display Options → Language). Every visitor-facing label, banner, and date format is localized; your own content (incident titles and updates) is shown exactly as you wrote it.
Your status page shows a per-service uptime percentage and an overall figure under the status banner ("99.98% uptime · last 90 days"). Numbers are aggregated daily from real status checks over up to 90 days.
Embed live SVG badges in a README or docs page. The default badge shows current status; add ?metric=uptime for the uptime percentage, and &branding=false for a compact, label-free variant:
https://statusdrop.dev/api/badge/YOUR_STACK_ID.svg
https://statusdrop.dev/api/badge/YOUR_STACK_ID.svg?metric=uptimeStatusDrop includes a pre-integrated catalog of 550+ popular services across 13 categories: payments, cloud, CDN, email, devtools, analytics, auth, database, messaging, monitoring, AI, storage, and more.
Services are monitored globally by fetching their official status page APIs every minute. StatusDrop ships 17 parser types; the most common are:
Status values are normalized to: operational, degraded, partial outage, major outage, or unknown.
Add custom services by providing any status page URL. StatusDrop auto-detects the format (Statuspage.io, Instatus, Status.io, or HTML parsing). You can also request new services to be added to the catalog and we review them within 24 hours.
Add direct HTTP health check endpoints for your own services. This turns StatusDrop into a lightweight uptime monitor alongside the third-party dependency tracking.
Add a health check from your stack page by clicking "Add Health Check" and entering the endpoint URL.
Get notified instantly when a service status changes. Configure up to 4 notification channels per stack:
HTML email alerts to any email address. Sent from alerts@statusdrop.dev.
Rich Block Kit messages to any Slack channel via incoming webhook URL.
Embed messages to any Discord channel via webhook URL.
MarkdownV2 messages to any Telegram chat. Provide bot token and chat ID.
Configure notifications from the Notifications tab on your stack page. Each channel has a "Send Test" button so you can verify your setup before going live.
For Telegram, enter the value in this format: BOT_TOKEN:CHAT_ID. Create a bot via @BotFather on Telegram, then get your chat ID by messaging the bot and checking the Telegram API.
Every stack has an RSS feed of status change events. Subscribe in any RSS reader to track incidents:
https://statusdrop.dev/api/v1/status/{id}/feedThe feed includes service name, old status, new status, and timestamp for each change event. It's a standard RSS 2.0 feed with Atom self-link.
StatusDrop provides a public REST API for querying service status programmatically. No authentication required. All responses are JSON with CORS headers. Rate limited to 120 requests per minute per IP.
| Endpoint | Description |
|---|---|
| GET /api/v1/status/{id} | Overall status, services, incidents, AI-friendly summary |
| GET /api/v1/status/{id}/services | Detailed service list with check times |
| GET /api/v1/status/{id}/history | Status change history (JSON or CSV export) |
| GET /api/v1/status/{id}/feed | RSS 2.0 feed of status change events |
| GET /api/v1/health | API health check |
| GET /api/v1/openapi | OpenAPI 3.1.0 specification |
The {id} parameter is your stack ID (the same value from your embed code data-stack attribute).
The widget fetches data from a separate endpoint optimized for embedding. You can also call it directly for custom integrations:
GET https://statusdrop.dev/api/widget/{id}
Response:
{
"stackName": "My SaaS",
"slug": "my-saas",
"services": [
{
"name": "Stripe",
"domain": "stripe.com",
"status": "operational",
"faviconUrl": "...",
"showLogo": true,
"isClickable": true
}
],
"config": {
"template": "minimal-dot",
"theme": "light",
"showStatusPageLink": true,
"showBranding": true,
"statusTexts": null,
"maxVisibleServices": null,
"popup": { "theme": "light", "opacity": 0.92, "showBranding": true }
},
"statusPageUrl": "https://statusdrop.dev/s/YOUR_STACK_ID",
"lastUpdated": "2026-03-07T12:00:00Z"
}This endpoint is CORS-enabled and cached for 60 seconds with 30s stale-while-revalidate. Rate limited to prevent abuse.