Monoduty Documentation
Welcome to Monoduty! This documentation will help you get started with our alerting platform and make the most of its features.
Quick Start
Get your first alert working in under 5 minutes. Follow these simple steps:
Create an Account
Sign up at monoduty.com/signup. No credit card required for the free tier.
Create Your First Webhook
Go to the Dashboard and click "Create Webhook". Give it a name like "My First Webhook" and select your notification channels (SMS, Email, Voice).
Copy Your Webhook URL
After creating the webhook, you'll get a unique URL like:
Send Your First Alert
Test it with a simple curl command:
curl -X POST https://api.monoduty.com/webhook/YOUR_WEBHOOK_ID \
-H "Content-Type: application/json" \
-d '{
"title": "Test Alert",
"message": "This is my first Monoduty alert!",
"severity": "info"
}'
Core Concepts
Webhooks
A webhook is a unique URL endpoint that accepts HTTP POST requests. When a request is received, Monoduty processes the payload and sends alerts to your configured notification channels.
Notification Channels
Monoduty supports multiple notification channels:
- SMS - Text messages with global delivery
- Email - Rich HTML emails with full context
- Voice Calls - Automated phone calls for critical alerts
- Push Notifications - Mobile app notifications (iOS & Android)
Severity Levels
| Level | Description | Default Channels |
|---|---|---|
critical |
System down, immediate action required | SMS, Voice Call, Email |
warning |
Potential issue, should investigate | SMS, Email |
info |
Informational, no action needed | Email only |
Webhooks Overview
Monoduty's universal webhook system is designed to work with any tool or service that can make HTTP requests. This means you can integrate with Grafana, Prometheus, custom scripts, CI/CD pipelines, and literally anything else.
Creating Webhooks
You can create webhooks through the Dashboard UI or via the API.
Via Dashboard
- Navigate to Dashboard → Webhooks
- Click "Create Webhook"
- Enter a name and description
- Select notification channels
- Configure optional settings (payload template, filters)
- Click "Create"
Via API
curl -X POST https://api.monoduty.com/v1/webhooks \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "Production Alerts",
"channels": ["sms", "email"],
"description": "Alerts from production servers"
}'
Webhook Payload Format
Monoduty accepts JSON payloads with the following fields:
| Field | Type | Required | Description |
|---|---|---|---|
title |
string | Yes | Alert title/subject |
message |
string | No | Detailed alert message |
severity |
string | No | critical, warning, or info (default: info) |
source |
string | No | Source system (e.g., "grafana", "prometheus") |
tags |
object | No | Key-value metadata |
url |
string | No | Link to related dashboard/page |
Example Payload
{
"title": "High CPU Usage on web-server-01",
"message": "CPU usage exceeded 90% for 5 minutes",
"severity": "warning",
"source": "prometheus",
"tags": {
"host": "web-server-01",
"environment": "production"
},
"url": "https://grafana.example.com/d/abc123"
}
Webhook Security
Secure your webhooks with these best practices:
Webhook Secrets
Each webhook can have a secret key for signature verification:
# Include HMAC signature in header
curl -X POST https://api.monoduty.com/webhook/YOUR_WEBHOOK_ID \
-H "Content-Type: application/json" \
-H "X-Monoduty-Signature: sha256=COMPUTED_SIGNATURE" \
-d '{"title": "Alert"}'
IP Allowlisting
Restrict webhook access to specific IP addresses in your webhook settings.
Grafana Integration
Connect Grafana alerting to Monoduty in under 2 minutes.
Get Your Webhook URL
Create a webhook in Monoduty Dashboard and copy the URL.
Open Grafana Alerting
In Grafana, go to Alerting → Contact Points.
Add New Contact Point
Click "Add contact point" and select "Webhook" as the type.
Configure Webhook
Paste your Monoduty webhook URL and save.
Name: Monoduty Alerts Type: Webhook URL: https://api.monoduty.com/webhook/YOUR_WEBHOOK_ID HTTP Method: POST
Prometheus / Alertmanager
Route Prometheus Alertmanager notifications to Monoduty.
Alertmanager Configuration
Add Monoduty as a webhook receiver in your alertmanager.yml:
receivers: - name: 'monoduty' webhook_configs: - url: 'https://api.monoduty.com/webhook/YOUR_WEBHOOK_ID' send_resolved: true route: receiver: 'monoduty' group_by: ['alertname', 'severity'] group_wait: 30s group_interval: 5m repeat_interval: 4h
send_resolved: true to receive notifications when alerts are resolved.
Slack Integration
Get real-time alerts in your Slack channels with interactive buttons.
Install Monoduty App
Go to Settings → Integrations → Slack and click "Add to Slack".
Authorize Access
Select the workspace and channels where you want to receive alerts.
Configure Channel Mapping
Map your webhooks to specific Slack channels.
Slack Alert Features
- Rich message formatting with alert details
- Acknowledge button to claim incidents
- Resolve button to close alerts
- Escalate to notify additional team members
- Thread support for incident updates
Discord Integration
Bring incident response into your Discord server.
Create Discord Webhook
In Discord, go to Server Settings → Integrations → Webhooks → New Webhook.
Copy Webhook URL
Copy the Discord webhook URL.
Add to Monoduty
In Monoduty, go to Settings → Integrations → Discord and paste the URL.
Telegram Integration
Receive alerts directly in Telegram chats and groups.
Start Bot Conversation
Message @MonodutyBot on Telegram.
Link Your Account
Use the /connect command and follow the instructions to link your Monoduty account.
Configure Notifications
Use /settings to configure which alerts you want to receive.
AWS CloudWatch
Connect AWS CloudWatch alarms to Monoduty via SNS.
Create SNS Topic
In AWS Console, create a new SNS topic for Monoduty alerts.
Add HTTPS Subscription
Add an HTTPS subscription with your Monoduty webhook URL.
Confirm Subscription
Monoduty will automatically confirm the SNS subscription.
Configure CloudWatch Alarm
Set your CloudWatch alarm to publish to the SNS topic.
# Create SNS topic aws sns create-topic --name monoduty-alerts # Subscribe Monoduty webhook aws sns subscribe \ --topic-arn arn:aws:sns:us-east-1:123456789:monoduty-alerts \ --protocol https \ --notification-endpoint https://api.monoduty.com/webhook/YOUR_WEBHOOK_ID
Datadog Integration
Forward Datadog monitors and alerts to Monoduty.
Go to Datadog Integrations
In Datadog, navigate to Integrations → Webhooks.
Add New Webhook
Click "New Webhook" and configure:
Name: Monoduty
URL: https://api.monoduty.com/webhook/YOUR_WEBHOOK_ID
Payload:
{
"title": "$EVENT_TITLE",
"message": "$EVENT_MSG",
"severity": "$ALERT_TYPE",
"source": "datadog",
"tags": {
"host": "$HOSTNAME",
"alert_id": "$ALERT_ID"
},
"url": "$LINK"
}
API Reference
The Monoduty REST API allows you to programmatically manage webhooks, send alerts, and access your data.
Base URL
Response Format
All responses are returned in JSON format:
{
"success": true,
"data": { ... },
"message": "Operation successful"
}
Authentication
All API requests require authentication via API key:
curl https://api.monoduty.com/v1/webhooks \ -H "Authorization: Bearer YOUR_API_KEY"
Generate API keys in Settings → API Keys.
Webhooks API
List Webhooks
Create Webhook
curl -X POST https://api.monoduty.com/v1/webhooks \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "Production Alerts",
"channels": ["sms", "email"],
"description": "Critical production alerts"
}'
Get Webhook
Update Webhook
Delete Webhook
Alerts API
Send Alert (via Webhook)
List Alerts
Query parameters:
| Parameter | Type | Description |
|---|---|---|
status |
string | Filter by status (active, acknowledged, resolved) |
severity |
string | Filter by severity level |
limit |
integer | Number of results (default: 50, max: 100) |
offset |
integer | Pagination offset |
Get Alert Details
Acknowledge Alert
Resolve Alert
Users API
Get Current User
Update User Settings
List Team Members
Need Help?
Can't find what you're looking for? We're here to help!