Radardue
Docs · Alerts

Webhook reference

A webhook channel receives every alert as a JSON POST. Use it to open tickets, page someone, or feed your own dashboards.

The request

  • Method POST, header Content-Type: application/json.
  • Sent from Radardue's servers to the HTTPS URL you saved.
  • Any 2xx response within 30 seconds counts as delivered. Anything else counts as a failure.

Example

{
  "event": "expiry.alert",
  "subject": "[Acme Dental] shop.acme-dental.com expires in 7 days",
  "text": "TLS certificate for shop.acme-dental.com (Acme Dental) expires in 7 days, on Mon 19 Oct 2026.\nIssuer/registrar: Let's Encrypt (R11)\n\nOpen in Radardue: https://radardue.com/app/items/42 …",
  "source": "radardue.com",
  "item": {
    "id": 42,
    "type": "certificate",
    "name": "shop.acme-dental.com",
    "port": 443,
    "client": "Acme Dental",
    "client_id": 7,
    "expires_at": "2026-10-19T09:12:44Z",
    "days_left": 7,
    "issuer": "Let's Encrypt (R11)",
    "url": "https://radardue.com/app/items/42"
  }
}

Fields

FieldTypeDescription
eventstringexpiry.alert for real alerts, test for the Send test button.
subjectstringOne-line summary, the same as the email subject.
textstringPlain-text body, the same as the email body.
sourcestringAlways radardue.com.
item.idnumberStable ID of the tracked item.
item.typestringcertificate, domain or renewal.
item.namestringHostname, domain, or the renewal's name.
item.portnumberCertificates only. The port that was checked.
item.clientstringClient name.
item.client_idnumberStable ID of the client.
item.expires_atstringExpiry time in UTC, RFC 3339.
item.days_leftnumberWhole days until expiry; negative once expired.
item.issuerstringCertificate issuer or domain registrar, when known.
item.urlstringLink to the item in Radardue.

Test messages have "event": "test" and no item.

Good to know

  • One item, several alerts. An item alerts at each step of the schedule and daily in its final week. If you open tickets, use item.id together with item.expires_at as the key so you update one ticket instead of creating new ones.
  • Securing your endpoint. Requests aren't signed yet. Put a long random token in the URL path or query string and reject requests without it.
  • Stability. We only ever add fields to this payload. Ignore fields you don't recognise.

Something missing or unclear? Email hello@radardue.com and we'll answer and update this page. Using an AI assistant? Give it this page as Markdown or all the docs.