Skip to main content

Alert Connectors API

Forward alerts to external channels (Slack, Microsoft Teams) via webhook-based connectors.

Endpoints Overview

MethodEndpointDescription
GET/spaces/{slug}/alert-connectorsList all connectors
POST/spaces/{slug}/alert-connectorsCreate a connector
PATCH/spaces/{slug}/alert-connectors/{id}Update a connector
DELETE/spaces/{slug}/alert-connectors/{id}Delete a connector
POST/spaces/{slug}/alert-connectors/{id}/testSend test message

Connector Types

TypePlatformPayload Format
slackSlackBlock Kit with attachments
teamsMicrosoft TeamsAdaptive Card v1.4

List Connectors

GET /spaces/{slug}/alert-connectors

Response

[
{
"id": "...",
"space_id": "...",
"name": "#data-quality-alerts",
"connector_type": "slack",
"webhook_url": "https://hooks.slack.com/services/...",
"is_active": true,
"severity_filter": ["high", "critical"],
"alert_type_filter": null,
"created_by": {
"id": "...",
"email": "alice@example.com",
"full_name": "Alice Johnson"
},
"created_at": "2026-02-11T10:00:00Z",
"updated_at": "2026-02-11T10:00:00Z"
}
]

Create Connector

POST /spaces/{slug}/alert-connectors

Request Body

{
"name": "#data-quality-alerts",
"connector_type": "slack",
"webhook_url": "https://hooks.slack.com/services/T00/B00/xxx",
"severity_filter": ["high", "critical"],
"alert_type_filter": null
}

Fields

FieldTypeRequiredDescription
namestringYesDisplay name for the connector
connector_typestringYesslack or teams
webhook_urlstringYesIncoming webhook URL (must be HTTPS)
severity_filterstring[]NoSeverities to forward. Default: ["high", "critical"]. Valid: low, medium, high, critical
alert_type_filterstring[]NoAlert types to forward. Default: null (all types)

Response

Returns the created connector (same shape as list items), with status 201.


Update Connector

PATCH /spaces/{slug}/alert-connectors/{id}

Request Body

All fields are optional. Only provided fields are updated.

{
"name": "Updated Name",
"is_active": false,
"severity_filter": ["critical"],
"webhook_url": "https://hooks.slack.com/services/new-url"
}

Response

Returns the updated connector.


Delete Connector

DELETE /spaces/{slug}/alert-connectors/{id}

Returns 204 No Content on success.


Test Connector

POST /spaces/{slug}/alert-connectors/{id}/test

Sends a test message to verify webhook connectivity.

Response

{
"success": true,
"status_code": 200,
"error": null
}

If the webhook is unreachable or returns an error:

{
"success": false,
"status_code": 500,
"error": "Connection timeout"
}

Filtering Behavior

When an alert is dispatched, connectors are matched using two filters:

  1. Severity filter — The alert severity must appear in the connector's severity_filter list. An empty list matches all severities.
  2. Alert type filter — If alert_type_filter is null, all alert types are forwarded. Otherwise, the alert type must appear in the list.

Only active connectors (is_active: true) receive dispatched alerts.


Authentication

All endpoints require a valid session token via the Authorization header. The user must have access to the specified space.