Uptimeify Docs
Incident managementAlert sources

Alert Source Setup Guides

Step-by-step guides for wiring Zabbix, Datadog, Grafana Alerting, Prometheus Alertmanager, Sentry, or any custom webhook to Uptimeify Incident Management.

Each guide below walks through configuring one monitoring/alerting tool to send its alerts to an Uptimeify alert source: a per-tool ingest endpoint with a built-in field mapping, so alerts land in Incident Management already normalized (title, severity, status, host) without writing a custom integration.

Guides

The Email guide works differently from the rest: an email source has no JSON webhook payload, so the "How ingestion works" and "Severity mapping" sections below (both webhook-specific) don't apply to it; see that guide directly.

How ingestion works

  1. In the Uptimeify dashboard, go to Incident Management → Alert Sources → New and pick the preset matching your tool. Give it a name and, optionally, assign it to a team.

  2. Uptimeify generates a unique ingest URL:

    https://<your-domain>/api/im/ingest/<token>

    The <token> is shown once, immediately after the source is created. Copy it right away. It is never shown again in cleartext. If you lose it, open the source's Settings tab and rotate the token to get a fresh URL (also shown only once).

  3. Configure your tool (see the tool-specific guide) to send an HTTP POST request with a JSON body to that URL whenever it fires or resolves an alert.

  4. Uptimeify parses the payload using the preset's field mapping (or your own edited mapping, from the source's Payload Mapping tab) and queues it for asynchronous processing into Incident Management.

This is a different mechanism from the Events Ingest endpoint (POST /api/im/events): that endpoint is authenticated with an organization-wide API token and has no preset field mapping (every request maps through a single auto-provisioned api-type source). The per-tool ingest URL above has no separate authentication (the token embedded in the URL is the credential, so treat the full URL like a password), but comes with a ready-made mapping for the tool you picked.

Request limits

The same limits apply to every ingest URL, regardless of preset:

LimitValueFailure
Body size256 KB413 Payload Too Large
JSON nesting depth20 levels422 Unprocessable Entity (payload_too_deep)
Body must be valid JSON422 Unprocessable Entity (invalid_json)

An empty request body is treated as {}.

Response

A successful request always returns 202 Accepted immediately: the alert is queued, not yet processed:

{ "accepted": true }

An unknown, wrong, or rotated-away token returns 404 Not Found (not_found). Every kind of authentication failure returns this same response, by design. It never reveals whether a token used to exist. A 503 Service Unavailable (unavailable) means the alert could not be queued and is safe to retry.

Severity mapping

Every preset except Custom webhook (which has no severity selector) maps the vendor's raw severity value onto one of Uptimeify's four incident severities:

Uptimeify severityMeaning
sev1Worst / critical
sev2High
sev3Warning
sev4Low / informational

A vendor severity value that isn't in the map, or a missing severity field, falls back to the alert source's own configured default severity, not automatically to sev4.

On this page