すべてのサービス / API
ステータスAPI
リアルタイムの判定、報告件数、公式ステータスをJSONで提供します。バッジ、ウィジェット、基本ステータスは他のサイトからも利用できます。有料キーで早期警告スコア、地域別チェック、証拠、マップ、より長い履歴、カタログ全体が使えます。 See ステータスバッジ.
Limits
- キーなし: ネットワークあたり毎分30件、1日5000件。無料。基本ステータス、バッジ、ウィジェット、検索はそのまま使えます。有料フィールドは省略され、アップグレードの案内が入ります。
- 有料APIキー: 毎分600件、1日100000件、$19/mo。有料キーで早期警告のzスコア、地域別チェックの詳細、証拠、マップ、24時間を超える履歴チャート、カタログ全体、30日より前の障害履歴、最大1,000件のページ、CSVエクスポートが使えます。キーはAuthorizationまたはX-API-Keyヘッダーで送ってください。 現役の報道関係者は /press から、分あたりの上限が高い無料のプレスキーを申請できます。プレスキーとその他の無料キーには、一括エクスポート、CSV、30日より前の履歴は含まれません。 See /press.
- すべての /api/v1 応答には X-RateLimit-Limit、X-RateLimit-Remaining、X-RateLimit-Reset(現在のウィンドウがリセットされるUnix秒)と、1日あたりの残数が付きます。上限を超えると Retry-After 付きの 429 になります。多くのGET応答は30〜600秒キャッシュされますが、検索など一部はキャッシュされません。
Endpoints
GET /api/v1/status/<slug>
Current verdict for one service: level, official status, simple report counts and the last check time. Early-warning z-scores and regional check detail need a paid key; without one they are omitted and the body includes an upgrade hint.
breaches contains verified historical site breaches matched to the service homepage domain (or an empty array). Each record includes title, breach date, account count, data classes, sanitized description_html and source metadata. These are not live security alerts or email lookups. データ提供元 Have I Been Pwned (CC BY 4.0); consumers must show this credit and source link wherever they display the data or descriptions. Formatting has been sanitized. The top-level breach_source repeats this attribution.
curl https://damnisitdown.com/api/v1/status/github
{
"service": { "slug": "github", "name": "GitHub", "url": "https://damnisitdown.com/status/github" },
"verdict": { "level": "operational", "title": "GitHub is up", "summary": "…" },
"confidence": 0.92,
"regions": [ { "region": "enam", "label": "US East", "ok": true, "latency_ms": 81, "checked_at": "2026-10-31T14:02:11.000Z" } ],
"official": { "indicator": "none", "description": "All Systems Operational" },
"reports": { "last_15m": 0, "last_60m": 1, "baseline_per_hour": 0.4 },
"last_checked": "2026-10-31T14:03:00.000Z"
}GET /api/v1/services
カタログ上の全サービスとスラッグ、現在のレベル。一覧全体には有料キーが必要で、ない場合は件数、カテゴリ、アップグレード案内が返されます。検索には /api/v1/search または上限付きの /api/v1/suggest?q= を使ってください。
curl https://damnisitdown.com/api/v1/services
GET /api/v1/outages?service=<slug>&limit=50
Recent outages, newest first: start, peak, recovery, duration, regions, related provider, plus confirmed, signal and label (the same evidence gate as explainer pages, alerts and the Business SLA report). Optional query: service, since and before (ISO 8601, YYYY-MM-DD or unix seconds), confirmed=1 or 0, limit and format=csv. 有料キーがない場合、上限は最大200件で、日付フィルタはおよそ過去30日以内に限られ、CSVは使えません。有料キー(月額19ドル)で、より長い履歴、最大1,000件のページ、古い行をたどる next.before カーソル、CSVまたはJSONの一括エクスポートが使えます。匿名および無料キーでも、30日の範囲内では next.before が返されます。JSON本文には next(またはnull)と、確認済みインシデントの数え方に関する注記が含まれます。
curl "https://damnisitdown.com/api/v1/outages?service=github&confirmed=1&limit=10"
POST /api/v1/diagnose/<slug>
“Is it me?” diagnosis: points to the most likely layer (the service, an upstream provider, a region, your ISP or area, DNS, or your Wi-Fi / device) with exactly two steps to try. Send your own test results as JSON; every field is optional: site, ping, internet ("ok" or "fail"), dns_cloudflare, dns_google (ok, nxdomain, servfail, error), optional reach times (site_ms, ping_ms, internet_ms, dns_cloudflare_ms, dns_google_ms), conn (wifi, cellular, ethernet), locale (en, de, es, id) and record (set false to skip anonymous counting). If you send no DNS results, we look them up from our side. The response has verdict (code, title, detail, steps, layer, links), a short report_note, and context (your provider and region, DNS, our checks, upstream providers). Per caller, never cached; raw IPs are not stored. Copy is phrased as “most likely” and shows the evidence; we cannot see your own DNS resolver from a browser.
curl -X POST https://damnisitdown.com/api/v1/diagnose/slack \
-H 'content-type: application/json' \
-d '{"site":"fail","internet":"ok","conn":"wifi"}'GET /api/v1/outages/<id>
One public outage with its timeline of events, plus confirmed, signal and label. 404 if the id is unknown, still too short to be public, or flagged as a false positive.
Cached for 30 seconds.
curl https://damnisitdown.com/api/v1/outages/63
{
"outage": { "id": 63, "service": "quay", "status": "ongoing", "title": "Major incident reported", "started_at": "2026-11-02T18:33:38.000Z", "peak_at": "2026-11-02T18:33:38.000Z", "peak_level": "major_outage", "peak_confidence": 0.78, "recovered_at": null, "duration_seconds": 172, "regions_affected": [], "related_provider": null, "max_reports_15m": 0, "confirmed": false, "signal": "possible", "label": "Unconfirmed / possible issue (not counted)", "url": "https://damnisitdown.com/outages/quay/2026-11-02-63" },
"service_name": "Quay",
"events": [{ "at": "2026-11-02T18:33:38.000Z", "kind": "start", "text": "Outage detected: …" }]
}GET /api/v1/outages/<id>/evidence
1件の障害の生の証拠。障害ページの evidence.json と evidence.csv でも同じです。有料キーが必要で、ない場合はエラーではなくアップグレード案内が本文に入ります。 Counts only, no personal data.
Cached for 1–5 minutes.
curl https://damnisitdown.com/api/v1/outages/63/evidence
GET /api/v1/forecast/<slug>
Outage Weather for one service: planned_maintenance the vendor announced on its own status page for the next 7 days (its title, details, starts_at, ends_at and source_url), a recurring_window we observed (or null), and history_pattern, which stays null until the service has enough verified incidents (see pattern_rules). Announced maintenance is not a prediction and not an outage. GET /api/v1/forecast lists every announcement for the next 7 days, plus the recurring_windows and history_patterns the Outage Weather page shows (each null if it could not be loaded; cached 5 minutes).
Cached for 2 minutes.
curl https://damnisitdown.com/api/v1/forecast/cloudflare
GET /api/v1/status/<slug>/history?range=24h
1サービスのチャートデータ: ユーザー報告、ベースライン、レイテンシ、時間バケットごとのチェック結果。range は 24h(デフォルトかつ無料)です。7d と 30d には有料キーが必要で、ない場合は24時間の系列がアップグレード案内付きで返されます。
Cached for 60 seconds.
curl "https://damnisitdown.com/api/v1/status/github/history?range=7d"
{ "slug": "github", "range": "24h", "points": [{ "t": "2026-11-01T18:45:00.000Z", "reports": 0, "baseline": 0, "latency_ms": 68, "checks": 4, "failures": 0 }, …] }GET /api/v1/status/<slug>/map?hours=24
問題報告の発信元: 場所、ネットワーク、問題の種類。hours は 1、6、または 24(デフォルト)です。小さなグループはプライバシーのため非表示になり(hidden がその件数です)。有料キーが必要で、ない場合はアップグレード案内が本文に入ります。
Cached for 60 seconds.
curl "https://damnisitdown.com/api/v1/status/github/map?hours=6"
{ "hours": 24, "total": 0, "places": [], "networks": [], "hidden": 0, "points": [], "problems": [] }GET /api/v1/trending
Up to 20 services with problems right now, worst level first, then most reports in the last hour.
Cached for 30 seconds.
curl https://damnisitdown.com/api/v1/trending
{ "count": 20, "services": [{ "slug": "bitpanda", "name": "Bitpanda", "category": "Money", "level": "major_outage", "title": "Major incident reported", "reports_60m": 0 }, …] }GET /api/v1/popular
The most-viewed services over the last 7 days, with their current level.
Cached for 5 minutes.
curl https://damnisitdown.com/api/v1/popular
{ "count": 50, "window_days": 7, "services": [{ "rank": 1, "slug": "starlink", "name": "Starlink", "level": "operational", "source": "traffic", "url": "/status/starlink" }, …] }GET /api/v1/search?q=<text>
Find services by name, slug or website (up to 25 matches; q up to 80 characters). If q looks like a domain, domain gives its host and the matching slug, or null if we don't track it yet.
Cached for 0 seconds (not cached).
curl "https://damnisitdown.com/api/v1/search?q=example.com"
{ "query": "example.com", "services": [], "domain": { "host": "example.com", "slug": null } }GET /api/v1/widget?slugs=<slug>,<slug>
A compact level and title for a short list of services (comma-separated, up to 12), in the order you ask. Unknown slugs are skipped.
Cached for 60 seconds.
curl "https://damnisitdown.com/api/v1/widget?slugs=github,slack"
{ "updated_at": "2026-11-02T18:36:22.307Z", "services": [{ "slug": "github", "name": "GitHub", "level": "operational", "title": "No problems detected" }, { "slug": "slack", "name": "Slack", "level": "operational", "title": "No problems detected" }] }GET /api/v1/reliability/<YYYY-MM|30d>
The 信頼性ランキング as JSON. Use a month (YYYY-MM, from 2026-10 to the current month) or 30d for the rolling 30 days. GET /api/v1/reliability redirects (302) to the current month. Months freeze on the 1st (UTC), after which final is true.
cat(optional): one category, for exampleAIorCloud & developer. An unknown category returns400with{"error":"bad_category","categories":[…]}. Withcat,moversisnullandcategoriesis left out.rows: every ranked service.uptimeis a percentage;downtime_sec,median_sec,covered_secanddown_secare seconds;low_confidencemarks fewer than 50 checks a day.most_reliableandmost_outage_prone: slugs, top 10.movers: the biggest month-over-month uptime changes for services ranked in both months. It isnulluntilmovers_available_from(2026-12), because the first month of data was partial. From then on it looks like this (uptime_changeis in percentage points,changeis places gained in rank):
"movers": {
"prev": "2026-11",
"up": [{ "slug": "…", "name": "…", "rank": 1, "prev_rank": 4, "change": 3, "uptime": 100, "prev_uptime": 99.2, "uptime_change": 0.8 }],
"down": [ … ]
}Unknown or out-of-range periods return 404 with {"error":"not_found"}. Data is CC BY 4.0.
Cached for 10 minutes for live periods, 1 hour once a month is final.
curl "https://damnisitdown.com/api/v1/reliability/2026-11?cat=AI"
{
"period": { "key": "2026-11", "label": "November 2026", "start": 1793491200, "end": 1793644579, "final": false, "days": 2, "kind": "month" },
"final": false,
"category": null,
"thresholds": { "min_days": 2, "min_checks": 24, "min_checks_per_day": 12, "confident_checks_per_day": 50 },
"excluded": 730,
"low_confidence": 0,
"methodology": "Uptime = covered time minus downtime, …",
"most_reliable": ["1password", "adobe", …],
"most_outage_prone": ["bluesky", "sentry", …],
"movers": null,
"movers_available_from": "2026-12",
"categories": [{ "category": "AI", "services": 16, "uptime": 100, "outages": 0, "best": "anthropic-api", "worst": "spacex-com" }, …],
"rows": [{ "slug": "1password", "name": "1Password", "category": "Productivity", "total": 307, "ok": 307, "days": 2, "outages": 0, "downtime_sec": 0, "median_sec": 0, "reports": 0, "covered_sec": 153379, "down_sec": 0, "uptime": 100, "rank": 1, "cat_rank": 1, "checks_per_day": 154, "low_confidence": false }, …],
"generated_at": "2026-11-02T18:36:19.000Z"
}GET /api/v1/accuracy?page=1
Our accuracy scorecard as JSON: the same hourly snapshot as the page, for the last 30 days and all time. Percentages are out of all published incidents, retractions included; speed.median_lead_min is positive when we were first and negative when the vendor was. matched_incidents lists every incident in the speed sample (difference_sec is vendor time minus ours). retractions lists every retraction, 50 per page, newest first; page beyond the last returns 404.
Cached for 10 minutes.
curl https://damnisitdown.com/api/v1/accuracy
{ "computed_at": "2026-11-12T11:00:00.000Z", "last_30_days": { "published": 120, "retracted": 3, "retracted_pct": 2.5, "confirmed": 80, "confirmed_pct": 66.7, "speed": { "matched": 4, "we_were_first": 1, "vendor_was_first": 3, "within_a_minute": 0, "median_lead_min": -12.5 }, … }, "all_time": { … }, "matched_incidents": [ … ], "retractions": { "total": 3, "page": 1, "pages": 1, "rows": [{ "id": 993, "service": "changenow", "original_label": "major_outage", "reason": "summary_only", … }] } }Errors and headers
Errors are JSON with an error code and sometimes a message. バッジ、ウィジェット、拡張機能のチェック、基本のライブステータスはCORSを開放しているので、ブラウザから埋め込めます。その他のJSONルートは同一オリジンの呼び出しとAPIキー付きの呼び出しを許可します。ステータスの有料フィールド(早期警告のzスコアと地域の詳細)、証拠、マップ、24時間を超える履歴、カタログ全体には有料キーが必要です。キーがない場合、それらのフィールドは省略され、エラーではなくアップグレードの案内が本文に入ります。 Most responses also carry X-RateLimit-Limit and X-API-Tier. The endpoints above count toward your per-minute and daily limits. The speed-test endpoints (/api/v1/speed/*) and the app endpoints for reports, push alerts and watchlist sync are for our own site and apps, have their own per-network limits, and aren't a supported public API.
Push alerts to Slack, Discord or a webhook
Rather not poll? 無料のSlack、Discord、または署名付きJSONのWebhookアラートを設定 for confirmed down and recovered events. Early warnings are part of Owner Alerts. Requests are signed with X-DIID-Signature (HMAC-SHA256); see the payload and how to verify it.
Using an AI assistant? Connect our free MCPサーバー (/mcp) to Claude, ChatGPT, Cursor or VS Code. Want a badge? Every status page has an embed snippet, or use /badge/<slug>.svg (add ?uptime=1 for 30-day uptime).
Using a key
curl -H "Authorization: Bearer diid_…" https://damnisitdown.com/api/v1/status/github
const res = await fetch('https://damnisitdown.com/api/v1/status/github', {
headers: { Authorization: 'Bearer diid_…' },
})
const { verdict } = await res.json()Keep keys on your server. A key in browser code can be copied. Prefer the Authorization or X-API-Key header. Level values: operational, degraded, possible_outage, outage, major_outage, unknown.
Business API
Business workspaces (Team and Business plans) get a workspace API key under Settings. Send it as Authorization: Bearer diidb_…. Read-only, JSON, rate-limited per key.
GET /api/biz/v1/workspace: plan, status, limitsGET /api/biz/v1/vendors: watched vendors with live levelGET /api/biz/v1/endpoints: your own endpoints, state and last checkGET /api/biz/v1/incidents: recent vendor and endpoint incidents. Each vendor incident hasconfirmed(boolean),signal,labelandurl(its outage page). Unconfirmed incidents are still listed, withconfirmed: false. Endpoint incidents come from your own checks and are alwaysconfirmed: truewithsignal: "own_check".GET /api/biz/v1/sla?month=YYYY-MM: SLA rows (add&format=csvfor CSV)GET /api/biz/v1/domains: custom status-page domains with hostname and SSL status, your plan limit and the CNAME targetGET /api/biz/v1/shop: Shop health (Business): page checks with state and last error, plus SSL certificate and domain expiry dates and days leftGET /api/biz/v1/clients: MSP plan: client status pages with overall state and each vendor's live level
Confirmed vs unconfirmed
confirmed: true means our own checks confirmed the incident. It follows the same evidence rules as alerts, and it is exactly what the SLA report and the downtime cost estimate count. signal is one of confirmed, possible (not confirmed by our checks), reports (people are reporting problems, not confirmed), vendor (reported by the vendor only) or maintenance (vendor maintenance). A new incident can show confirmed: false for its first few minutes, until it has lasted long enough to count. Since Nov 10, 2026 the SLA report counts confirmed incidents only. Other vendor time shows as notCountedSec (not_counted_sec in CSV).
Custom domains. Serve your claimed status page at your own hostname (Team: 1, Business: 5). Add it under Domains in your workspace, then create a CNAME from your hostname to customers.damnisitdown.com. SSL is issued automatically. The hostname serves your status page at /; /statuspage/<slug> keeps working and sets the custom domain as canonical.
See damnisitdown Business for plans.
Get an API key · $19/mo
Already a customer? Get a link to your API account.