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[].