Webhook health across user projects
const url = 'https://example.com/api/integrations/webhooks/status?refresh=true';const options = {method: 'GET', headers: {cookie: 'sb-access-token=<sb-access-token>'}};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request GET \ --url 'https://example.com/api/integrations/webhooks/status?refresh=true' \ --cookie sb-access-token=<sb-access-token>Per-repo GitHub webhook health, from two independent signals: the cached hook-CONFIG check (installed, missing_events, last_checked, stale) and the last inbound delivery actually observed by the receiver (last_delivery_at). A delivery is direct evidence the hook works, so it outranks a stale config check — healthy counts repos that are delivering or correctly configured, and never penalises a repo purely for an un-refreshed check (HO-4711). A repo GitHub reports as archived carries archived: true and counts as healthy — it emits no events and takes no hook changes, so it is never pending (HO-11392). Use refresh=true to re-check config via GitHub (requires GitHub token).
Authorizations
Section titled “Authorizations ”Parameters
Section titled “ Parameters ”Query Parameters
Section titled “Query Parameters ”Responses
Section titled “ Responses ”Status map
object
object
Repos that are delivering, correctly configured, or archived (nothing pending).
Repos with an inbound delivery observed inside the freshness window.
Invalid query parameters
Not authenticated
object
Human-readable error message
Stable machine-readable error code for client branching
First validation message per field path
object
Structured validation issues (Zod)
object
Seconds until rate limit resets (429 responses)
True if re-linking GitHub may fix the issue
Failed to load projects