{
    "variable": [
        {
            "id": "baseUrl",
            "key": "baseUrl",
            "type": "string",
            "name": "string",
            "value": "https:\/\/miterl.com"
        }
    ],
    "info": {
        "name": "Miterl API Documentation",
        "_postman_id": "a4ed68fd-156a-47bf-89ab-8c3f52f95834",
        "description": "REST API for the Miterl uptime monitoring platform.",
        "schema": "https:\/\/schema.getpostman.com\/json\/collection\/v2.1.0\/collection.json"
    },
    "item": [
        {
            "name": "Monitors",
            "description": "\nCreate and manage uptime monitors. All endpoints are scoped to the\nauthenticated company.",
            "item": [
                {
                    "name": "List monitors",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/v1\/monitors",
                            "query": [
                                {
                                    "key": "status",
                                    "value": "up",
                                    "description": "Filter by status: up, down, paused, pending.",
                                    "disabled": false
                                },
                                {
                                    "key": "type",
                                    "value": "http",
                                    "description": "Filter by monitor type (e.g. http, keyword, ssl).",
                                    "disabled": false
                                },
                                {
                                    "key": "location",
                                    "value": "default",
                                    "description": "Filter by probe location key.",
                                    "disabled": false
                                },
                                {
                                    "key": "workspace_id",
                                    "value": "3",
                                    "description": "Filter by workspace.",
                                    "disabled": false
                                },
                                {
                                    "key": "search",
                                    "value": "example.com",
                                    "description": "Partial match against name or URL.",
                                    "disabled": false
                                },
                                {
                                    "key": "per_page",
                                    "value": "25",
                                    "description": "Results per page (1-100). Defaults to 25.",
                                    "disabled": false
                                },
                                {
                                    "key": "page",
                                    "value": "1",
                                    "description": "Page number.",
                                    "disabled": false
                                }
                            ],
                            "raw": "{{baseUrl}}\/api\/v1\/monitors?status=up&type=http&location=default&workspace_id=3&search=example.com&per_page=25&page=1"
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Returns a paginated list of the company's monitors, newest first."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\"data\":[{\"id\":1,\"name\":\"Example Site\",\"type\":\"http\",\"url\":\"https:\\\/\\\/example.com\",\"status\":\"up\",\"interval_seconds\":300,\"timeout_seconds\":30,\"failure_threshold\":2,\"consecutive_failures\":0,\"is_active\":true,\"last_checked_at\":\"2026-05-21T12:00:00+00:00\",\"location\":\"default\",\"workspace_id\":null,\"created_at\":\"2026-05-01T09:00:00+00:00\",\"uptime_30d\":99.95}],\"links\":{\"first\":\"https:\\\/\\\/miterl.com\\\/api\\\/v1\\\/monitors?page=1\",\"last\":\"https:\\\/\\\/miterl.com\\\/api\\\/v1\\\/monitors?page=1\",\"prev\":null,\"next\":null},\"meta\":{\"current_page\":1,\"from\":1,\"last_page\":1,\"path\":\"https:\\\/\\\/miterl.com\\\/api\\\/v1\\\/monitors\",\"per_page\":25,\"to\":1,\"total\":1}}",
                            "name": "Success"
                        }
                    ]
                },
                {
                    "name": "Create a monitor",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/v1\/monitors",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/v1\/monitors"
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"name\":\"Example Site\",\"type\":\"http\",\"url\":\"https:\\\/\\\/example.com\",\"interval_seconds\":300,\"timeout_seconds\":30,\"failure_threshold\":2,\"keyword\":\"Welcome\",\"keyword_exists\":true,\"ssl_expiry_alert_days\":14,\"whois_expiry_alert_days\":30,\"location\":\"default\",\"workspace_id\":3,\"alert_contact_ids\":[1,2]}"
                        },
                        "description": ""
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 201,
                            "body": "{\"data\":{\"id\":1,\"name\":\"Example Site\",\"type\":\"http\",\"url\":\"https:\\\/\\\/example.com\",\"status\":\"pending\",\"interval_seconds\":300,\"timeout_seconds\":30,\"failure_threshold\":2,\"consecutive_failures\":0,\"is_active\":true,\"last_checked_at\":null,\"location\":\"default\",\"workspace_id\":null,\"created_at\":\"2026-05-21T12:00:00+00:00\",\"uptime_30d\":100}}",
                            "name": "Created"
                        },
                        {
                            "header": [],
                            "code": 422,
                            "body": "{\"message\":\"The name field is required.\",\"code\":\"validation_failed\",\"errors\":{\"name\":[\"The name field is required.\"]}}",
                            "name": "Validation error"
                        }
                    ]
                },
                {
                    "name": "Get a monitor",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/v1\/monitors\/:id",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/v1\/monitors\/:id",
                            "variable": [
                                {
                                    "id": "id",
                                    "key": "id",
                                    "value": 1,
                                    "description": "The monitor ID."
                                }
                            ]
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": ""
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\"data\":{\"id\":1,\"name\":\"Example Site\",\"type\":\"http\",\"url\":\"https:\\\/\\\/example.com\",\"status\":\"up\",\"interval_seconds\":300,\"timeout_seconds\":30,\"failure_threshold\":2,\"consecutive_failures\":0,\"is_active\":true,\"last_checked_at\":\"2026-05-21T12:00:00+00:00\",\"location\":\"default\",\"workspace_id\":null,\"created_at\":\"2026-05-01T09:00:00+00:00\",\"uptime_30d\":99.95}}",
                            "name": "Success"
                        },
                        {
                            "header": [],
                            "code": 404,
                            "body": "{\"message\":\"Resource not found.\",\"code\":\"not_found\"}",
                            "name": "Not found"
                        }
                    ]
                },
                {
                    "name": "Preview a monitor's alert routing",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/v1\/monitors\/:id\/alert-status",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/v1\/monitors\/:id\/alert-status",
                            "variable": [
                                {
                                    "id": "id",
                                    "key": "id",
                                    "value": 1,
                                    "description": "The monitor ID."
                                }
                            ]
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Answers \"if this monitor went down right now, would anyone be paged \u2014\nand if not, why?\" without waiting for a real outage. Returns the\nresolved recipients (the monitor's own active contacts merged with its\nworkspace's) and the two silent-suppression gates the down-listener\napplies: an active maintenance window and the company's quiet hours.\n`would_notify_now` is true only when there is at least one recipient and\nneither gate is active. A monitor that is down while this is false is\nthe classic \"silent\" case (no contacts wired, or suppressed)."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\"data\":{\"monitor_id\":1,\"would_notify_now\":true,\"under_maintenance\":false,\"quiet_hours\":false,\"contacts\":[{\"id\":1,\"type\":\"slack\",\"name\":\"Ops Slack\",\"is_active\":true}]}}",
                            "name": "Would notify"
                        },
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\"data\":{\"monitor_id\":1,\"would_notify_now\":false,\"under_maintenance\":false,\"quiet_hours\":true,\"contacts\":[{\"id\":1,\"type\":\"slack\",\"name\":\"Ops Slack\",\"is_active\":true}]}}",
                            "name": "Suppressed by quiet hours"
                        },
                        {
                            "header": [],
                            "code": 404,
                            "body": "{\"message\":\"Resource not found.\",\"code\":\"not_found\"}",
                            "name": "Not found"
                        }
                    ]
                },
                {
                    "name": "Update a monitor",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/v1\/monitors\/:id",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/v1\/monitors\/:id",
                            "variable": [
                                {
                                    "id": "id",
                                    "key": "id",
                                    "value": 1,
                                    "description": "The monitor ID."
                                }
                            ]
                        },
                        "method": "PUT",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"name\":\"Example Site\",\"url\":\"https:\\\/\\\/example.com\",\"interval_seconds\":300,\"timeout_seconds\":30,\"failure_threshold\":2,\"keyword\":\"Welcome\",\"keyword_exists\":true,\"ssl_expiry_alert_days\":14,\"whois_expiry_alert_days\":30,\"location\":\"default\",\"workspace_id\":3,\"alert_contact_ids\":[1,2]}"
                        },
                        "description": "Accepts the same fields as creation (all optional); the monitor `type` cannot be changed."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\"data\":{\"id\":1,\"name\":\"Example Site\",\"type\":\"http\",\"url\":\"https:\\\/\\\/example.com\",\"status\":\"up\",\"interval_seconds\":300,\"timeout_seconds\":30,\"failure_threshold\":2,\"consecutive_failures\":0,\"is_active\":true,\"last_checked_at\":\"2026-05-21T12:00:00+00:00\",\"location\":\"default\",\"workspace_id\":null,\"created_at\":\"2026-05-01T09:00:00+00:00\",\"uptime_30d\":99.95}}",
                            "name": "Updated"
                        },
                        {
                            "header": [],
                            "code": 404,
                            "body": "{\"message\":\"Resource not found.\",\"code\":\"not_found\"}",
                            "name": "Not found"
                        }
                    ]
                },
                {
                    "name": "Delete a monitor",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/v1\/monitors\/:id",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/v1\/monitors\/:id",
                            "variable": [
                                {
                                    "id": "id",
                                    "key": "id",
                                    "value": 1,
                                    "description": "The monitor ID."
                                }
                            ]
                        },
                        "method": "DELETE",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": ""
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 204,
                            "body": "",
                            "name": "Deleted"
                        },
                        {
                            "header": [],
                            "code": 404,
                            "body": "{\"message\":\"Resource not found.\",\"code\":\"not_found\"}",
                            "name": "Not found"
                        }
                    ]
                },
                {
                    "name": "Pause a monitor",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/v1\/monitors\/:id\/pause",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/v1\/monitors\/:id\/pause",
                            "variable": [
                                {
                                    "id": "id",
                                    "key": "id",
                                    "value": 1,
                                    "description": "The monitor ID."
                                }
                            ]
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Stops checks until the monitor is resumed."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\"data\":{\"id\":1,\"name\":\"Example Site\",\"type\":\"http\",\"url\":\"https:\\\/\\\/example.com\",\"status\":\"paused\",\"interval_seconds\":300,\"timeout_seconds\":30,\"failure_threshold\":2,\"consecutive_failures\":0,\"is_active\":true,\"last_checked_at\":\"2026-05-21T12:00:00+00:00\",\"location\":\"default\",\"workspace_id\":null,\"created_at\":\"2026-05-01T09:00:00+00:00\",\"uptime_30d\":99.95}}",
                            "name": "Paused"
                        },
                        {
                            "header": [],
                            "code": 404,
                            "body": "{\"message\":\"Resource not found.\",\"code\":\"not_found\"}",
                            "name": "Not found"
                        }
                    ]
                },
                {
                    "name": "Resume a monitor",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/v1\/monitors\/:id\/resume",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/v1\/monitors\/:id\/resume",
                            "variable": [
                                {
                                    "id": "id",
                                    "key": "id",
                                    "value": 1,
                                    "description": "The monitor ID."
                                }
                            ]
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Re-activates a paused monitor and schedules an immediate check."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\"data\":{\"id\":1,\"name\":\"Example Site\",\"type\":\"http\",\"url\":\"https:\\\/\\\/example.com\",\"status\":\"up\",\"interval_seconds\":300,\"timeout_seconds\":30,\"failure_threshold\":2,\"consecutive_failures\":0,\"is_active\":true,\"last_checked_at\":\"2026-05-21T12:00:00+00:00\",\"location\":\"default\",\"workspace_id\":null,\"created_at\":\"2026-05-01T09:00:00+00:00\",\"uptime_30d\":99.95}}",
                            "name": "Resumed"
                        },
                        {
                            "header": [],
                            "code": 404,
                            "body": "{\"message\":\"Resource not found.\",\"code\":\"not_found\"}",
                            "name": "Not found"
                        }
                    ]
                }
            ]
        },
        {
            "name": "Workspaces",
            "description": "\nWorkspaces group monitors into management units. Scoped to the\nauthenticated company.",
            "item": [
                {
                    "name": "List workspaces",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/v1\/workspaces",
                            "query": [
                                {
                                    "key": "per_page",
                                    "value": "25",
                                    "description": "Results per page (1-100). Defaults to 25.",
                                    "disabled": false
                                },
                                {
                                    "key": "page",
                                    "value": "1",
                                    "description": "Page number.",
                                    "disabled": false
                                }
                            ],
                            "raw": "{{baseUrl}}\/api\/v1\/workspaces?per_page=25&page=1"
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Returns a paginated list of the company's workspaces, ordered by name."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\"data\":[{\"id\":1,\"name\":\"Production\",\"description\":\"Live customer sites\",\"created_at\":\"2026-05-01T09:00:00+00:00\"}],\"links\":{\"first\":\"https:\\\/\\\/miterl.com\\\/api\\\/v1\\\/workspaces?page=1\",\"last\":\"https:\\\/\\\/miterl.com\\\/api\\\/v1\\\/workspaces?page=1\",\"prev\":null,\"next\":null},\"meta\":{\"current_page\":1,\"from\":1,\"last_page\":1,\"path\":\"https:\\\/\\\/miterl.com\\\/api\\\/v1\\\/workspaces\",\"per_page\":25,\"to\":1,\"total\":1}}",
                            "name": "Success"
                        }
                    ]
                },
                {
                    "name": "Create a workspace",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/v1\/workspaces",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/v1\/workspaces"
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"name\":\"Production\",\"description\":\"Live customer sites\"}"
                        },
                        "description": ""
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 201,
                            "body": "{\"data\":{\"id\":1,\"name\":\"Production\",\"description\":\"Live customer sites\",\"created_at\":\"2026-05-21T12:00:00+00:00\"}}",
                            "name": "Created"
                        },
                        {
                            "header": [],
                            "code": 422,
                            "body": "{\"message\":\"Workspace limit reached (5). Upgrade the plan to add more.\",\"code\":\"workspace_limit_reached\"}",
                            "name": "Limit reached"
                        },
                        {
                            "header": [],
                            "code": 422,
                            "body": "{\"message\":\"The name field is required.\",\"code\":\"validation_failed\",\"errors\":{\"name\":[\"The name field is required.\"]}}",
                            "name": "Validation error"
                        }
                    ]
                }
            ]
        },
        {
            "name": "Incidents",
            "description": "\nRead-only incident history, scoped to the authenticated company's monitors.\nInternal drills are never exposed.",
            "item": [
                {
                    "name": "List incidents",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/v1\/incidents",
                            "query": [
                                {
                                    "key": "monitor_id",
                                    "value": "1",
                                    "description": "Filter by monitor.",
                                    "disabled": false
                                },
                                {
                                    "key": "severity",
                                    "value": "critical",
                                    "description": "Filter by severity.",
                                    "disabled": false
                                },
                                {
                                    "key": "status",
                                    "value": "resolved",
                                    "description": "Filter by lifecycle: `resolved` or `ongoing`.",
                                    "disabled": false
                                },
                                {
                                    "key": "per_page",
                                    "value": "25",
                                    "description": "Results per page (1-100). Defaults to 25.",
                                    "disabled": false
                                },
                                {
                                    "key": "page",
                                    "value": "1",
                                    "description": "Page number.",
                                    "disabled": false
                                }
                            ],
                            "raw": "{{baseUrl}}\/api\/v1\/incidents?monitor_id=1&severity=critical&status=resolved&per_page=25&page=1"
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Returns a paginated incident history across the company's monitors, newest first."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\"data\":[{\"id\":1,\"monitor_id\":1,\"severity\":\"critical\",\"cause\":\"Connection timeout\",\"started_at\":\"2026-05-20T03:00:00+00:00\",\"resolved_at\":\"2026-05-20T03:15:00+00:00\",\"acknowledged_at\":\"2026-05-20T03:05:00+00:00\",\"duration_seconds\":900,\"is_resolved\":true,\"is_acknowledged\":true,\"has_postmortem\":false,\"created_at\":\"2026-05-20T03:00:00+00:00\",\"monitor\":{\"id\":1,\"name\":\"Example Site\",\"url\":\"https:\\\/\\\/example.com\"}}],\"links\":{\"first\":\"https:\\\/\\\/miterl.com\\\/api\\\/v1\\\/incidents?page=1\",\"last\":\"https:\\\/\\\/miterl.com\\\/api\\\/v1\\\/incidents?page=1\",\"prev\":null,\"next\":null},\"meta\":{\"current_page\":1,\"from\":1,\"last_page\":1,\"path\":\"https:\\\/\\\/miterl.com\\\/api\\\/v1\\\/incidents\",\"per_page\":25,\"to\":1,\"total\":1}}",
                            "name": "Success"
                        }
                    ]
                },
                {
                    "name": "Get an incident",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/v1\/incidents\/:id",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/v1\/incidents\/:id",
                            "variable": [
                                {
                                    "id": "id",
                                    "key": "id",
                                    "value": 1,
                                    "description": "The incident ID."
                                }
                            ]
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Includes the related monitor and the incident's public updates."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\"data\":{\"id\":1,\"monitor_id\":1,\"severity\":\"critical\",\"cause\":\"Connection timeout\",\"started_at\":\"2026-05-20T03:00:00+00:00\",\"resolved_at\":\"2026-05-20T03:15:00+00:00\",\"acknowledged_at\":\"2026-05-20T03:05:00+00:00\",\"duration_seconds\":900,\"is_resolved\":true,\"is_acknowledged\":true,\"has_postmortem\":false,\"created_at\":\"2026-05-20T03:00:00+00:00\",\"monitor\":{\"id\":1,\"name\":\"Example Site\",\"url\":\"https:\\\/\\\/example.com\"},\"updates\":[]}}",
                            "name": "Success"
                        },
                        {
                            "header": [],
                            "code": 404,
                            "body": "{\"message\":\"Resource not found.\",\"code\":\"not_found\"}",
                            "name": "Not found"
                        }
                    ]
                }
            ]
        },
        {
            "name": "Alerts",
            "description": "\nRead-only history of alert deliveries (email, Slack, webhook, ...) for the\nauthenticated company.",
            "item": [
                {
                    "name": "List alert deliveries",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/v1\/alerts",
                            "query": [
                                {
                                    "key": "status",
                                    "value": "sent",
                                    "description": "Filter by delivery status (e.g. sent, failed).",
                                    "disabled": false
                                },
                                {
                                    "key": "channel",
                                    "value": "email",
                                    "description": "Filter by channel (e.g. email, slack, webhook).",
                                    "disabled": false
                                },
                                {
                                    "key": "event",
                                    "value": "monitor.down",
                                    "description": "Filter by event (e.g. monitor.down, monitor.up).",
                                    "disabled": false
                                },
                                {
                                    "key": "monitor_id",
                                    "value": "1",
                                    "description": "Filter by monitor.",
                                    "disabled": false
                                },
                                {
                                    "key": "per_page",
                                    "value": "25",
                                    "description": "Results per page (1-100). Defaults to 25.",
                                    "disabled": false
                                },
                                {
                                    "key": "page",
                                    "value": "1",
                                    "description": "Page number.",
                                    "disabled": false
                                }
                            ],
                            "raw": "{{baseUrl}}\/api\/v1\/alerts?status=sent&channel=email&event=monitor.down&monitor_id=1&per_page=25&page=1"
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Returns a paginated history of alert deliveries, newest first."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\"data\":[{\"id\":1,\"monitor_id\":1,\"incident_id\":1,\"channel\":\"email\",\"event\":\"monitor.down\",\"status\":\"sent\",\"recipient\":\"ops@example.com\",\"error_message\":null,\"sent_at\":\"2026-05-20T03:01:00+00:00\",\"created_at\":\"2026-05-20T03:01:00+00:00\"}],\"links\":{\"first\":\"https:\\\/\\\/miterl.com\\\/api\\\/v1\\\/alerts?page=1\",\"last\":\"https:\\\/\\\/miterl.com\\\/api\\\/v1\\\/alerts?page=1\",\"prev\":null,\"next\":null},\"meta\":{\"current_page\":1,\"from\":1,\"last_page\":1,\"path\":\"https:\\\/\\\/miterl.com\\\/api\\\/v1\\\/alerts\",\"per_page\":25,\"to\":1,\"total\":1}}",
                            "name": "Success"
                        }
                    ]
                }
            ]
        },
        {
            "name": "Pre-launch Audits",
            "description": "\nBatch pre-deployment checks (HTTP status, response time, SSL, optional keyword)\nfor CI\/CD gating. Scoped to the authenticated company.",
            "item": [
                {
                    "name": "Start a pre-launch audit",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/v1\/pre-launch",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/v1\/pre-launch"
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"name\":\"Release v2.0 smoke test\",\"urls\":[\"https:\\\/\\\/example.com\"],\"required_keyword\":\"Welcome\"}"
                        },
                        "description": "Queues a batch check of one or more URLs. Returns immediately with status\n`pending`; poll the show endpoint for results."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 202,
                            "body": "{\"data\":{\"id\":1,\"name\":\"Release v2.0 smoke test\",\"status\":\"pending\",\"started_at\":null,\"completed_at\":null,\"passed_count\":0,\"failed_count\":0,\"results\":[]}}",
                            "name": "Accepted"
                        },
                        {
                            "header": [],
                            "code": 422,
                            "body": "{\"message\":\"The urls field is required.\",\"code\":\"validation_failed\",\"errors\":{\"urls\":[\"The urls field is required.\"]}}",
                            "name": "Validation error"
                        }
                    ]
                },
                {
                    "name": "Get a pre-launch audit",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/v1\/pre-launch\/:id",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/v1\/pre-launch\/:id",
                            "variable": [
                                {
                                    "id": "id",
                                    "key": "id",
                                    "value": 1,
                                    "description": "The audit ID."
                                }
                            ]
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "The HTTP status mirrors the audit outcome so CI\/CD can branch on it:\n`200` all passed, `422` some failed, `202` still running, `500` audit errored."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\"data\":{\"id\":1,\"name\":\"Release v2.0 smoke test\",\"status\":\"completed\",\"started_at\":\"2026-05-21T12:00:00+00:00\",\"completed_at\":\"2026-05-21T12:00:05+00:00\",\"passed_count\":1,\"failed_count\":0,\"results\":[{\"url\":\"https:\\\/\\\/example.com\",\"passed\":true,\"status_code\":200,\"response_time_ms\":124,\"ssl_valid\":true,\"ssl_days_until_expiry\":78,\"ssl_expires_at\":\"2026-08-07T12:00:00+00:00\",\"ssl_issuer\":\"R3\",\"keyword_present\":true,\"errors\":[]}]}}",
                            "name": "All passed"
                        },
                        {
                            "header": [],
                            "code": 202,
                            "body": "{\"data\":{\"id\":1,\"name\":\"Release v2.0 smoke test\",\"status\":\"running\",\"started_at\":\"2026-05-21T12:00:00+00:00\",\"completed_at\":null,\"passed_count\":0,\"failed_count\":0,\"results\":[]}}",
                            "name": "Still running"
                        },
                        {
                            "header": [],
                            "code": 404,
                            "body": "{\"message\":\"Resource not found.\",\"code\":\"not_found\"}",
                            "name": "Not found"
                        },
                        {
                            "header": [],
                            "code": 422,
                            "body": "{\"data\":{\"id\":1,\"name\":\"Release v2.0 smoke test\",\"status\":\"completed\",\"started_at\":\"2026-05-21T12:00:00+00:00\",\"completed_at\":\"2026-05-21T12:00:05+00:00\",\"passed_count\":0,\"failed_count\":1,\"results\":[{\"url\":\"https:\\\/\\\/example.com\",\"passed\":false,\"status_code\":500,\"response_time_ms\":210,\"ssl_valid\":true,\"ssl_days_until_expiry\":78,\"ssl_expires_at\":\"2026-08-07T12:00:00+00:00\",\"ssl_issuer\":\"R3\",\"keyword_present\":null,\"errors\":[\"http_status_not_2xx\"]}]}}",
                            "name": "Some failed"
                        }
                    ]
                }
            ]
        },
        {
            "name": "Status Pages",
            "description": "\nPublic, read-only access to status pages. No authentication required.",
            "item": [
                {
                    "name": "Get a public status page",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/v1\/status-pages\/:slug",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/v1\/status-pages\/:slug",
                            "variable": [
                                {
                                    "id": "slug",
                                    "key": "slug",
                                    "value": "acme",
                                    "description": "The status page slug."
                                }
                            ]
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Public, unauthenticated JSON view of a status page. Only fully public\npages are exposed \u2014 password-protected (\"restricted\") and disabled\npages return 404 so their existence stays hidden.",
                        "auth": {
                            "type": "noauth"
                        }
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\"data\":{\"name\":\"Acme Status\",\"slug\":\"acme\",\"overall_status\":\"operational\",\"monitors\":[{\"id\":1,\"name\":\"Website\",\"status\":\"up\",\"uptime_90d\":99.9,\"last_checked_at\":\"2026-05-21T12:00:00+00:00\",\"uptime_daily\":[{\"date\":\"2026-05-21\",\"uptime\":100}],\"group_name\":null,\"last_dom_issue\":null}],\"incidents\":[],\"upcoming_maintenance\":[]}}",
                            "name": "Success"
                        },
                        {
                            "header": [],
                            "code": 404,
                            "body": "{\"message\":\"Resource not found.\",\"code\":\"not_found\"}",
                            "name": "Not found or not public"
                        }
                    ]
                }
            ]
        },
        {
            "name": "Webhooks",
            "description": "\nCI\/CD webhooks authenticated by a per-monitor path token (no API key).",
            "item": [
                {
                    "name": "Trigger release mode",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/v1\/webhooks\/release-mode\/:token",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/v1\/webhooks\/release-mode\/:token",
                            "variable": [
                                {
                                    "id": "token",
                                    "key": "token",
                                    "value": "a1b2c3d4e5f6",
                                    "description": "The monitor's release-mode webhook token."
                                }
                            ]
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"duration_hours\":24,\"interval_seconds\":15}"
                        },
                        "description": "Starts intensive release monitoring for the monitor identified by the path\ntoken. Authenticated by the webhook token only.",
                        "auth": {
                            "type": "noauth"
                        }
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\"status\":\"started\",\"monitor_id\":1,\"monitor_name\":\"Example Site\",\"release_mode_run_id\":10,\"duration_hours\":24,\"interval_seconds\":15,\"started_at\":\"2026-05-21T12:00:00+00:00\",\"until\":\"2026-05-22T12:00:00+00:00\"}",
                            "name": "Started"
                        },
                        {
                            "header": [],
                            "code": 403,
                            "body": "{\"error\":\"Release mode is not available on this plan\",\"monitor_id\":1}",
                            "name": "Not on plan"
                        },
                        {
                            "header": [],
                            "code": 404,
                            "body": "{\"error\":\"Invalid webhook token\"}",
                            "name": "Invalid token"
                        },
                        {
                            "header": [],
                            "code": 409,
                            "body": "{\"error\":\"Monitor is under an active maintenance window\",\"monitor_id\":1}",
                            "name": "Under maintenance"
                        },
                        {
                            "header": [],
                            "code": 422,
                            "body": "{\"error\":\"Release mode is already active for this monitor\",\"monitor_id\":1,\"until\":\"2026-05-22T12:00:00+00:00\"}",
                            "name": "Already active"
                        }
                    ]
                },
                {
                    "name": "Start a maintenance window",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/v1\/webhooks\/maintenance\/:token\/start",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/v1\/webhooks\/maintenance\/:token\/start",
                            "variable": [
                                {
                                    "id": "token",
                                    "key": "token",
                                    "value": "a1b2c3d4e5f6",
                                    "description": "The monitor's maintenance webhook token."
                                }
                            ]
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"duration_hours\":4,\"name\":\"Deployment maintenance\"}"
                        },
                        "description": "Opens a maintenance window for the monitor identified by the path token,\nsuppressing alerts during a deployment. Authenticated by the webhook token only.",
                        "auth": {
                            "type": "noauth"
                        }
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\"status\":\"started\",\"monitor_id\":1,\"monitor_name\":\"Example Site\",\"window_id\":5,\"started_at\":\"2026-05-21T12:00:00+00:00\",\"until\":\"2026-05-21T16:00:00+00:00\"}",
                            "name": "Started"
                        },
                        {
                            "header": [],
                            "code": 404,
                            "body": "{\"error\":\"Invalid webhook token\"}",
                            "name": "Invalid token"
                        },
                        {
                            "header": [],
                            "code": 422,
                            "body": "{\"error\":\"A webhook-initiated maintenance window is already active for this monitor\",\"monitor_id\":1}",
                            "name": "Already active"
                        }
                    ]
                },
                {
                    "name": "End a maintenance window",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/v1\/webhooks\/maintenance\/:token\/end",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/v1\/webhooks\/maintenance\/:token\/end",
                            "variable": [
                                {
                                    "id": "token",
                                    "key": "token",
                                    "value": "a1b2c3d4e5f6",
                                    "description": "The monitor's maintenance webhook token."
                                }
                            ]
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Closes the active webhook-initiated maintenance window for the monitor.",
                        "auth": {
                            "type": "noauth"
                        }
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\"status\":\"ended\",\"monitor_id\":1,\"window_id\":5}",
                            "name": "Ended"
                        },
                        {
                            "header": [],
                            "code": 404,
                            "body": "{\"error\":\"No active webhook-initiated maintenance window found\",\"monitor_id\":1}",
                            "name": "No active window"
                        }
                    ]
                }
            ]
        },
        {
            "name": "Alert Contacts",
            "description": "\nRead-only listing of the company's alert contacts (Slack, email, etc.).\nUse an id with a monitor's `alert_contact_ids` to wire who gets notified\non down\/recovery. Contacts themselves are created in the dashboard.",
            "item": [
                {
                    "name": "List alert contacts",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/v1\/alert-contacts",
                            "query": [
                                {
                                    "key": "per_page",
                                    "value": "25",
                                    "description": "Results per page (1-100). Defaults to 25.",
                                    "disabled": false
                                },
                                {
                                    "key": "page",
                                    "value": "1",
                                    "description": "Page number.",
                                    "disabled": false
                                }
                            ],
                            "raw": "{{baseUrl}}\/api\/v1\/alert-contacts?per_page=25&page=1"
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Returns the company's alert contacts, ordered by name."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\"data\":[{\"id\":1,\"type\":\"slack\",\"name\":\"Ops Slack\",\"is_active\":true}],\"links\":{\"first\":null,\"last\":null,\"prev\":null,\"next\":null},\"meta\":{\"current_page\":1,\"from\":1,\"last_page\":1,\"path\":\"https:\\\/\\\/miterl.com\\\/api\\\/v1\\\/alert-contacts\",\"per_page\":25,\"to\":1,\"total\":1}}",
                            "name": "Success"
                        }
                    ]
                }
            ]
        },
        {
            "name": "WordPress Connect",
            "description": "\nEndpoints called by the Miterl Connect WordPress plugin, authenticated by a\nper-monitor connect key in the path (no API key).",
            "item": [
                {
                    "name": "Ping (connection test)",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/v1\/wp\/:key\/ping",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/v1\/wp\/:key\/ping",
                            "variable": [
                                {
                                    "id": "key",
                                    "key": "key",
                                    "value": "mc_abcdefghijklmnopqrstuvwxyz0123456789ABCD",
                                    "description": "The connect key issued on the monitor page."
                                }
                            ]
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Returns the identity of the monitor linked to the connect key. Used by the\nplugin's \"Test connection\" button.",
                        "auth": {
                            "type": "noauth"
                        }
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\"ok\":true,\"monitor_id\":1,\"monitor_name\":\"client-a.example.com\",\"site_url\":\"https:\/\/client-a.example.com\/\"}",
                            "name": "Connected"
                        },
                        {
                            "header": [],
                            "code": 404,
                            "body": "{\"error\":\"Invalid connect key\"}",
                            "name": "Invalid key"
                        }
                    ]
                },
                {
                    "name": "wp-cron heartbeat",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/v1\/wp\/:key\/heartbeat",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/v1\/wp\/:key\/heartbeat",
                            "variable": [
                                {
                                    "id": "key",
                                    "key": "key",
                                    "value": "mc_abcdefghijklmnopqrstuvwxyz0123456789ABCD",
                                    "description": "The connect key issued on the monitor page."
                                }
                            ]
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Records a heartbeat on the wp-cron Heartbeat monitor linked to the connection\n(same effect as `GET \/heartbeat\/{token}`). When the connection has no\nHeartbeat monitor, or that monitor is paused, nothing is recorded and\n`heartbeat` is false.",
                        "auth": {
                            "type": "noauth"
                        }
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\"ok\":true,\"heartbeat\":true}",
                            "name": "Recorded"
                        },
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\"ok\":true,\"heartbeat\":false}",
                            "name": "No heartbeat monitor"
                        },
                        {
                            "header": [],
                            "code": 404,
                            "body": "{\"error\":\"Invalid connect key\"}",
                            "name": "Invalid key"
                        }
                    ]
                },
                {
                    "name": "Start a maintenance window (before a WordPress update)",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/v1\/wp\/:key\/maintenance\/start",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/v1\/wp\/:key\/maintenance\/start",
                            "variable": [
                                {
                                    "id": "key",
                                    "key": "key",
                                    "value": "mc_abcdefghijklmnopqrstuvwxyz0123456789ABCD",
                                    "description": "The connect key issued on the monitor page."
                                }
                            ]
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"duration_hours\":1,\"name\":\"Plugin update\"}"
                        },
                        "description": "Opens a webhook-initiated maintenance window on the monitor linked to the connect\nkey (same effect and response as `POST \/api\/v1\/webhooks\/maintenance\/{token}\/start`),\nso the temporary 5xx during a core\/plugin\/theme update is not alerted.",
                        "auth": {
                            "type": "noauth"
                        }
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\"status\":\"started\",\"monitor_id\":1,\"monitor_name\":\"client-a.example.com\",\"window_id\":5,\"started_at\":\"2026-09-13T12:00:00+00:00\",\"until\":\"2026-09-13T13:00:00+00:00\"}",
                            "name": "Started"
                        },
                        {
                            "header": [],
                            "code": 404,
                            "body": "{\"error\":\"Invalid connect key\"}",
                            "name": "Invalid key"
                        },
                        {
                            "header": [],
                            "code": 422,
                            "body": "{\"error\":\"A webhook-initiated maintenance window is already active for this monitor\",\"monitor_id\":1}",
                            "name": "Already active"
                        }
                    ]
                },
                {
                    "name": "End a maintenance window (after a WordPress update)",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/v1\/wp\/:key\/maintenance\/end",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/v1\/wp\/:key\/maintenance\/end",
                            "variable": [
                                {
                                    "id": "key",
                                    "key": "key",
                                    "value": "mc_abcdefghijklmnopqrstuvwxyz0123456789ABCD",
                                    "description": "The connect key issued on the monitor page."
                                }
                            ]
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Closes the active webhook-initiated maintenance window on the linked monitor\n(same effect and response as `POST \/api\/v1\/webhooks\/maintenance\/{token}\/end`).",
                        "auth": {
                            "type": "noauth"
                        }
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\"status\":\"ended\",\"monitor_id\":1,\"window_id\":5}",
                            "name": "Ended"
                        },
                        {
                            "header": [],
                            "code": 404,
                            "body": "{\"error\":\"Invalid connect key\"}",
                            "name": "Invalid key"
                        },
                        {
                            "header": [],
                            "code": 404,
                            "body": "{\"error\":\"No active webhook-initiated maintenance window found\",\"monitor_id\":1}",
                            "name": "No active window"
                        }
                    ]
                },
                {
                    "name": "Send the site inventory (daily)",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/v1\/wp\/:key\/inventory",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/v1\/wp\/:key\/inventory",
                            "variable": [
                                {
                                    "id": "key",
                                    "key": "key",
                                    "value": "mc_abcdefghijklmnopqrstuvwxyz0123456789ABCD",
                                    "description": "The connect key issued on the monitor page."
                                }
                            ]
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"wp_version\":\"6.8.1\",\"php_version\":\"8.3.12\",\"core\":{\"version\":\"6.8.1\",\"new_version\":\"6.8.2\"},\"plugins\":[{\"slug\":\"akismet\",\"name\":\"Akismet\",\"version\":\"5.3\",\"new_version\":\"5.4\",\"active\":true}],\"themes\":[{\"slug\":\"y\",\"name\":\"v\",\"version\":\"d\",\"new_version\":\"l\",\"active\":true}]}"
                        },
                        "description": "Stores the WordPress core \/ plugin \/ theme versions and available updates on the\nconnection, replacing the previous inventory (no history is kept). Miterl shows the\npending updates on the monitor page and, on Standard and above, alerts when they\nare left unapplied.",
                        "auth": {
                            "type": "noauth"
                        }
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\"ok\":true,\"pending_updates\":2}",
                            "name": "Stored"
                        },
                        {
                            "header": [],
                            "code": 404,
                            "body": "{\"error\":\"Invalid connect key\"}",
                            "name": "Invalid key"
                        },
                        {
                            "header": [],
                            "code": 422,
                            "body": "{\"message\":\"The php version field is required. (and 1 more error)\",\"errors\":{\"php_version\":[\"The php version field is required.\"],\"plugins\":[\"The plugins field must be an array.\"]}}",
                            "name": "Malformed"
                        }
                    ]
                }
            ]
        }
    ],
    "auth": {
        "type": "bearer",
        "bearer": [
            {
                "key": "token",
                "type": "string"
            }
        ]
    }
}