All your alert sources in one place. One incident, not twelve alerts.
Zabbix, Datadog, Grafana, Prometheus, Sentry, email and your Uptimeify monitoring all report to one place. Uptimeify translates every alert into the same language, groups duplicates into one incident and hands it to your team.
Made and Hosted in the
European Union
GDPR-Compliant Hosting
in Germany
GEO-Redundant Replica
across the EU
Keep your stack. Route it to one place.
You do not have to replace a single tool to respond well. Common monitoring and error tools come with ready-made presets and mappings, and everything else connects through a configurable webhook. Create the source, assign a team, paste the URL into your tool, done.
- Ready-made presets for Zabbix, Datadog, Grafana Alerting, Prometheus Alertmanager, Sentry and Beszel, so title, severity and host are right from the first alert.
- Your Uptimeify monitoring is already in: incidents from your own checks land in incident management automatically, so there is no second integration to maintain.
- Email and a report form as sources: alert emails from legacy systems and reports from people without a login become alerts too, so nothing bypasses the process.

Every webhook source gets its own ingest URL https://uptimeify.io/api/im/ingest/<token>. The token in the URL is the credential. It is shown exactly once and stored only as a SHA-256 hash. After a rotation the old token keeps working for seven days, so you can switch over without an outage.
On top of that, each source can require an HMAC signature (X-Uptimeify-Signature over <timestamp>.<body>, tolerance ±5 minutes) or a 256-bit bearer token. Every failed check answers with the same 404 as an unknown token, so the response gives nothing away. For Zabbix, Uptimeify generates a ready-made media type, and Beszel connects through a generic:// URL.
Every tool speaks its own dialect. Your team reads one language.
Zabbix says "Disaster", Sentry says "fatal", Grafana says "critical". The mapping decides what that becomes: a title, a host, a status and a severity from sev1 to sev4. Your team decides by urgency, not by the dialect of the tool.
- Map fields by path, with fallbacks and regular expressions, so even unusual payloads arrive clean.
- Translate severities: every value of the tool gets its place on the sev1 to sev4 scale, so a sev1 from Datadog rings just like one from Zabbix.
- Test the mapping without waking anyone: the dry run takes the last received payload and shows the result, so you check changes before they go live.

Selectors are dot and bracket paths such as data.host.name or alerts[0].id, fallbacks use a || b, regex uses field =~ /pattern/ (first group or whole match, flags i, m, s, u, searching the first 4,096 characters). severityMap translates raw values into sev1 to sev4, and resolveValues sets which status values resolve an alert. Without a valid severity, defaultSeverity applies, sev3 by default.
POST /api/im/sources/:id/test-mapping is a dry run: it takes the body, otherwise the last received payload, otherwise the preset sample, and creates nothing. test-alert, by contrast, sends an alert through the real pipeline and may page. The live activity view shows the last ten raw payloads.
Less noise, before anyone gets paged.
A flapping check, ten alerts for the same outage, a planned update at midnight: none of that should wake your team. Uptimeify groups matching alerts into one incident, closes it when the tool sends the all-clear, and keeps planned work quiet per source.
- Same alerts, one incident: duplicates are grouped by a key, so an alert storm creates exactly one incident.
- Maintenance windows per source: recurring times with their own time zone during which the source stays silent, so patch Tuesday does not trigger the pager.
- Snooze until a set time: pause a source until a fixed moment, so a known issue does not ring all night.

Alerts with the same dedupKey belong to the same incident. Without a selector of your own, the key is a SHA-1 of title and host. groupingWindowMinutes additionally groups alerts within a time window, null groups by key only. autoResolve (on by default) closes the incident as soon as the source sends a resolve.
Each source supports up to 20 maintenance windows, each with weekday, from/to and an IANA time zone. snoozeUntil silences the source until a point in time. When two different sources report an incident for the same service or host within 15 minutes, Uptimeify suggests merging them. Nothing is merged automatically.
Every source in view. Every alert accepted.
Which tool makes the most noise, and how much of it actually becomes an incident? The per-source statistics show it day by day. And when things are on fire, Uptimeify accepts alerts immediately and processes them in the background, so your monitoring never waits on incident management.
- Statistics per source: alerts, grouped duplicates and resulting incidents per day, so you can quiet down noisy sources on purpose.
- Immediate acceptance: every alert is stored durably before it is processed, so nothing gets lost during load spikes.
- Events API for your own systems: internal scripts and platforms send JSON with an API token, so home-grown checks end up in the same process.

A successful ingest answers 202 Accepted: the alert is stored durably, while mapping, deduplication and paging run asynchronously. If the queue is briefly unavailable, it goes to a fallback store. Only a 503 means nothing was stored, and then you resend with backoff.
Limits: body up to 256 KB, nesting up to 20 levels, 300 requests per minute per source, 50 MiB per hour per organization, beyond that 429 with retryAfter. POST /api/im/events accepts any JSON with an organization-wide token, up to 600 requests per minute, and detects title, severity, status and dedup key from common field names. Per-source statistics cover the last 30 days with data.
We don't just monitor. We help you sell.
Every Uptimeify subscription includes access to our Success Kit, a collection of battle-tested resources to turn your monitoring into a profit center.
Service Level Agreement templates to define professional boundaries with your clients.
Find the sweet spot for your care plans. Calculate margins based on check frequency and support hours.
Powerpoint Templates that explain 24/7 monitoring to non-technical clients. Close more retainers.
Use automated reports to proactively communicate value, so clients never ask what they're paying for.
Ready to turn monitoring into a profit center?
Claim your Success Kit and start scaling today.
Frequently Asked Questions
Ready-made presets exist for Zabbix, Datadog, Grafana Alerting, Prometheus Alertmanager, Sentry and Beszel. On top of that there is a configurable webhook for any tool that can send JSON, an email address for alert emails, a report form and the events API. Your Uptimeify monitoring is connected as a source without any setup.
No. The monitoring bridge brings incidents from your Uptimeify checks into incident management automatically. In the settings you decide whether classic monitoring alerts keep running as well or only incident management pages. That way you switch over without risking a night without alerts.
Yes. An email source gets its own address that you forward alert emails to. The subject becomes the title, and emails with "resolved", "recovered" or "cleared" in the subject close the alert. Subject and plain-text body are parsed, so HTML-only emails give the mapping nothing to read.
Through the report form, a link that needs no sign-in. Every report becomes an alert and runs through the same routing and escalation as a tool alert. The answer to how many people are affected suggests a severity. A honeypot and per-sender limits keep spam out, and reports are never merged automatically.
Matching alerts are grouped into one incident by their dedup key, so your team gets one incident instead of hundreds of messages. Each source accepts up to 300 requests per minute. When a limit is reached, Uptimeify answers with a clear 429 and a wait time, so your tool can retry deliberately.
For the technical stakeholder
Ready to have all your alerts in one place?
Connect your first source, check the mapping with a dry run and let Uptimeify group the rest. Your stack stays as it is. Your team only hears what really matters.