Detection, Mitigation & Response

Detect and mitigate DDoS attacks in under 1 second, respond automatically, and keep your users informed.

All features →
Docs
Documentation Quick Start API Reference Agent Setup Integrations 18
Learn
Free Tools 37 Free Certifications State of DDoS 2026 REPORT DDoS Protection Landscape Buyer's Guide PDF Hackathon Sponsorships DDoS Protection Facts
Company
About Us Become a Consultant 30% Partners White Label Managed Protection Contact Us System Status
Open Source
ftagent-lite MIT NetHawk MIT
Legal
Security Trust Center Terms & Privacy
Who Uses Flowtriq

From indie hosts to ISPs, see how teams like yours use Flowtriq to detect and stop DDoS attacks.

All use cases →

Webhook Reference

When you configure a Webhook notification channel, Flowtriq sends HTTP POST requests to your URL on every incident event.

Event Types

EventTrigger
attack_startNew incident opened - attack detected
attack_updateOngoing attack - peak PPS/BPS updated
attack_endAttack resolved (manual or auto)
testManual test from the dashboard

Payload Format

// POST to your webhook URL // Content-Type: application/json // X-Flowtriq-Signature: sha256=abc123... { "event_type": "attack_start", "timestamp": "2025-03-10T14:22:00Z", "incident": { "id": 147, "uuid": "d4e5f6a7-b8c9-...", "title": "UDP Flood on web-prod-1", "attack_family": "udp_flood", "severity": "critical", "peak_pps": 2450000, "peak_bps": 1547000000, "source_ip_count": 8429, "started_at": "2025-03-10T14:22:00Z", "ai_summary": "A large 1.4 Gbps UDP flood from 8,429 source IPs...", "dashboard_url": "https://flowtriq.com/dashboard/incident?id=147" }, "node": { "id": 1, "name": "web-prod-1", "ip_address": "203.0.113.10" } }

HMAC-SHA256 Signature Verification

If you set a webhook secret, Flowtriq signs every payload with HMAC-SHA256. The signature is in the X-Flowtriq-Signature header.

Python

import hmac, hashlib def verify_signature(payload_body, signature_header, secret): expected = 'sha256=' + hmac.new( secret.encode(), payload_body, hashlib.sha256 ).hexdigest() return hmac.compare_digest(expected, signature_header)

Node.js

const crypto = require('crypto'); function verifySignature(body, signatureHeader, secret) { const expected = 'sha256=' + crypto .createHmac('sha256', secret) .update(body) .digest('hex'); return crypto.timingSafeEqual( Buffer.from(expected), Buffer.from(signatureHeader) ); }

PHP

$expected = 'sha256=' . hash_hmac('sha256', $payload_body, $secret); $valid = hash_equals($expected, $_SERVER['HTTP_X_FLOWTRIQ_SIGNATURE']);

Go

mac := hmac.New(sha256.New, []byte(secret)) mac.Write([]byte(payloadBody)) expected := "sha256=" + hex.EncodeToString(mac.Sum(nil)) valid := hmac.Equal([]byte(expected), []byte(signatureHeader))

Retry Policy

  • Flowtriq retries failed webhook deliveries up to 3 times
  • Retry intervals: 10 seconds, 60 seconds, 5 minutes
  • A delivery is considered failed if your endpoint returns a non-2xx status code or times out (10 second timeout)
  • Failed deliveries are logged in the notification log on the incident detail page