API Reference
Authentication
HTTP Header
Authorization: Bearer mm_live_YOUR_KEY Creating an API key
Permissions
| Permission | Description |
|---|---|
read_only | Can read monitors, incidents, and other resources. Cannot create, update, or delete. |
full | Full read and write access to all API resources within your organization. |
Rate limiting
Base URL
https://app.metalmonitoring.com/api/v1 Monitors
| Method | Endpoint | Description |
|---|---|---|
| GET | /monitors | List all monitors |
| POST | /monitors | Create a monitor |
| GET | /monitors/{id} | Get monitor details |
| PATCH | /monitors/{id} | Update a monitor |
| DELETE | /monitors/{id} | Delete (soft) a monitor |
| POST | /monitors/{id}/pause | Pause monitoring |
| POST | /monitors/{id}/resume | Resume monitoring |
| GET | /monitors/{id}/checks | Check result history |
| GET | /monitors/{id}/uptime | Uptime statistics |
List monitors
cURL
curl -H "Authorization: Bearer mm_live_YOUR_KEY" \
https://app.metalmonitoring.com/api/v1/monitors Create a monitor
cURL
curl -X POST -H "Authorization: Bearer mm_live_YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{"name": "My Website", "url": "https://example.com", "monitor_type": "http", "check_interval_seconds": 60}' \
https://app.metalmonitoring.com/api/v1/monitors Monitor types
| Type | Description |
|---|---|
http | HTTP/HTTPS endpoint monitoring with status code and response time checks |
ping | ICMP ping to verify host reachability and measure latency |
tcp | TCP port connectivity check for any service |
dns | DNS record resolution and validation |
Incidents
| Method | Endpoint | Description |
|---|---|---|
| GET | /incidents | List incidents |
| GET | /incidents/{id} | Get incident detail |
| POST | /incidents/{id}/acknowledge | Acknowledge an incident |
| POST | /incidents/{id}/resolve | Resolve an incident |
| POST | /incidents/{id}/updates | Add an incident update |
List incidents
cURL
curl -H "Authorization: Bearer mm_live_YOUR_KEY" \
https://app.metalmonitoring.com/api/v1/incidents Acknowledge an incident
cURL
curl -X POST -H "Authorization: Bearer mm_live_YOUR_KEY" \
https://app.metalmonitoring.com/api/v1/incidents/{id}/acknowledge Notifications
| Method | Endpoint | Description |
|---|---|---|
| GET | /notifications/channels | List notification channels |
| POST | /notifications/channels | Create a notification channel |
| GET | /notifications/rules | List notification rules |
| POST | /notifications/rules | Create a notification rule |
Channel types
Status Pages
| Method | Endpoint | Description |
|---|---|---|
| GET | /status-pages | List status pages |
| POST | /status-pages | Create a status page |
| GET | /status-pages/{id} | Get status page details |
| PATCH | /status-pages/{id} | Update a status page |
Data Exports
| Method | Endpoint | Description |
|---|---|---|
| POST | /exports | Request a data export |
| GET | /exports | List exports |
| GET | /exports/{id} | Get export details (includes download URL) |
Error Handling
| Status | Meaning |
|---|---|
401 | Invalid or missing API key |
403 | Insufficient permissions (e.g., read_only key attempting a write operation) |
404 | Resource not found |
422 | Validation error — check the detail field for specifics |
429 | Rate limit exceeded — wait and retry after the Retry-After interval |
Error response format
JSON
{
"detail": "Error message here"
}