API reference
Webhooks
Instead of polling, let Fraudpol call you. Available on Pro and Enterprise.
Set up
- Open Company dashboard → Developers → Webhooks.
- Add a Custom webhook with your HTTPS endpoint, or a Slack incoming-webhook URL for channel messages.
- Choose the events with the switches and send a test.
Events
| event_type | Switch | When | Event fields |
|---|---|---|---|
| report.status_changed | Case updates | A case moves to In progress, Resolved – taken down or Resolved – no threat. | report_ref, domain, case_status, previous, resolution_note, changed_at |
| takedown.completed | Takedown completed | A managed takedown request is resolved. | domain, resolved_at |
| finding.created | New Brand Shield finding | Brand Shield detects a new lookalike domain or cloned page. | finding_id, monitored_domain, candidate_domain, url, score, risk, first_seen |
Payload
Custom webhooks receive a JSON POST with title, message, timestamp and event_type, plus event fields. Tolerate additional fields; we may add more.
{
"title": "Report status changed",
"message": "",
"timestamp": "2026-10-22T12:53:49Z",
"event_type": "report.status_changed",
"report_ref": "BW-C-1A2B3C-XY12",
"domain": "fake-bank-login.example",
"case_status": "resolved_taken_down",
"previous": "in_progress",
"resolution_note": null,
"changed_at": "2026-10-22T12:53:49Z"
}Security and delivery
Deliveries are not signed yet. Put a long random token in your endpoint URL, accept only HTTPS, and confirm important changes through the API (for example
GET /v1/reports/<id>) before acting.- Respond with any 2xx status within a few seconds; do slow work asynchronously.
- Delivery is at least once and not strictly ordered. Use
report_refpluscase_statusto deduplicate.
