Skip to main content

Overview

Webhooks send events to your endpoint when the events occur. Use webhooks to start remediation workflows, update dashboards, or send alerts to your team.

Events

Payload format

Every delivery is a POST with a stable JSON envelope. The data object is different for each event. The sections below give the payload for each event.

scan.created

A pentest was created and queued.

scan.completed, scan.failed, scan.cancelled

The status of a pentest changed. The three events have the same payload shape. The status field is completed, failed, or cancelled.

vulnerability.created

A vulnerability was created for a pentest.

vulnerability.status_changed

The status of a vulnerability changed.

vulnerability.severity_changed

The severity of a vulnerability changed, with an override reason.

Create a webhook

Required scope: webhooks:write The response includes a secret field. Keep the secret in a safe location. Strix does not show the secret again.

Per-business_unit routing

By default, a subscription is org-wide. It receives every applicable event in your organization. On Enterprise plans, you can attach a subscription to a single business_unit. The subscription then receives only the events for assets in that business unit. This is useful when you have multiple end-customers in one organization and each customer must receive only its own events.
  • For an org-wide subscription, omit business_unit or set it to null. This is the default behavior.
  • To receive only the events for one business unit, set business_unit to that value. The business units of an event come from the related assets (domains and repositories).
  • The business_unit field requires the Enterprise plan (the rbac feature). On other plans, requests that set this field return 403.
  • To convert a scoped subscription back to org-wide, PATCH it with "business_unit": null.
To set the business_unit of an asset, use POST or PATCH on /v1/domains and /v1/repositories. A token that is scoped to a business_unit can only see and manage the assets, scans, and vulnerabilities of that unit.

Verify webhook signatures

Every webhook delivery includes signature headers for verification:

Signature verification (Node.js)

Always make sure that the signature is correct before you process a webhook payload. Reject requests that have a timestamp older than 5 minutes. This prevents replay attacks.

Delivery and retries

Strix sends events asynchronously, with retries and exponential backoff. A delivery can occur more than one time. When you process events, use the X-Strix-Delivery header as an idempotency key.

Manage webhooks

List webhooks

Required scope: webhooks:read

Update a webhook

Required scope: webhooks:write

Rotate webhook secret

The response includes the new secret. The old secret immediately becomes invalid. Required scope: webhooks:write

Delete a webhook

Required scope: webhooks:write

Inspect deliveries

Required scope: webhooks:read