Overview
Webhooks allow you to:- Receive immediate notifications for security alerts
- Filter alerts by type and host
- Integrate with incident management systems
- Build custom alerting workflows
Alert Types
Metlo generates alerts for the following security issues:| Alert Type | Description |
|---|---|
New Endpoint Detected | A previously unknown API endpoint was discovered |
PII Data Detected | Personally Identifiable Information found in API traffic |
Open API Spec Diff | Endpoint behavior differs from OpenAPI specification |
Sensitive Data in Query Params | PII or sensitive data exposed in URL query parameters |
Sensitive Data in Path Params | PII or sensitive data exposed in URL path |
Basic Authentication Detected | Endpoint using basic authentication (security risk) |
Endpoint not secured by SSL | Unencrypted HTTP endpoint detected |
Unauthenticated Endpoint returning Sensitive Data | Sensitive data accessible without authentication |
Creating Webhooks
Via UI
- Navigate to Settings > Webhooks in the Metlo dashboard
- Click Create Webhook
- Enter the webhook URL
- (Optional) Select specific alert types to filter
- (Optional) Select specific hosts to monitor
- Click Save
Via API
Create a webhook programmatically using the Metlo API:Webhook Configuration
URL
The HTTPS/HTTP endpoint where webhook payloads will be sent. Must be a valid URL.
Alert Type Filters
Array of alert types to trigger this webhook. If empty, all alert types trigger the webhook.
Host Filters
Array of hostnames to monitor. If empty, alerts from all hosts trigger the webhook.
Max Retries
Number of retry attempts if the webhook endpoint fails (5xx errors).
Retries occur with a 500ms delay between attempts. Only 5xx server errors trigger retries.
Webhook Payload
Metlo sends a POST request with the following JSON payload:Payload Fields
Unique identifier for this alert.
The type of alert (see Alert Types table above).
Risk severity:
none, low, medium, or high.Current alert status:
Open, Resolved, or Ignored.Details about the affected API endpoint, including path, method, host, and detected sensitive data fields.
Additional context including total endpoints and sensitive endpoints for the host.
Integration Examples
Slack
- Create a Slack webhook URL in your workspace
- Transform the Metlo payload using a middleware service (e.g., Zapier, n8n) or create a simple proxy:
PagerDuty
Integrate with PagerDuty Events API v2:Managing Webhooks
List All Webhooks
Update a Webhook
Delete a Webhook
Webhook Execution History
Metlo tracks the last 10 webhook execution attempts for each webhook. View execution history in the UI under Settings > Webhooks to troubleshoot delivery issues. Each execution record includes:- Success/failure status
- Error message (if failed)
- Payload that was sent
- Timestamp
Security Considerations
Verifying Webhook Authenticity
Currently, Metlo sends webhooks without signature verification. To secure your webhook endpoint:- Use HTTPS with a valid certificate
- Implement authentication at your endpoint (API key, bearer token)
- Restrict access by IP address
- Validate the payload structure
Timeout and Retry Behavior
- Timeout: 250ms per request
- Retry Logic: Only on 5xx server errors
- Retry Delay: 500ms between attempts
- Max Retries: Configurable per webhook (default: 3)
4xx client errors (bad request, unauthorized, etc.) do not trigger retries. Fix the endpoint configuration instead.
Troubleshooting
Webhook Not Triggering
- Verify alert type and host filters match expected alerts
- Check that alerts are being generated (view in Metlo UI)
- Confirm webhook URL is accessible from Metlo server
Webhook Failing
- Review execution history for error messages
- Test endpoint manually with sample payload
- Check endpoint logs for request details
- Verify timeout is sufficient (250ms default)
Missing Alerts
- Ensure
alertTypesarray includes the expected alert type - Verify
hostsarray includes the correct hostname - Leave filters empty to receive all alerts (for testing)