Incident.io Integration

Send monitor alerts to incident.io using the HTTP Alert Events API. Automatically create and resolve alerts based on monitor status.

How It Works

Uptime Monitor integrates with incident.io through the HTTP Alert Events API:

  • Sends "firing" events when monitors go down
  • Sends "resolved" events when monitors recover (configurable)
  • Includes monitor details and error information in metadata
  • Uses deduplication keys to prevent duplicate alerts
  • Links to monitor dashboard for quick access

Setup Instructions

Step 1: Get Alert Source URL in incident.io

  1. 1

    Log in to your incident.io dashboard

  2. 2

    Navigate to Settings → Alert Sources

  3. 3

    Click Create alert source

  4. 4

    Select HTTP as the source type

  5. 5

    Name it "Uptime Monitor" and save

  6. 6

    Copy the Webhook URL and Bearer token

Step 2: Configure in Uptime Monitor

  1. 1

    In Uptime Monitor, go to Settings → Contacts

  2. 2

    Click Add Contact and select incident.io

  3. 3

    Enter a name (e.g., "Production Alerts")

  4. 4

    Paste your webhook URL and bearer token

  5. 5

    Configure auto-resolve setting (enable to automatically resolve alerts when monitors recover)

  6. 6

    Save the contact and add it to your monitors

Alert Event Format

Uptime Monitor sends the following event structure to incident.io:

{
  "title": "Production API is DOWN",
  "description": "Monitor is not responding. Reason: Connection timeout after 30000ms",
  "deduplication_key": "507f1f77bcf86cd799439011-507f1f77bcf86cd799439012",
  "status": "firing",
  "metadata": {
    "service": "uptime-monitor",
    "monitor_id": "507f1f77bcf86cd799439011",
    "monitor_name": "Production API",
    "monitor_url": "HEAD https://api.example.com/",
    "monitor_type": "HTTPS",
    "monitor_dashboard": "https://uptime-monitor.io/monitors/507f1f77bcf86cd799439011",
    "incident_id": "507f1f77bcf86cd799439012",
    "check_interval": 60,
    "timeout": 30
  }
}

Event Status

  • firing: Monitor is down
  • resolved: Monitor has recovered

Deduplication

Uses format {monitor_id}-{incident_id} to ensure each incident creates only one alert in incident.io.

Best Practices

  • Enable auto-resolve for cleaner alert tracking

    Automatically resolve alerts when monitors recover

  • Create separate alert sources for different environments

    Use different webhook URLs for production vs staging

  • Use meaningful monitor names

    Monitor names appear in alert titles - make them descriptive

  • Test integration before production use

    Use the Test button in contact settings to verify alerts are created correctly in incident.io

Troubleshooting

Common Issues

Alerts not appearing:
  • • Verify webhook URL and bearer token are correct
  • • Ensure monitor has incident.io contact assigned
  • • Check monitor is not paused
  • • Test with a different monitor to isolate issues
Authentication errors:
  • • Verify bearer token is correctly pasted (no spaces or extra characters)
  • • Check webhook URL matches the one from incident.io
  • • Regenerate the alert source in incident.io if needed