Documentation

Everything you need to set up and customize StatusDrop. From first embed to custom domains.

Quick Start (30 seconds)

1. Paste your site URL (recommended)

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.

2. Review or add services

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.

3. Embed the widget

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.

Widget Embed

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.

Attributes

AttributeRequiredDescription
data-stackYesYour stack ID (from the embed code on your stack page)
srcYeshttps://statusdrop.dev/widget.js

Behavior

  • Polls for status updates every 60 seconds
  • Hover to see a glass popup with all service statuses and favicons
  • Click to open your hosted status page (or custom domain if configured)
  • Respects light/dark/auto theme from the widget builder
  • Accessible: keyboard navigation, ARIA roles, prefers-reduced-motion support
  • Optional "Powered by StatusDrop" badge (toggle it off in the widget builder)

Widget Templates

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.

Minimal

Single dot showing overall health with a status label. Minimal footprint, great for nav bars and footers.

Compact Bar

Horizontal bar with colored dots and service names. Best for headers, footers, or sidebars.

Status Dot

Single colored circle with no text. Just a green, yellow, or red dot with hover popup for details.

Widget Builder

The visual widget builder (accessible from each stack page) gives you full control:

  • Template picker with visual previews
  • Theme selector: light, dark, or auto (matches user's system preference)
  • Service visibility toggles (hide/show individual services)
  • Service display order (drag-and-drop reorder)
  • Custom status text and header messages
  • Max visible services limit (show "+N more" in popup)
  • Branding toggle (optionally remove "Powered by StatusDrop")
  • Live preview that updates as you configure

Hosted Status Page

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_ID

The 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.

Status Page Builder

Customize your status page with the visual builder:

  • Theme: light, dark, or auto (detects visitor's browser preference)
  • Custom header text (e.g., "All Systems Operational")
  • Per-service visibility (separate from widget visibility)
  • Service branding toggle (hide favicon, domain, and links for a cleaner look)
  • "Powered by StatusDrop" toggle (optionally remove it)
  • Live preview that matches the real status page

Custom Domain

Point a custom subdomain like status.yourdomain.com to their status page. SSL is included automatically.

Setup steps

  1. Go to your stack page and open the Status Page tab. In the Custom Domain section, enter your subdomain (e.g., status.yourdomain.com) and click Save Domain. You'll receive a verification token.
  2. In your DNS provider (Cloudflare, Route 53, Namecheap, etc.), add two DNS records:
TypeName / HostValue / TargetPurpose
CNAMEstatuscname.vercel-dns.comRoutes traffic to StatusDrop
TXT_statusdrop-verify.statussd-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.

  1. Wait for DNS propagation (usually 1-5 minutes, up to 48 hours for some providers).
  2. Click Verify Domain in your stack settings. StatusDrop will check both the TXT record and the CNAME, then automatically configure SSL and routing.

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.

Cloudflare users

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.

Incidents, Maintenance & Subscribers

Beyond automatic dependency monitoring, you can announce your own incidents and maintenance from the Incidents tab on your stack page.

Incidents

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.

Scheduled maintenance

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.

Email subscribers

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.

Component groups

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".

Password protection

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.

Multi-language status page

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.

Public Uptime Report

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.

  • Operational and degraded checks count as up; partial and major outages count as down.
  • Unknown checks (monitoring gaps) are excluded rather than counted against a service.
  • The window grows day by day and is labeled honestly -- a page with 12 days of data says "last 12 days", not "last 90 days".
  • Hide the numbers any time with the "Show uptime" toggle in the status page builder.

Badges

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=uptime

Service Catalog

StatusDrop 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:

  • Statuspage.io (Atlassian) - used by Stripe, GitHub, Twilio, Datadog, and hundreds more
  • Instatus - used by Vercel, Resend, Neon, Clerk, and many modern SaaS tools
  • Better Stack, Status.io, and provider-specific parsers - AWS, GCP, Azure, Heroku, Algolia, Salesforce, PagerDuty, Zendesk, cState, Uptime Kuma, and StatusDrop-powered pages
  • Custom - auto-detect cascade (19 strategies) with HTML keyword parsing for non-standard status pages

Status values are normalized to: operational, degraded, partial outage, major outage, or unknown.

Custom Services

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.

Service Display Options

  • Display name - override the default service name
  • Widget visibility - show or hide a service in the widget
  • Status page visibility - show or hide a service on the status page (independent of widget)
  • Hide branding - hide favicon, domain, and link (show only name + status dot)
  • Drag-and-drop reorder - control display order

Health Checks

Add direct HTTP health check endpoints for your own services. This turns StatusDrop into a lightweight uptime monitor alongside the third-party dependency tracking.

  • Provide any HTTPS URL that returns a 2xx status code when healthy
  • Checked every 1 minute alongside your other services
  • Non-2xx or timeout = marked as major outage
  • Shows up in your widget, status page, and notifications just like any other service

Add a health check from your stack page by clicking "Add Health Check" and entering the endpoint URL.

Notifications

Get notified instantly when a service status changes. Configure up to 4 notification channels per stack:

Email

HTML email alerts to any email address. Sent from alerts@statusdrop.dev.

Slack

Rich Block Kit messages to any Slack channel via incoming webhook URL.

Discord

Embed messages to any Discord channel via webhook URL.

Telegram

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.

Telegram setup

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.

RSS Feed

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}/feed

The 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.

Public API

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.

EndpointDescription
GET /api/v1/status/{id}Overall status, services, incidents, AI-friendly summary
GET /api/v1/status/{id}/servicesDetailed service list with check times
GET /api/v1/status/{id}/historyStatus change history (JSON or CSV export)
GET /api/v1/status/{id}/feedRSS 2.0 feed of status change events
GET /api/v1/healthAPI health check
GET /api/v1/openapiOpenAPI 3.1.0 specification

The {id} parameter is your stack ID (the same value from your embed code data-stack attribute).

Full API documentation with examples

Widget Data API

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.