Integrations

Push alerts into the tools your team already uses

Reach the right people in the right channel—when downtime starts and when it recovers. Slack, Discord, Telegram, email, SMS, and webhooks for everything else.

  • Notify clients in their own Slack channels
  • Reach on-call engineers on Discord and Telegram
  • Trigger automations on every incident with webhooks

Connects with your stack

Live today, with more on the way. Don’t see your tool? Use webhooks.

Notifications

Where incidents land first.

  • Live
    Slack
    Send outage alerts directly to your client Slack channels.
  • Live
    Discord
    Loop your team and clients into incident discussions.
  • Live
    Telegram
    Push alerts to a personal chat or a team channel.
  • Live
    Email
    The reliable default—every plan, every monitor.
  • Live
    SMS
    When email and chat aren’t enough—wake somebody up.
  • Planned
    Microsoft Teams
    Surface incidents inside the tool corporate clients already use.

Incident management

Escalation and on-call rotations.

  • Coming soon
    PagerDuty
    Page on-call engineers using your existing rotations and escalations.
  • Planned
    Opsgenie
    Route incidents to Opsgenie schedules and teams.

Automation

Trigger workflows when status changes.

  • Live
    Outbound webhooks
    Trigger any automation when downtime starts or ends.
  • Planned
    Zapier
    Connect uptime events to thousands of apps without writing code.
  • Planned
    Make
    Build branching incident workflows visually.

Developer

Wire it into your stack.

  • Live
    REST API
    Manage monitors, incidents, and alerts programmatically with bearer-token auth.
  • Live
    Heartbeat URLs
    Have your cron jobs and workers ping a unique URL on every successful run.
  • Planned
    Terraform provider
    Define monitors as code alongside the rest of your infrastructure.

What each integration actually does

Every integration is tied to a real workflow—not just a logo on a marketing page.

  • Live
    Slack
    Send outage alerts directly to your client Slack channels.
    • Instant outage and recovery messages
    • Per-monitor webhook—route alerts to separate channels
    • Tag the on-call channel for production, mute for staging
    • Compatible with shared client workspaces
  • Live
    Discord
    Loop your team and clients into incident discussions.
    • Rich embed messages with status, region and timestamp
    • Mention roles or users on critical monitors
    • One webhook URL per channel—easy to set up
  • Live
    Telegram
    Push alerts to a personal chat or a team channel.
    • Use a bot you control with @BotFather
    • Send to numeric chat ids or @channel usernames
    • Great for solo founders and small ops teams
  • Live
    Email
    The reliable default—every plan, every monitor.
    • Plain-text and HTML alerts with incident timeline
    • Send to any address per monitor (handover-friendly)
    • Recovery emails include how long the outage lasted
  • Live
    SMS
    When email and chat aren’t enough—wake somebody up.
    • Verified phone number per account
    • Use as the final escalation step
    • Available on the Business plan
  • Live
    Outbound webhooks
    Trigger any automation when downtime starts or ends.
    • JSON payloads with monitor, region, status and timestamps
    • Sync incidents to your status page or internal tools
    • Forward to Zapier, Make, n8n, or your own API

    Outbound incident webhooks are live. Heartbeat URLs are live today, too.

  • Live
    Heartbeat URLs
    Have your cron jobs and workers ping a unique URL on every successful run.
    • Get alerted if a job stops running on schedule
    • Configurable grace period per monitor
    • Rotate the URL anytime to invalidate the old one

Alerts that look right at home

How a DOWN alert lands in your tool, with the context your team needs.

#client-acme-alerts
UpTime Watchapp11:42 AM
🔴 acme.com is DOWN
Failing in 2/3 regions: europe-north1, us-east4. We’ll notify you when it recovers.
View incident timeline →
UpTime WatchAPPToday at 11:42
@oncall
🔴 acme.com is DOWN
Failing regions
europe-north1, us-east4
Started at
2026-04-12 11:42 UTC
UpTime Watch · Incident inc_2KqLm
POST /your-incident-webhook
Sample JSON payload your endpoint receives the moment an incident starts.
JSON — incident webhook payload
{
  "event": "monitor.down",
  "monitor": {
    "id": "mon_8wPx7zR",
    "name": "acme.com production",
    "url": "https://acme.com"
  },
  "incident": {
    "id": "inc_2KqLm",
    "started_at": "2026-04-12T11:42:08Z"
  },
  "regions": {
    "failing": ["europe-north1", "us-east4"],
    "passing": ["europe-west1"]
  }
}

Built for developers and agencies

An honest, documented integration surface—not a marketing page hidden behind “contact sales”.

  • REST API
    Live
    Manage monitors and fetch check timelines programmatically with dedicated API tokens.
  • Webhooks (incident events)
    Live
    Receive monitor.down, monitor.up, and monitor.recovered events as JSON.
  • Heartbeat URLs
    Live
    Ping a unique URL from your cron or worker to confirm it ran on time.
Real endpoints, real syntax
Create an API token in your dashboard, then call the external REST API with a Bearer header.
curl — heartbeat ping (live today)
curl -X POST https://uptime.fiksudesign.fi/api/heartbeat/<your-token>
curl — list monitors (REST API)
curl -X GET https://uptime.fiksudesign.fi/external/api/v1/monitors \
  -H "Authorization: Bearer $UPTIME_TOKEN"
curl — create monitor (REST API)
curl -X POST https://uptime.fiksudesign.fi/external/api/v1/monitors \
  -H "Authorization: Bearer $UPTIME_TOKEN" \
  -H "Content-Type: application/json" \
  --data '{"name":"Site","url":"https://example.org"}'
curl — checks + incidents (REST API)
curl -X GET "https://uptime.fiksudesign.fi/external/api/v1/monitors/<monitorId>/checks?from=2025-01-01T00:00:00.000Z&to=2025-01-02T00:00:00.000Z" \
  -H "Authorization: Bearer $UPTIME_TOKEN"
JSON — create monitor (request body)
{
  "name": "Site",
  "url": "https://example.org",
  "type": "http_ok",
  "intervalMin": 5,
  "active": true,
  "regions": ["europe-west1"]
}
JSON — monitor (response)
{
  "id": "ckz3y7o8m0001r8h2b2r6p2x9",
  "name": "Site",
  "url": "https://example.org",
  "type": "HTTP_OK",
  "intervalMin": 5,
  "active": true,
  "region": "europe-west1",
  "regions": ["europe-west1"],
  "createdAt": "2026-05-07T21:04:00.000Z",
  "lastCheckedAt": null,
  "lastHeartbeatAt": null
}
JSON — list monitors (response)
{
  "data": [
    {
      "id": "ckz3y7o8m0001r8h2b2r6p2x9",
      "name": "Site",
      "url": "https://example.org",
      "type": "HTTP_OK",
      "intervalMin": 5,
      "active": true,
      "region": "europe-west1",
      "regions": ["europe-west1"],
      "createdAt": "2026-05-07T21:04:00.000Z",
      "lastCheckedAt": "2026-05-07T21:10:00.000Z",
      "lastHeartbeatAt": null
    }
  ],
  "nextCursor": null
}
JSON — checks + incidents (response)
{
  "from": "2025-01-01T00:00:00.000Z",
  "to": "2025-01-02T00:00:00.000Z",
  "page": 1,
  "pageSize": 50,
  "totalCount": 2,
  "totalPages": 1,
  "uptimePct": "50.0",
  "checks": [
    {
      "id": "ckz3y8a9p0002r8h2m9kq4t1s",
      "monitorId": "ckz3y7o8m0001r8h2b2r6p2x9",
      "region": null,
      "status": 200,
      "latencyMs": 123,
      "ok": true,
      "errorCode": null,
      "errorMessage": null,
      "sslValidFrom": null,
      "sslValidTo": null,
      "sslIssuer": null,
      "sslSubject": null,
      "domainExpiresAt": null,
      "screenshotPath": null,
      "screenshotDiffPath": null,
      "screenshotDiffScore": null,
      "screenshotChanged": null,
      "checkedAt": "2025-01-01T13:00:00.000Z"
    }
  ],
  "incidents": [
    {
      "start": "2025-01-01T12:00:00.000Z",
      "end": "2025-01-01T13:00:00.000Z",
      "failedCheckCount": 1
    }
  ]
}

Don’t see your tool? You’re one webhook away.

Webhooks ship to anything that accepts HTTP—Zapier, Make, n8n, or your own internal service. Sign up free and we’ll wire Slack, Discord, or Telegram in minutes.