DownFeeds

REST API

Authenticate with an API key from Settings → API keys: Authorization: Bearer df_…. All responses are JSON.

Endpoints

GET /api/v1/monitors List your monitors with uptime for 24h / 7d / 30d / 365d.
POST /api/v1/monitors Create a monitor. Body: the same JSON shape as the form (see example).
GET /api/v1/monitors/:id Monitor details, reliability (MTBF/MTTR), latest incidents and checks.
PUT /api/v1/monitors/:id Update any subset of fields.
POST /api/v1/monitors/:id { "action": "pause" | "resume" | "check" }
DELETE /api/v1/monitors/:id Delete a monitor and all its history.
GET /api/v1/incidents?open=1 Incidents across all monitors (open=1 for ongoing only).
GET /api/v1/status-pages/:slug Public JSON of a status page (no auth, CORS enabled).
GET /api/beat/:token Heartbeat ping for cron jobs. Append /fail to report a failure.

Example

curl -X POST https://downfeeds.com/api/v1/monitors \
  -H "Authorization: Bearer df_xxxxxxxx" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Main site",
    "type": "http",
    "target": "https://example.com",
    "intervalSeconds": 60,
    "confirmations": 2,
    "http": { "method": "GET", "acceptedStatus": "200-399" }
  }'

Webhook payload

POST <your url>
X-DownFeeds-Event: down | up | ssl | domain | slow | test
X-DownFeeds-Signature: sha256=<hmac of body with your secret>

{
  "event": "down",
  "title": "🔴 Main site is DOWN",
  "message": "…plain-language cause…",
  "url": "https://downfeeds.com/app/incidents/123",
  "monitorId": 1, "monitorName": "Main site", "target": "https://example.com",
  "status": "down", "incidentId": 123, "startedAt": "2026-10-26T10:00:00.000Z",
  "cause": "status", "detail": "HTTP 503 Service Unavailable", "statusCode": 503
}

Monitor fields

type: http · keyword · tcp · ping · dns · ssl · heartbeat — intervalSeconds (30…86400) · timeoutSeconds · retrySeconds · confirmations · recoveryConfirmations · regions[] · tags[] · channelIds[] · repeatEveryMinutes · http.{method, acceptedStatus, followRedirects, maxRedirects, headers, body, basicAuthUser, basicAuthPass, ignoreTls, userAgent, keyword, keywordMode, keywordCaseSensitive, slowThresholdMs, smartRetries} · dns.{recordType, expected, resolver} · graceSeconds (heartbeat) · sslAlertDays[].