Skip to content
MDView as Markdown

Webhooks

Webhook Notifications

Webhook notifications are now available for all of our Watch products, including Script Watch, Data Watch, Frame Watch and Policy Watch. It's easy to configure and can be configured per Watch product.

Enable Webhooks

On any configured Watch product, you will now see a button for Alerts.

Configured Watch Product

Clicking this button will open a modal to allow for configuration on how you are notified about new detections.

Options to manage alerts

Please specify the full URI of where you would like your Webhook notifications to be sent.

Webhook Content

When sending a Webhook to a generic endpoint, the HTTP POST request will contain a JSON object that can contain the following values.

Key Value When
text Human readable text, used for audit trail    always
type watcher identifier always
monitored_domain    site being watched always
first_seen ISO 8061 timestamp of first report always
policy text of policy policy watch
reportOnly boolean policy watch
resourceUri observed URI (script-data-frame) watch
source How this item was observed; csp, csp_integrity, or integrity_policy (script-data-frame) watch

Here is an example payload.

{
  "text": "New Script Watch alert for report-uri.com : https://evil-cyber-hacker.com/malware.js",
  "type": "scriptWatch",
  "monitored_domain": "report-uri.com",
  "first_seen": "2026-01-07T13:37:00+00:00",
  "resourceUri": "https://evil-cyber-hacker.com/malware.js",
  "source": "csp"
}

Slack Integration

When the webhook endpoint is detected as a Slack endpoint, we will format the request to produce a Slack message.

To allow us to POST messages into a Slack channel you need to provide us the Webhook URL:

  1. Visit https://api.slack.com/apps
  2. Click "Create New App", choose "From scratch", provide an "App Name" and pick your "Workspace". Then, click "Create App".
  3. In the new app, click "Incoming Webhooks", switch the toggle to "On" and click "Add New Webhook".
  4. Select your "Workspace" and then "Channel for webhook", then click "Allow".
  5. You can now copy the "Webhook URL" and use this in your Report URI account.

Once this is set up, any new notifications will be sent as Slack messages to your Slack channel.

A Slack message notification

Email Notifications

You can now choose to enable or disable email notifications for any configured Watch product using the Alerts modal. Simply change the toggle for "Send email alerts" to "OFF".

Options to manage alerts


Audit Trail Webhook

Available on Business and Enterprise plans, the Audit Trail webhook streams account security events to an endpoint of your choice — useful for ingesting audit logs into a SIEM or monitoring platform.

This webhook is separate from the Watch product webhooks above. It is configured once per account from Account Settings, under the Audit Trail section.

Payload

When the endpoint URL is not a Slack URL, the HTTP POST request will contain a JSON object with the following fields.

Key Value
type always auditTrail — identifies the source when multiple webhooks are in use
account team name (for team accounts) or email address (for personal accounts)
event audit trail event identifier (e.g. apiKeyCreated)
text human-readable message, prefixed with the account name
loggedById internal identifier of the actor who triggered the event
loggedByEmail email address of the actor, or empty string if system-triggered
timestamp ISO 8601 timestamp of the event

Example payload:

{
  "type": "auditTrail",
  "account": "Acme Corp",
  "event": "apiKeyCreated",
  "text": "[Acme Corp] API key \"main\" created by jane@example.com",
  "loggedById": "abc123",
  "loggedByEmail": "jane@example.com",
  "timestamp": "2026-04-14T14:32:00+00:00"
}

Slack Integration

When a Slack Incoming Webhook URL is provided, the payload is formatted as Slack Block Kit instead of structured JSON. Follow the same steps in the Slack Integration section above to obtain a Webhook URL, then paste it into the Audit Trail webhook field in Account Settings.

Audit trail events will appear as structured Slack messages showing the account name, actor email, timestamp, and a summary of the event.

Events

All audit trail events are forwarded to the webhook with the exception of webhook delivery attempts, which are excluded to prevent feedback loops.

When a webhook URL is configured or removed, a corresponding audit trail event is generated (auditTrailWebhookSet / auditTrailWebhookRemoved) — so the first message your endpoint receives confirms the feed is live, and the last message it receives before deactivation is the removal notice.