Push delivery

Webhooks.

Subscribe to events and receive signed HTTPS callbacks instead of polling.

Subscriptions

POST/v1/webhooks/subscriptions

Create a subscription

Provide a target URL and the events you want to receive.

Required scopesalerts.read

Request

POST /v1/webhooks/subscriptions
{
  "url": "https://ops.example.com/hooks/windpunt",
  "events": ["alert.created", "turbine.offline"],
  "secret": "whsec_..."
}

Response

{ "id": "whs_8421", "status": "active" }

Events

EventDescription
turbine.offlineA turbine has stopped reporting or is in fault state.
alert.createdA new alert was opened against a rule.
alert.resolvedAn open alert was resolved automatically or by an operator.
measurement.thresholdExceededA measurement crossed a configured threshold.
maintenance.completedA work order was completed.

Payload

POST https://ops.example.com/hooks/windpunt
X-Windpunt-Event: alert.created
X-Windpunt-Signature: t=1715850000,v1=...

{
  "id": "evt_8a12",
  "type": "alert.created",
  "createdAt": "2025-05-16T08:21:00Z",
  "data": {
    "alertId": "al_1234",
    "turbineId": "wt_b3_a07",
    "metric": "gearboxTemperature",
    "value": 82.4,
    "severity": "warning"
  }
}

Signature verification

Each delivery carries an HMAC SHA256 signature in the X-Windpunt-Signature header. Recompute it using the request body and your subscription secret, and compare with a constant time check.