Uptimeify Docs
Notification channels

Test Notification Channel

Tests a notification channel configuration. Optionally sends a real test message.

POST /api/notification-channels/test

Request Body

FieldTypeRequiredDefaultDescription
typestringYeswebhook, slack, discord, pagerduty, pushover, opsgenie
configobjectYes{}Channel config with secrets
organizationIdnumberNofrom sessionOrganization scope
customerIdnumberNonullCustomer scope
websiteIdnumberNonullWebsite scope
dryRunbooleanNofalseIf true, validates only (no actual send)

Example (cURL)

curl -X POST "$BASE_URL/api/notification-channels/test" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "type": "webhook",
    "config": {
      "url": "https://example.com/webhook",
      "method": "POST",
      "timeout": 15
    },
    "dryRun": false
  }'

Response

{
  "success": true,
  "mode": "send",
  "message": "Webhook delivered successfully",
  "validation": { "ok": true, "errors": [], "warnings": [] },
  "request": { "url": "https://example.com/webhook", "method": "POST", "timeoutSeconds": 15, "headers": {}, "bodyPreview": "...", "bodySize": 256 },
  "response": { "reachable": true, "ok": true, "statusCode": 200, "statusText": "OK", "durationMs": 150, "headers": {}, "bodyPreview": null, "bodySize": null }
}

HTTP 429 responses are treated as "reachable but rate-limited" (success: true).

Common errors

  • 401 Unauthorized when not authenticated
  • 400 Bad Request when config is invalid for the given type

On this page