This reference is the skmtc/api-change-webhooks API on Hub. Star it to see each revision, and add a pipeline to get its changes.
StarOpen on HubAPI change event
A pipeline delivery. Delivery is at least once and in no fixed order.
Request
POSTto the HTTPS destination of the webhook actionapplication/cloudevents+json; charset=utf-8SKMTC-Hub-Webhooks/1header, requiredHub's webhook client; the 1 matches the v1 of the event types.
t=<unix seconds>,v1=<hex HMAC-SHA256>. The HMAC key is the webhook's whole secret as UTF-8, whsec_ prefix included; the signed content is <t>.<raw body>. Compute it from the raw body before parsing it, compare in constant time, and refuse a t more than five minutes from your clock. Each attempt signs again with a new t and the current secret.
Event data
One structured-mode CloudEvent 1.0: the pipeline delivery event.
The same on every attempt of a delivery. Use it to find duplicates. A pipeline delivery that Run now starts again sends a new id.
The Hub site that sent the event, e.g. https://skmtc.dev.
The API, as {owner}/{slug}.
When Hub captured the event; for a pipeline delivery event, when the delivery started. This is not the publisher's time.
The data of a delivery event.
{
"specversion": "1.0",
"id": "string",
"source": "https://example.com",
"subject": "string",
"time": "2026-10-30T12:00:00Z",
"datacontenttype": "application/json",
"type": "dev.skmtc.pipeline.delivery.v1",
"data": {
"deliveryId": "string",
"pipeline": {
"owner": "string",
"name": "string",
"url": "https://example.com"
},
"api": {
"id": "string",
"owner": "string",
"slug": "string",
"name": "string",
"url": "https://example.com"
},
"revision": {
"id": "string",
"contentHash": "string",
"version": "string",
"publishedAt": "2026-10-30T12:00:00Z",
"retrievedAt": "2026-10-30T12:00:00Z",
"url": "https://example.com"
},
"results": [
{
"type": "generate",
"outcome": "succeeded",
"reasonCode": "string",
"detail": "string",
"durationMs": 0
}
]
}
}Response
2XX
Any 2xx: the delivery succeeded. Hub does not read the body.
307
Hub sends the same request to location, for not more than 3 redirects.
308
Hub sends the same request to location, for not more than 3 redirects.
3XX
Any other 3xx or 4xx: the delivery fails and Hub does not try again.
408
Hub tries again later with the same event id, for not more than 24 hours from the first attempt. Hub also tries again after a timeout of 10 seconds or a network error.
429
Hub tries again later with the same event id, for not more than 24 hours from the first attempt. Hub also tries again after a timeout of 10 seconds or a network error.
4XX
Any other 3xx or 4xx: the delivery fails and Hub does not try again.
5XX
Hub tries again later, as for 408 and 429.
Changes
Webhooks have no change history: a webhook is keyed by its event name rather than a path and method, so no recorded change can name it.