Skip to content
nsin docs

Uptime & Outages

nsin sits between your visitors and your server, so it can see when your server (the origin) stops answering properly — even if nsin itself is serving fine. When that keeps happening, nsin opens an incident and tells you. Find this under Uptime in your domain’s sidebar.

nsin doesn’t ping your site from outside. It watches real visitor traffic, and counts requests where your server failed to answer properly.

A subdomain counts as down for a minute when the share of failing requests is above your threshold, and there was enough traffic that minute for the number to mean anything. The traffic floor matters: two failures out of three requests at 4am is noise, not an outage.

An incident opens when a subdomain stays down for the whole detection window — not just one bad minute — and closes after a run of clear minutes. Each incident records the hostname, when it started, when it recovered, and how bad the error rate got.

The live view shows every subdomain right now, including ones erroring but not yet past your thresholds — check it when something feels wrong but no alert has fired. For each host you see requests seen in the window, how many failed, the error percentage, and whether it currently counts as down.

Under Uptime → Settings you can tune detection to fit your traffic:

SettingWhat it means
Alerts on/offWhether outage notifications are sent for this domain.
ThresholdThe percentage of failing requests per minute that counts as down.
WindowHow long the host has to stay down before an incident opens.
Minimum requestsThe traffic floor — below this, no incident opens.
Minimum active minutesHow many minutes in the window need real traffic.
RecoveryHow many clear minutes in a row end the incident.

Each setting has a valid range, shown next to it in the panel.

Notifications go to the domain’s owner and to any members with outage notifications on. Each member controls this individually, so an agency teammate can watch uptime without getting every other notification.

Notification channels, on the Uptime page, decides where alerts for the domain go. The switches apply to everyone — owner and members — on top of each member’s own preferences. Alerts always show in the panel, whatever is switched off.

ChannelDefaultNotes
EmailOn
SMSOnPaid plans only. Verified Iranian mobile numbers.
WebhookOffFree on every plan. One URL per domain.

Save an http:// or https:// URL and switch the webhook on. nsin sends a POST with a JSON body when an outage opens (outage.opened) and resolves (outage.resolved) — once each per incident. Test sends a sample test event.

{
"event": "outage.opened",
"incident_id": 4312,
"domain": "example.com",
"hostname": "api.example.com",
"monitor_id": null,
"scope": "",
"peak_error_pct": 100,
"started_at": "2026-09-20T10:14:00Z",
"resolved_at": null,
"duration_sec": null,
"sent_at": "2026-09-20T10:14:02Z"
}

Answer with any 2xx within 5 seconds; anything else is retried twice, after 5 and 30 seconds. Redirects aren’t followed, and URLs pointing at private or local addresses are refused. Last deliveries are listed under the URL field.

Verify the signature. Every request carries X-Nsin-Timestamp and X-Nsin-Signature. The signature is sha256= plus the hex HMAC-SHA256 of <timestamp>.<raw body>, keyed with the signing secret shown on the page:

import crypto from 'node:crypto';
function verify(req, rawBody, secret) {
const ts = req.headers['x-nsin-timestamp'];
const want = 'sha256=' + crypto.createHmac('sha256', secret).update(`${ts}.${rawBody}`).digest('hex');
const got = req.headers['x-nsin-signature'] ?? '';
const fresh = Math.abs(Date.now() / 1000 - Number(ts)) < 300;
return fresh && got.length === want.length && crypto.timingSafeEqual(Buffer.from(got), Buffer.from(want));
}

Generating a new secret makes the old one stop working at once.

Uptime says down, but my site loads for me. Outages are usually partial — one subdomain, one region, or some requests. Check the live view, and Monitoring → status codes for what your server returned.

Nothing appears here at all. Detection runs on real traffic — a subdomain nobody visited produces no data — and needs a plan that includes monitoring. See Plans.

Does nsin keep serving during an outage? Cached pages keep being served. Anything nsin must fetch from your server fails while it’s failing — this is what caching and origin failover help with.