Skip to content

Webhooks

When a scan completes, the platform POSTs a JSON snapshot — including the generated PDFs — to the brand’s webhook_url.

Set webhook_url on the brand profile (Brand Profile). The dashboard alerts when it’s missing.

WebhookDeliveryJob performs the POST using WebhookDeliverer:

  • Method: POST
  • Headers: Content-Type: application/json, User-Agent: BrandProtect/1.0
  • Body: the scan snapshot (below)
  • Size cap: 100 MB
{
"event": "scan_completed",
"scan_run": { "...": "scan attributes" },
"findings": [ "..." ],
"social_findings": [ "..." ],
"audit_events": [ "..." ],
"reports": {
"full": "<base64 pdf>",
"summary": "<base64 pdf>"
}
}
Field Contents
event scan_completed (the only event today)
scan_run The completed scan’s attributes
findings Domain findings
social_findings Social findings
audit_events Relevant audit events
reports Full + executive-summary PDFs (base64)

Delivery is best-effort: the job never raises on a failed POST — it logs and records a webhook_sent audit event. There is no retry queue; the webhook is a notification, not a durable queue.