Push delivery
Webhooks.
Subscribe to events and receive signed HTTPS callbacks instead of polling.
Subscriptions
POST
/v1/webhooks/subscriptionsCreate 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
| Event | Description |
|---|---|
| turbine.offline | A turbine has stopped reporting or is in fault state. |
| alert.created | A new alert was opened against a rule. |
| alert.resolved | An open alert was resolved automatically or by an operator. |
| measurement.thresholdExceeded | A measurement crossed a configured threshold. |
| maintenance.completed | A 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.