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
Log in to your incident.io dashboard
- 2
Navigate to Settings → Alert Sources
- 3
Click Create alert source
- 4
Select HTTP as the source type
- 5
Name it "Uptime Monitor" and save
- 6
Copy the Webhook URL and Bearer token
Step 2: Configure in Uptime Monitor
- 1
In Uptime Monitor, go to Settings → Contacts
- 2
Click Add Contact and select incident.io
- 3
Enter a name (e.g., "Production Alerts")
- 4
Paste your webhook URL and bearer token
- 5
Configure auto-resolve setting (enable to automatically resolve alerts when monitors recover)
- 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
- • 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
- • 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