Skip to main content

Create a webhook subscription

POST /api/v1/sites/{siteId}/outreach/webhooks Create a webhook subscription so Sight AI POSTs outreach events to your endpoint. Used by app integrations after the OAuth flow completes — your app gets an access token, then calls this endpoint to register its webhook URL and choose which events to receive.

Required headers

Request body

Response

201 Created

The secret is the HMAC signing secret. Copy it now — it’s never shown again. You’ll use it to verify the SightAI-Signature header on incoming webhooks. The subscription object returned (and all subsequent reads) only includes secret_prefix, never the full secret. When the caller is an OAuth token, created_by_oauth_client_id is stamped with the owning client so revoking that client cascades to delete this subscription. For API-key callers, it’s null.

Error responses

Example

List webhook subscriptions

GET /api/v1/sites/{siteId}/outreach/webhooks List all webhook subscriptions for a site. Returns the safe shape (no plaintext secrets).

Response

Requires the webhooks:read scope.

Delete a webhook subscription

DELETE /api/v1/sites/{siteId}/outreach/webhooks/{id} Delete a webhook subscription. The subscription’s delivery history is cascaded (deleted automatically). Requires the webhooks:write scope.

Response

Returns 404 NOT_FOUND if the subscription doesn’t exist or doesn’t belong to the site.

Revoking an app’s access

To revoke an app integration’s access entirely (all its subscriptions + tokens), delete its OAuth client in Integrations → Sight AI API → OAuth apps. This cascades to delete every webhook subscription that client created and revokes its outstanding access/refresh tokens. See Webhooks for the full OAuth flow.
Subscription management is API-only — there is no dashboard form. The only dashboard surface for revoking a platform’s webhooks is deleting its OAuth client.