Webhooks let LumiqTrace push alert notifications to your own infrastructure in real time. When an alert rule fires, LumiqTrace immediately sends a signed HTTP POST to your configured endpoint. Use webhooks to integrate with Slack, PagerDuty, OpsGenie, custom dashboards, or any HTTP endpoint.Documentation Index
Fetch the complete documentation index at: https://docs.lumiqtrace.com/llms.txt
Use this file to discover all available pages before exploring further.
Webhooks are available on the Scale plan. On Pro and Team, email notifications are available but webhook delivery is not.
Configuring a webhook URL
Webhook URLs are set per alert rule. When creating or editing an alert rule in Dashboard → Alerts, enter your endpoint URL in the Webhook URL field. The URL must:- Use HTTPS
- Accept POST requests
- Respond with a 2xx status code within 10 seconds
Payload schema
When an alert fires, LumiqTrace sends a POST request withContent-Type: application/json and the following body:
Always
"alert.fired" for alert webhooks.The ID of the alert rule that triggered.
The human-readable name of the alert rule, as set in the dashboard.
The metric that crossed the threshold:
error_rate, cost_usd, latency_ms, request_count, or token_count.The comparison that triggered:
">" or "<".The configured threshold value.
The actual metric value at the time of firing.
The aggregation window in minutes.
ISO 8601 UTC timestamp when the alert fired.
Direct link to the traces page for this project — include this in your Slack message for one-click investigation.
HMAC-SHA256 signature for verifying the payload. See below.
Verifying the signature
Every webhook payload includes asignature field in the format sha256=<hex_digest>. You should verify this before processing the payload to protect against spoofed requests.
The signature is computed as:
webhook_secret is the signing secret shown once when you configure the webhook URL in the dashboard. Store it as an environment variable.
- Node.js
- Python
Use the raw request body (Buffer) for signature verification, not the parsed JSON object. Parsing changes whitespace and field ordering, which invalidates the signature.
Delivery guarantees
| Property | Value |
|---|---|
| Timeout | 10 seconds per attempt |
| Retries | 3 attempts with exponential backoff (5s, 25s, 125s) |
| Ordering | Not guaranteed — events may arrive out of order |
| Deduplication | Use alert_id + fired_at to deduplicate |
Integration examples
Slack
Post a formatted message to a Slack channel using an incoming webhook:PagerDuty
Create a PagerDuty incident from an alert:Testing your webhook endpoint
Use the Test webhook button in the alert rule editor to send a sample payload to your endpoint. The test payload usescurrent_value equal to threshold + 1 so your handler can distinguish it from real alerts if needed (the fired_at timestamp will also be clearly recent).
Alternatively, use a tool like webhook.site to inspect raw payloads during development before wiring up your real handler.