Create an observability integration
Creates an inbound alert source and returns it together with the one and only copy of its secret.
The response carries everything needed to start sending alerts: endpoint_url is the absolute URL to POST to, and secret is the credential for it. Send the secret as X-WardenPoint-Secret: <secret> or as Authorization: Bearer <secret>; AWS CloudWatch integrations may also pass it as a ?secret= query parameter, because SNS cannot set headers. The endpoint answers 202 on success, 401 on a wrong secret, 403 while is_active is false, and 413 above the body-size cap.
Set hmac_enabled: true and the plain-secret header stops working entirely. Signed requests then need two headers: X-WardenPoint-Timestamp with the current Unix time, and X-WardenPoint-Signature with the lowercase hex hmac_sha256("<timestamp>.<raw body>", secret). The timestamp must be within 300 seconds of server time and each signature is accepted once. GitHub integrations are the exception: they always use GitHub's own X-Hub-Signature-256 scheme with the same secret, regardless of this flag.
The secret exists in plaintext only in this response — it is stored hashed. If you lose it, rotate it. The response is NOT idempotent: repeating this call creates a second integration with a second secret.
An integration created here is active unless you say otherwise, so it accepts alerts immediately. Without recipient_group_uuid and without routing rules an accepted alert is recorded and lands in the triage inbox but pages nobody — attach a group, or add routing rules, to have it reach people.
Passing recipient_group_uuid creates a catch-all routing rule pointing at that group. It is a real rule, listed by the routing-rules endpoint, and it stays last: rules you add afterwards are inserted above it, so building the routing table in a second step works as written. If you would rather have no default route at all, omit the field and create your rules explicitly.
The email type is only creatable when the operator has enabled email-to-alert; otherwise the call answers 403.
Request
- Base URL: https://wardenpoint.com (the document declares no server; this is the origin it was published from)
- URL: https://wardenpoint.com/api/v1/observability/integrations
- Auth: API key in header X-API-Key
Request body
Example request
{
"name": "Prometheus prod"
}Response
Integration created; data.secret holds the only copy of the secret.
Example response
{
"data": {
"routing_rules": [
{
"label_matchers": [
{
"key": "service",
"value": "checkout"
}
]
}
]
}
}Changes
No recorded changes to this operation across all 1 revision of this API.