{
    "variable": [
        {
            "id": "baseUrl",
            "key": "baseUrl",
            "type": "string",
            "name": "string",
            "value": "https:\/\/statuswerk.eu"
        }
    ],
    "info": {
        "name": "statuswerk API Reference",
        "_postman_id": "db0a60f7-a7cd-4908-b247-a3b3ac68bddf",
        "description": "REST API for status pages: incidents, maintenance, components, subscribers, metrics and more \u2014 for CI\/CD pipelines, monitoring alerts and your own tools.",
        "schema": "https:\/\/schema.getpostman.com\/json\/collection\/v2.1.0\/collection.json"
    },
    "item": [
        {
            "name": "Audit log",
            "description": "\nEvery change made in the workspace, by whom and from where \u2014 read-only, as in the dashboard. Subscribers are never named and secrets are redacted. Pro sees the last 30 days, Business the whole year kept (365 days); other plans get 403.",
            "item": [
                {
                    "name": "List audit entries",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/v1\/audit-log",
                            "query": [
                                {
                                    "key": "action",
                                    "value": "updated",
                                    "description": "Only this action, e.g. created, updated, deleted.",
                                    "disabled": false
                                },
                                {
                                    "key": "actor_type",
                                    "value": "api_token",
                                    "description": "Only changes made by: user, api_token or system.",
                                    "disabled": false
                                },
                                {
                                    "key": "since",
                                    "value": "2026-10-01T00:00:00Z",
                                    "description": "Only entries from this moment on (ISO 8601).",
                                    "disabled": false
                                },
                                {
                                    "key": "until",
                                    "value": "2026-10-31T23:59:59Z",
                                    "description": "Only entries up to this moment (ISO 8601).",
                                    "disabled": false
                                },
                                {
                                    "key": "statuspage_id",
                                    "value": "01a1c639-3aa8-70ef-8655-b6f3d56e786b",
                                    "description": "Only entries about this status page.",
                                    "disabled": false
                                },
                                {
                                    "key": "subject_type",
                                    "value": "Incident",
                                    "description": "Only this kind of object, as `subject.type` names it (e.g. Incident, StatusComponent, ScheduledMaintenance, ApiToken).",
                                    "disabled": false
                                },
                                {
                                    "key": "per_page",
                                    "value": "50",
                                    "description": "Page size, at most 100.",
                                    "disabled": false
                                }
                            ],
                            "raw": "{{baseUrl}}\/api\/v1\/audit-log?action=updated&actor_type=api_token&since=2026-10-01T00%3A00%3A00Z&until=2026-10-31T23%3A59%3A59Z&statuspage_id=01a1c639-3aa8-70ef-8655-b6f3d56e786b&subject_type=Incident&per_page=50"
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Newest first, for the whole workspace (each entry names its `statuspage_id`), within the plan's window \u2014 `since` does not reach past it. A change lists each field as `{from, to}` (entries before 12 November 2026 have `to` only); a secret or personal field is `{redacted: true}`, before and after."
                    },
                    "response": []
                }
            ]
        },
        {
            "name": "Component groups",
            "description": "\nGroups that bundle components on the page. Creating needs a plan with component groups (403 otherwise); existing groups can be read, changed, reordered and deleted on every plan.",
            "item": [
                {
                    "name": "Reorder component groups",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/v1\/component-groups\/reorder",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/v1\/component-groups\/reorder"
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"groups\":[{\"id\":\"6ff8f7f6-1eb3-3525-be4a-3932c805afed\",\"position\":84}]}"
                        },
                        "description": "Send `groups` as a list of `{id, position}`; lower positions come first. Ids of other pages are ignored."
                    },
                    "response": []
                },
                {
                    "name": "List component groups",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/v1\/component-groups",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/v1\/component-groups"
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": ""
                    },
                    "response": []
                },
                {
                    "name": "Create a component group",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/v1\/component-groups",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/v1\/component-groups"
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"name\":\"b\",\"description\":\"Et animi quos velit et fugiat.\",\"position\":42,\"collapsed_by_default\":false,\"visible\":false}"
                        },
                        "description": ""
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 201,
                            "body": "{\n    \"data\": {\n        \"id\": \"01a1544c-7c05-70fc-9b8d-e46b1a39c2a3\",\n        \"name\": \"Payments\",\n        \"description\": null,\n        \"position\": 1,\n        \"collapsed_by_default\": null,\n        \"visible\": null,\n        \"overall_status\": \"operational\",\n        \"components\": [],\n        \"created_at\": \"2026-10-19T08:30:00+00:00\",\n        \"updated_at\": \"2026-10-19T08:30:00+00:00\"\n    }\n}\n",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Get a component group",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/v1\/component-groups\/:id",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/v1\/component-groups\/:id",
                            "variable": [
                                {
                                    "id": "id",
                                    "key": "id",
                                    "value": "01a1f3c2-6a01-7b10-9c20-3d4e5f6a7b80",
                                    "description": "The ID of the component group."
                                }
                            ]
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": ""
                    },
                    "response": []
                },
                {
                    "name": "Update a component group",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/v1\/component-groups\/:id",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/v1\/component-groups\/:id",
                            "variable": [
                                {
                                    "id": "id",
                                    "key": "id",
                                    "value": "01a1f3c2-6a01-7b10-9c20-3d4e5f6a7b80",
                                    "description": "The ID of the component group."
                                }
                            ]
                        },
                        "method": "PUT",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"name\":\"b\",\"description\":\"Et animi quos velit et fugiat.\",\"position\":42,\"collapsed_by_default\":false,\"visible\":true}"
                        },
                        "description": ""
                    },
                    "response": []
                },
                {
                    "name": "Delete a component group",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/v1\/component-groups\/:id",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/v1\/component-groups\/:id",
                            "variable": [
                                {
                                    "id": "id",
                                    "key": "id",
                                    "value": "01a1f3c2-6a01-7b10-9c20-3d4e5f6a7b80",
                                    "description": "The ID of the component group."
                                }
                            ]
                        },
                        "method": "DELETE",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Its components stay, ungrouped."
                    },
                    "response": []
                }
            ]
        },
        {
            "name": "Components",
            "description": "\nThe parts of your service a status page shows \u2014 API, website, payments \u2014 each with its current status.",
            "item": [
                {
                    "name": "List components",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/v1\/components",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/v1\/components"
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "All components of the status page, in their display order."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\n    \"data\": [\n        {\n            \"id\": \"01a1bb24-fdc6-731a-9f22-b7e1198b2414\",\n            \"name\": \"Checkout API\",\n            \"description\": \"Payments and orders\",\n            \"status\": \"operational\",\n            \"status_label\": \"Operational\",\n            \"group_id\": \"01a1bb24-fdc3-7139-9cd9-6b02e7859302\",\n            \"group\": {\n                \"id\": \"01a1bb24-fdc3-7139-9cd9-6b02e7859302\",\n                \"name\": \"Payments\"\n            },\n            \"position\": 1,\n            \"show_uptime\": true,\n            \"uptime_start_date\": null,\n            \"uptime_90d\": 100,\n            \"visible\": true,\n            \"created_at\": \"2026-10-19T08:30:00+00:00\",\n            \"updated_at\": \"2026-10-19T08:30:00+00:00\"\n        }\n    ]\n}\n",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Create a component",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/v1\/components",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/v1\/components"
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"name\":\"b\",\"description\":\"Et animi quos velit et fugiat.\",\"group_id\":\"5707ca55-f609-3528-be8b-1baeaee1567e\",\"status\":\"degraded_performance\",\"position\":9,\"show_uptime\":true,\"uptime_start_date\":\"2022-12-07\",\"visible\":true}"
                        },
                        "description": "Over the plan's component limit: `422` with `error: quota_exceeded`."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 201,
                            "body": "{\n    \"data\": {\n        \"id\": \"01a1bb24-fdc6-731a-9f22-b7e1198b2414\",\n        \"name\": \"Checkout API\",\n        \"description\": \"Payments and orders\",\n        \"status\": \"operational\",\n        \"status_label\": \"Operational\",\n        \"group_id\": \"01a1bb24-fdc3-7139-9cd9-6b02e7859302\",\n        \"group\": {\n            \"id\": \"01a1bb24-fdc3-7139-9cd9-6b02e7859302\",\n            \"name\": \"Payments\"\n        },\n        \"position\": 1,\n        \"show_uptime\": null,\n        \"uptime_start_date\": null,\n        \"uptime_90d\": null,\n        \"visible\": null,\n        \"created_at\": \"2026-10-19T08:30:00+00:00\",\n        \"updated_at\": \"2026-10-19T08:30:00+00:00\"\n    }\n}\n",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Get a component",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/v1\/components\/:id",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/v1\/components\/:id",
                            "variable": [
                                {
                                    "id": "id",
                                    "key": "id",
                                    "value": "01a1f3c2-6b11-7c20-8d41-6a2e9f0c3d11",
                                    "description": "The ID of the component."
                                }
                            ]
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": ""
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\n    \"data\": {\n        \"id\": \"01a1bb24-fdc6-731a-9f22-b7e1198b2414\",\n        \"name\": \"Checkout API\",\n        \"description\": \"Payments and orders\",\n        \"status\": \"operational\",\n        \"status_label\": \"Operational\",\n        \"group_id\": \"01a1bb24-fdc3-7139-9cd9-6b02e7859302\",\n        \"group\": {\n            \"id\": \"01a1bb24-fdc3-7139-9cd9-6b02e7859302\",\n            \"name\": \"Payments\"\n        },\n        \"position\": 1,\n        \"show_uptime\": true,\n        \"uptime_start_date\": null,\n        \"uptime_90d\": 100,\n        \"visible\": true,\n        \"created_at\": \"2026-10-19T08:30:00+00:00\",\n        \"updated_at\": \"2026-10-19T08:30:00+00:00\"\n    }\n}\n",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Update a component",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/v1\/components\/:id",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/v1\/components\/:id",
                            "variable": [
                                {
                                    "id": "id",
                                    "key": "id",
                                    "value": "01a1f3c2-6b11-7c20-8d41-6a2e9f0c3d11",
                                    "description": "The ID of the component."
                                }
                            ]
                        },
                        "method": "PUT",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"name\":\"b\",\"description\":\"Et animi quos velit et fugiat.\",\"group_id\":\"5707ca55-f609-3528-be8b-1baeaee1567e\",\"status\":\"maintenance\",\"position\":9,\"show_uptime\":false,\"uptime_start_date\":\"2022-12-07\",\"visible\":true}"
                        },
                        "description": ""
                    },
                    "response": []
                },
                {
                    "name": "Delete a component",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/v1\/components\/:id",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/v1\/components\/:id",
                            "variable": [
                                {
                                    "id": "id",
                                    "key": "id",
                                    "value": "01a1f3c2-6b11-7c20-8d41-6a2e9f0c3d11",
                                    "description": "The ID of the component."
                                }
                            ]
                        },
                        "method": "DELETE",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": ""
                    },
                    "response": []
                },
                {
                    "name": "Set a component's status",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/v1\/components\/:component\/status",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/v1\/components\/:component\/status",
                            "variable": [
                                {
                                    "id": "component",
                                    "key": "component",
                                    "value": "01a1f3c2-6b11-7c20-8d41-6a2e9f0c3d11",
                                    "description": "The component."
                                }
                            ]
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"status\":\"partial_outage\"}"
                        },
                        "description": "For monitoring alerts and pipelines: sets the status directly, without an incident, and records it in the component's history. To tell subscribers, open an incident instead."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\n    \"data\": {\n        \"id\": \"01a1bb24-fdc6-731a-9f22-b7e1198b2414\",\n        \"name\": \"Checkout API\",\n        \"description\": \"Payments and orders\",\n        \"status\": \"degraded_performance\",\n        \"status_label\": \"Degraded Performance\",\n        \"group_id\": \"01a1bb24-fdc3-7139-9cd9-6b02e7859302\",\n        \"group\": {\n            \"id\": \"01a1bb24-fdc3-7139-9cd9-6b02e7859302\",\n            \"name\": \"Payments\"\n        },\n        \"position\": 1,\n        \"show_uptime\": true,\n        \"uptime_start_date\": null,\n        \"uptime_90d\": 100,\n        \"visible\": true,\n        \"created_at\": \"2026-10-19T08:30:00+00:00\",\n        \"updated_at\": \"2026-10-19T08:30:00+00:00\"\n    }\n}\n",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Reorder components",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/v1\/components\/reorder",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/v1\/components\/reorder"
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"components\":[{\"id\":\"6ff8f7f6-1eb3-3525-be4a-3932c805afed\",\"position\":84}]}"
                        },
                        "description": "Send `components` as a list of `{id, position}`; lower positions come first. Ids of other pages are ignored."
                    },
                    "response": []
                }
            ]
        },
        {
            "name": "Custom domain",
            "description": "\nServe a status page on your own domain. Needs a plan with custom domains (403 otherwise).\n\nManage the (single) custom domain of a statuspage.\n\nCustom domains are inherently asynchronous: after the domain is set, the\ncustomer points a CNAME at `cname_target` and adds the TXT record from\n`verification_record` (proof of ownership \u2014 without it the domain is not\nverified), a scheduled job verifies DNS, and Caddy provisions the certificate on\ndemand. A domain still unverified 30 days after it was set is released again. This controller is a thin state\nlayer over that existing machinery (StatuspageDomainSyncObserver +\nVerifyCustomDomain* jobs). Clients poll `show` until `status` is `active`.",
            "item": [
                {
                    "name": "Get the custom domain",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/v1\/statuspages\/:statuspage_id\/custom-domain",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/v1\/statuspages\/:statuspage_id\/custom-domain",
                            "variable": [
                                {
                                    "id": "statuspage_id",
                                    "key": "statuspage_id",
                                    "value": "01a1f3c2-5c00-7a10-8b20-1c2d3e4f5a6b",
                                    "description": "The ID of the statuspage."
                                },
                                {
                                    "id": "statuspage",
                                    "key": "statuspage",
                                    "value": "01a1f3c2-5c00-7a10-8b20-1c2d3e4f5a6b",
                                    "description": "The status page id."
                                }
                            ]
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "`status` goes from `pending_dns` to `dns_verified` to `active` (or `dns_error`). `verification_record` is the TXT record that proves the domain is yours; it is required, alongside the CNAME to `cname_target`. Poll until `active`. `404` when none is set."
                    },
                    "response": []
                },
                {
                    "name": "Set the custom domain",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/v1\/statuspages\/:statuspage_id\/custom-domain",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/v1\/statuspages\/:statuspage_id\/custom-domain",
                            "variable": [
                                {
                                    "id": "statuspage_id",
                                    "key": "statuspage_id",
                                    "value": "01a1f3c2-5c00-7a10-8b20-1c2d3e4f5a6b",
                                    "description": "The ID of the statuspage."
                                },
                                {
                                    "id": "statuspage",
                                    "key": "statuspage",
                                    "value": "01a1f3c2-5c00-7a10-8b20-1c2d3e4f5a6b",
                                    "description": "The status page id."
                                }
                            ]
                        },
                        "method": "PUT",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"domain\":\"b\"}"
                        },
                        "description": "Accepted with `202`: create the CNAME and the TXT record from `verification_record`, then the domain is verified on its own (or call `verify`). A domain unverified for 30 days is released. `422` with `error: domain_reserved` for our own domains, `domain_taken` when another page uses it."
                    },
                    "response": []
                },
                {
                    "name": "Check the DNS now",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/v1\/statuspages\/:statuspage\/custom-domain\/verify",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/v1\/statuspages\/:statuspage\/custom-domain\/verify",
                            "variable": [
                                {
                                    "id": "statuspage",
                                    "key": "statuspage",
                                    "value": "01a1f3c2-5c00-7a10-8b20-1c2d3e4f5a6b",
                                    "description": "The status page id."
                                }
                            ]
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Queues the next check due instead of waiting for the scheduled one: DNS until it is verified, then the SSL certificate. Limited to 10 per minute."
                    },
                    "response": []
                },
                {
                    "name": "Remove the custom domain",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/v1\/statuspages\/:statuspage_id\/custom-domain",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/v1\/statuspages\/:statuspage_id\/custom-domain",
                            "variable": [
                                {
                                    "id": "statuspage_id",
                                    "key": "statuspage_id",
                                    "value": "01a1f3c2-5c00-7a10-8b20-1c2d3e4f5a6b",
                                    "description": "The ID of the statuspage."
                                },
                                {
                                    "id": "statuspage",
                                    "key": "statuspage",
                                    "value": "01a1f3c2-5c00-7a10-8b20-1c2d3e4f5a6b",
                                    "description": "The status page id."
                                }
                            ]
                        },
                        "method": "DELETE",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "The page is served on its statuswerk.eu address again. Works on every plan, also after a downgrade."
                    },
                    "response": []
                }
            ]
        },
        {
            "name": "Incidents",
            "description": "\nReport disruptions. Creating, updating and resolving an incident has the same consequences as in the dashboard: its components show the outage, the timeline records each step, subscribers and chat channels are notified. On a page with four-eyes approval a new incident is held until a second person approves it in the dashboard.",
            "item": [
                {
                    "name": "List incidents",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/v1\/incidents",
                            "query": [
                                {
                                    "key": "status",
                                    "value": "investigating",
                                    "description": "Only incidents in this status: investigating, identified, monitoring, resolved.",
                                    "disabled": false
                                },
                                {
                                    "key": "active",
                                    "value": "1",
                                    "description": "Only open incidents.",
                                    "disabled": false
                                },
                                {
                                    "key": "resolved",
                                    "value": "",
                                    "description": "Only resolved incidents.",
                                    "disabled": true
                                },
                                {
                                    "key": "per_page",
                                    "value": "20",
                                    "description": "Page size, at most 100.",
                                    "disabled": false
                                }
                            ],
                            "raw": "{{baseUrl}}\/api\/v1\/incidents?status=investigating&active=1&resolved=&per_page=20"
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Newest first."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\n    \"data\": [\n        {\n            \"id\": \"01a1bb06-ac42-72a7-af4d-7bf1db7bb967\",\n            \"title\": \"Checkout API unavailable\",\n            \"slug\": \"checkout-api-unavailable\",\n            \"public_url\": \"https:\/\/acme.statuswerk.eu\/incidents\/checkout-api-unavailable\",\n            \"message\": \"We are investigating failed payments.\",\n            \"status\": \"identified\",\n            \"status_label\": \"Identified\",\n            \"severity\": \"major\",\n            \"severity_label\": \"Major\",\n            \"impact\": null,\n            \"visible\": true,\n            \"is_published\": true,\n            \"is_awaiting_approval\": false,\n            \"approval_state\": null,\n            \"approval_note\": null,\n            \"is_unlisted\": false,\n            \"excluded_from_uptime\": false,\n            \"stickied\": false,\n            \"notify_subscribers\": true,\n            \"occurred_at\": \"2026-10-19T08:30:00+00:00\",\n            \"resolved_at\": null,\n            \"duration_minutes\": null,\n            \"is_resolved\": false,\n            \"components\": [\n                {\n                    \"id\": \"01a1bb06-ac3a-73d9-bdeb-b86ecd87c763\",\n                    \"name\": \"Checkout API\",\n                    \"status\": null\n                }\n            ],\n            \"updates\": [\n                {\n                    \"id\": \"01a1bb06-ac4b-714f-a2d1-f6630666fb42\",\n                    \"incident_id\": \"01a1bb06-ac42-72a7-af4d-7bf1db7bb967\",\n                    \"status\": \"identified\",\n                    \"status_label\": \"Identified\",\n                    \"message\": \"A certificate expired at our payment provider. We are rolling out a new one.\",\n                    \"notify_subscribers\": true,\n                    \"created_at\": \"2026-10-19T08:45:00+00:00\",\n                    \"updated_at\": \"2026-10-19T08:45:00+00:00\"\n                },\n                {\n                    \"id\": \"01a1bb06-ac46-7344-8e3c-1f5dabca8d6b\",\n                    \"incident_id\": \"01a1bb06-ac42-72a7-af4d-7bf1db7bb967\",\n                    \"status\": \"investigating\",\n                    \"status_label\": \"Investigating\",\n                    \"message\": \"We are investigating failed payments.\",\n                    \"notify_subscribers\": true,\n                    \"created_at\": \"2026-10-19T08:30:00+00:00\",\n                    \"updated_at\": \"2026-10-19T08:30:00+00:00\"\n                }\n            ],\n            \"created_at\": \"2026-10-19T08:30:00+00:00\",\n            \"updated_at\": \"2026-10-19T08:45:00+00:00\"\n        }\n    ],\n    \"links\": {\n        \"first\": \"https:\/\/statuswerk.eu\/api\/v1\/incidents?page=1\",\n        \"last\": \"https:\/\/statuswerk.eu\/api\/v1\/incidents?page=1\",\n        \"prev\": null,\n        \"next\": null\n    },\n    \"meta\": {\n        \"current_page\": 1,\n        \"from\": 1,\n        \"last_page\": 1,\n        \"links\": [\n            {\n                \"url\": null,\n                \"label\": \"&laquo; Previous\",\n                \"page\": null,\n                \"active\": false\n            },\n            {\n                \"url\": \"https:\/\/statuswerk.eu\/api\/v1\/incidents?page=1\",\n                \"label\": \"1\",\n                \"page\": 1,\n                \"active\": true\n            },\n            {\n                \"url\": null,\n                \"label\": \"Next &raquo;\",\n                \"page\": null,\n                \"active\": false\n            }\n        ],\n        \"path\": \"https:\/\/statuswerk.eu\/api\/v1\/incidents\",\n        \"per_page\": 20,\n        \"to\": 1,\n        \"total\": 1\n    }\n}\n",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Open an incident",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/v1\/incidents",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/v1\/incidents"
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"title\":\"Checkout API unavailable\",\"message\":\"We are investigating failed payments.\",\"status\":\"investigating\",\"severity\":\"major\",\"impact\":\"b\",\"visible\":true,\"is_unlisted\":false,\"excluded_from_uptime\":false,\"stickied\":false,\"notify_subscribers\":true,\"occurred_at\":\"2026-10-19T08:30:00+02:00\",\"resolved_at\":\"2026-10-19T09:10:00+02:00\",\"components\":[{\"id\":\"01a1f3c2-6b11-7c20-8d41-6a2e9f0c3d11\",\"status\":\"major_outage\"}]}"
                        },
                        "description": "Without a `status` per component, each takes the status the severity implies (minor \u2192 partial outage, major and critical \u2192 major outage). Over the monthly incident limit: `422` with `error: quota_exceeded`. Held for four-eyes approval, the response says so in `message` and `is_awaiting_approval`; nothing is published or sent until it is approved."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 201,
                            "body": "{\n    \"data\": {\n        \"id\": \"01a1bb06-ac42-72a7-af4d-7bf1db7bb967\",\n        \"title\": \"Checkout API unavailable\",\n        \"slug\": \"checkout-api-unavailable\",\n        \"public_url\": \"https:\/\/acme.statuswerk.eu\/incidents\/checkout-api-unavailable\",\n        \"message\": \"We are investigating failed payments.\",\n        \"status\": \"investigating\",\n        \"status_label\": \"Investigating\",\n        \"severity\": \"major\",\n        \"severity_label\": \"Major\",\n        \"impact\": null,\n        \"visible\": true,\n        \"is_published\": true,\n        \"is_awaiting_approval\": false,\n        \"approval_state\": null,\n        \"approval_note\": null,\n        \"is_unlisted\": false,\n        \"excluded_from_uptime\": false,\n        \"stickied\": false,\n        \"notify_subscribers\": true,\n        \"occurred_at\": \"2026-10-19T08:30:00+00:00\",\n        \"resolved_at\": null,\n        \"duration_minutes\": null,\n        \"is_resolved\": false,\n        \"components\": [\n            {\n                \"id\": \"01a1bb06-ac3a-73d9-bdeb-b86ecd87c763\",\n                \"name\": \"Checkout API\",\n                \"status\": null\n            }\n        ],\n        \"updates\": [\n            {\n                \"id\": \"01a1bb06-ac46-7344-8e3c-1f5dabca8d6b\",\n                \"incident_id\": \"01a1bb06-ac42-72a7-af4d-7bf1db7bb967\",\n                \"status\": \"investigating\",\n                \"status_label\": \"Investigating\",\n                \"message\": \"We are investigating failed payments.\",\n                \"notify_subscribers\": true,\n                \"created_at\": \"2026-10-19T08:30:00+00:00\",\n                \"updated_at\": \"2026-10-19T08:30:00+00:00\"\n            }\n        ],\n        \"created_at\": \"2026-10-19T08:30:00+00:00\",\n        \"updated_at\": \"2026-10-19T08:30:00+00:00\"\n    }\n}\n",
                            "name": ""
                        }
                    ]
                },
                {
                    "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": "01a1f3c2-7d0e-7a51-9c3b-2f6e8d4a1b90",
                                    "description": "The ID of the incident."
                                }
                            ]
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": ""
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\n    \"data\": {\n        \"id\": \"01a1bb06-ac42-72a7-af4d-7bf1db7bb967\",\n        \"title\": \"Checkout API unavailable\",\n        \"slug\": \"checkout-api-unavailable\",\n        \"public_url\": \"https:\/\/acme.statuswerk.eu\/incidents\/checkout-api-unavailable\",\n        \"message\": \"We are investigating failed payments.\",\n        \"status\": \"identified\",\n        \"status_label\": \"Identified\",\n        \"severity\": \"major\",\n        \"severity_label\": \"Major\",\n        \"impact\": null,\n        \"visible\": true,\n        \"is_published\": true,\n        \"is_awaiting_approval\": false,\n        \"approval_state\": null,\n        \"approval_note\": null,\n        \"is_unlisted\": false,\n        \"excluded_from_uptime\": false,\n        \"stickied\": false,\n        \"notify_subscribers\": true,\n        \"occurred_at\": \"2026-10-19T08:30:00+00:00\",\n        \"resolved_at\": null,\n        \"duration_minutes\": null,\n        \"is_resolved\": false,\n        \"components\": [\n            {\n                \"id\": \"01a1bb06-ac3a-73d9-bdeb-b86ecd87c763\",\n                \"name\": \"Checkout API\",\n                \"status\": null\n            }\n        ],\n        \"updates\": [\n            {\n                \"id\": \"01a1bb06-ac4b-714f-a2d1-f6630666fb42\",\n                \"incident_id\": \"01a1bb06-ac42-72a7-af4d-7bf1db7bb967\",\n                \"status\": \"identified\",\n                \"status_label\": \"Identified\",\n                \"message\": \"A certificate expired at our payment provider. We are rolling out a new one.\",\n                \"notify_subscribers\": true,\n                \"created_at\": \"2026-10-19T08:45:00+00:00\",\n                \"updated_at\": \"2026-10-19T08:45:00+00:00\"\n            },\n            {\n                \"id\": \"01a1bb06-ac46-7344-8e3c-1f5dabca8d6b\",\n                \"incident_id\": \"01a1bb06-ac42-72a7-af4d-7bf1db7bb967\",\n                \"status\": \"investigating\",\n                \"status_label\": \"Investigating\",\n                \"message\": \"We are investigating failed payments.\",\n                \"notify_subscribers\": true,\n                \"created_at\": \"2026-10-19T08:30:00+00:00\",\n                \"updated_at\": \"2026-10-19T08:30:00+00:00\"\n            }\n        ],\n        \"created_at\": \"2026-10-19T08:30:00+00:00\",\n        \"updated_at\": \"2026-10-19T08:45:00+00:00\"\n    }\n}\n",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Update an incident",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/v1\/incidents\/:id",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/v1\/incidents\/:id",
                            "variable": [
                                {
                                    "id": "id",
                                    "key": "id",
                                    "value": "01a1f3c2-7d0e-7a51-9c3b-2f6e8d4a1b90",
                                    "description": "The ID of the incident."
                                }
                            ]
                        },
                        "method": "PUT",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"title\":\"b\",\"message\":\"n\",\"status\":\"monitoring\",\"severity\":\"minor\",\"impact\":\"g\",\"visible\":true,\"is_unlisted\":true,\"excluded_from_uptime\":false,\"stickied\":false,\"notify_subscribers\":false,\"occurred_at\":\"2026-11-12T21:59:18\",\"resolved_at\":\"2026-11-12T21:59:18\",\"components\":[{\"id\":\"c90237e9-ced5-3af6-88ea-84aeaa148878\",\"status\":\"partial_outage\"}]}"
                        },
                        "description": "A changed status is recorded on the timeline, a changed severity moves the components, added and removed components follow. Setting `status` to `resolved` resolves it as `resolve` does."
                    },
                    "response": []
                },
                {
                    "name": "Delete an incident",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/v1\/incidents\/:id",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/v1\/incidents\/:id",
                            "variable": [
                                {
                                    "id": "id",
                                    "key": "id",
                                    "value": "01a1f3c2-7d0e-7a51-9c3b-2f6e8d4a1b90",
                                    "description": "The ID of the incident."
                                }
                            ]
                        },
                        "method": "DELETE",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Its components return to operational unless another open incident still affects them."
                    },
                    "response": []
                },
                {
                    "name": "List an incident's updates",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/v1\/incidents\/:incident_id\/updates",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/v1\/incidents\/:incident_id\/updates",
                            "variable": [
                                {
                                    "id": "incident_id",
                                    "key": "incident_id",
                                    "value": "01a1f3c2-7d0e-7a51-9c3b-2f6e8d4a1b90",
                                    "description": "The ID of the incident."
                                }
                            ]
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": ""
                    },
                    "response": []
                },
                {
                    "name": "Post an incident update",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/v1\/incidents\/:incident_id\/updates",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/v1\/incidents\/:incident_id\/updates",
                            "variable": [
                                {
                                    "id": "incident_id",
                                    "key": "incident_id",
                                    "value": "01a1f3c2-7d0e-7a51-9c3b-2f6e8d4a1b90",
                                    "description": "The ID of the incident."
                                }
                            ]
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"status\":\"identified\",\"message\":\"A failing database migration; rolling back.\",\"notify_subscribers\":true,\"created_at\":\"2022-12-07\"}"
                        },
                        "description": "Adds a step to the timeline and moves the incident to its `status`; subscribers are notified unless `notify_subscribers` is false. `resolved` resolves the incident and returns its components. On an incident still awaiting approval the update is kept but sent to nobody."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 201,
                            "body": "{\n    \"data\": {\n        \"id\": \"01a1544c-7c1d-7350-9874-aba971bbbc78\",\n        \"incident_id\": \"01a1544c-7c0f-7068-b8a5-30af62ccecd5\",\n        \"status\": \"identified\",\n        \"status_label\": \"Identified\",\n        \"message\": \"A certificate expired at our payment provider. We are rolling out a new one.\",\n        \"notify_subscribers\": true,\n        \"created_at\": \"2026-10-19T08:45:00+00:00\",\n        \"updated_at\": \"2026-10-19T08:45:00+00:00\"\n    }\n}\n",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Correct an incident update",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/v1\/incidents\/:incident_id\/updates\/:id",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/v1\/incidents\/:incident_id\/updates\/:id",
                            "variable": [
                                {
                                    "id": "incident_id",
                                    "key": "incident_id",
                                    "value": "01a1f3c2-7d0e-7a51-9c3b-2f6e8d4a1b90",
                                    "description": "The ID of the incident."
                                },
                                {
                                    "id": "id",
                                    "key": "id",
                                    "value": "01a1f3c2-7d10-7f02-a9b4-0c1d2e3f4a5b",
                                    "description": "The ID of the update."
                                },
                                {
                                    "id": "update",
                                    "key": "update",
                                    "value": "01a1f3c2-7d10-7f02-a9b4-0c1d2e3f4a5b",
                                    "description": "The update's id."
                                }
                            ]
                        },
                        "method": "PATCH",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"message\":\"b\",\"created_at\":\"2022-12-07\"}"
                        },
                        "description": "Fixes the text or the time of an update already posted. Nobody is notified again \u2014 a correction is not news."
                    },
                    "response": []
                },
                {
                    "name": "Delete an incident update",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/v1\/incidents\/:incident_id\/updates\/:id",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/v1\/incidents\/:incident_id\/updates\/:id",
                            "variable": [
                                {
                                    "id": "incident_id",
                                    "key": "incident_id",
                                    "value": "01a1f3c2-7d0e-7a51-9c3b-2f6e8d4a1b90",
                                    "description": "The ID of the incident."
                                },
                                {
                                    "id": "id",
                                    "key": "id",
                                    "value": "01a1f3c2-7d10-7f02-a9b4-0c1d2e3f4a5b",
                                    "description": "The ID of the update."
                                },
                                {
                                    "id": "update",
                                    "key": "update",
                                    "value": "01a1f3c2-7d10-7f02-a9b4-0c1d2e3f4a5b",
                                    "description": "The update's id."
                                }
                            ]
                        },
                        "method": "DELETE",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Removes the step from the timeline. The incident keeps its current status."
                    },
                    "response": []
                },
                {
                    "name": "Resolve an incident",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/v1\/incidents\/:incident\/resolve",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/v1\/incidents\/:incident\/resolve",
                            "variable": [
                                {
                                    "id": "incident",
                                    "key": "incident",
                                    "value": "01a1f3c2-7d0e-7a51-9c3b-2f6e8d4a1b90",
                                    "description": "The incident."
                                }
                            ]
                        },
                        "method": "PATCH",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"message\":\"b\",\"notify_subscribers\":true}"
                        },
                        "description": "Components return to operational unless another open incident still affects them; subscribers get the resolution, with `message` if you send one."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\n    \"data\": {\n        \"id\": \"01a1bb06-ac42-72a7-af4d-7bf1db7bb967\",\n        \"title\": \"Checkout API unavailable\",\n        \"slug\": \"checkout-api-unavailable\",\n        \"public_url\": \"https:\/\/acme.statuswerk.eu\/incidents\/checkout-api-unavailable\",\n        \"message\": \"We are investigating failed payments.\",\n        \"status\": \"resolved\",\n        \"status_label\": \"Resolved\",\n        \"severity\": \"major\",\n        \"severity_label\": \"Major\",\n        \"impact\": null,\n        \"visible\": true,\n        \"is_published\": true,\n        \"is_awaiting_approval\": false,\n        \"approval_state\": null,\n        \"approval_note\": null,\n        \"is_unlisted\": false,\n        \"excluded_from_uptime\": false,\n        \"stickied\": false,\n        \"notify_subscribers\": true,\n        \"occurred_at\": \"2026-10-19T08:30:00+00:00\",\n        \"resolved_at\": \"2026-10-19T09:10:00+00:00\",\n        \"duration_minutes\": 40,\n        \"is_resolved\": true,\n        \"components\": [\n            {\n                \"id\": \"01a1bb06-ac3a-73d9-bdeb-b86ecd87c763\",\n                \"name\": \"Checkout API\",\n                \"status\": null\n            }\n        ],\n        \"updates\": [\n            {\n                \"id\": \"01a1bb06-ac51-71da-a566-49dd7cc5c4cf\",\n                \"incident_id\": \"01a1bb06-ac42-72a7-af4d-7bf1db7bb967\",\n                \"status\": \"resolved\",\n                \"status_label\": \"Resolved\",\n                \"message\": \"Payments work again.\",\n                \"notify_subscribers\": true,\n                \"created_at\": \"2026-10-19T09:10:00+00:00\",\n                \"updated_at\": \"2026-10-19T09:10:00+00:00\"\n            },\n            {\n                \"id\": \"01a1bb06-ac4b-714f-a2d1-f6630666fb42\",\n                \"incident_id\": \"01a1bb06-ac42-72a7-af4d-7bf1db7bb967\",\n                \"status\": \"identified\",\n                \"status_label\": \"Identified\",\n                \"message\": \"A certificate expired at our payment provider. We are rolling out a new one.\",\n                \"notify_subscribers\": true,\n                \"created_at\": \"2026-10-19T08:45:00+00:00\",\n                \"updated_at\": \"2026-10-19T08:45:00+00:00\"\n            },\n            {\n                \"id\": \"01a1bb06-ac46-7344-8e3c-1f5dabca8d6b\",\n                \"incident_id\": \"01a1bb06-ac42-72a7-af4d-7bf1db7bb967\",\n                \"status\": \"investigating\",\n                \"status_label\": \"Investigating\",\n                \"message\": \"We are investigating failed payments.\",\n                \"notify_subscribers\": true,\n                \"created_at\": \"2026-10-19T08:30:00+00:00\",\n                \"updated_at\": \"2026-10-19T08:30:00+00:00\"\n            }\n        ],\n        \"created_at\": \"2026-10-19T08:30:00+00:00\",\n        \"updated_at\": \"2026-10-19T09:10:00+00:00\"\n    }\n}\n",
                            "name": ""
                        }
                    ]
                }
            ]
        },
        {
            "name": "Integrations",
            "description": "\nPost incidents and maintenance into Slack, Microsoft Teams, Discord, Google Chat or any webhook. Needs a plan with webhook notifications: without it nothing is sent, creating returns `422` (`quota_exceeded`), changing and testing return `403`. Listing, switching off (`is_enabled: false`) and deleting always work.",
            "item": [
                {
                    "name": "List integrations",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/v1\/integrations",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/v1\/integrations"
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "A read-only token sees only the host of each webhook URL \u2014 the full URL is a credential."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\n    \"data\": [\n        {\n            \"id\": 1,\n            \"type\": \"slack\",\n            \"name\": \"Ops channel\",\n            \"url\": \"https:\/\/hooks.slack.com\/services\/T000\/B000\/XXXXXXXX\",\n            \"is_enabled\": true,\n            \"events\": [\n                \"incident.created\",\n                \"incident.updated\",\n                \"incident.resolved\",\n                \"maintenance.scheduled\",\n                \"maintenance.started\",\n                \"maintenance.completed\"\n            ],\n            \"last_triggered_at\": null,\n            \"last_status_code\": null,\n            \"created_at\": \"2026-10-19T09:10:00+00:00\",\n            \"updated_at\": \"2026-10-19T09:10:00+00:00\"\n        }\n    ]\n}\n",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Create an integration",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/v1\/integrations",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/v1\/integrations"
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"type\":\"generic\",\"name\":\"b\",\"url\":\"http:\\\/\\\/bailey.com\\\/\",\"is_enabled\":false,\"events\":[\"incident.created\"]}"
                        },
                        "description": "Over the plan's integration limit: `422` with `error: quota_exceeded`. The URL must be public HTTPS."
                    },
                    "response": []
                },
                {
                    "name": "Get an integration",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/v1\/integrations\/:id",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/v1\/integrations\/:id",
                            "variable": [
                                {
                                    "id": "id",
                                    "key": "id",
                                    "value": 12,
                                    "description": "The ID of the integration."
                                }
                            ]
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": ""
                    },
                    "response": []
                },
                {
                    "name": "Update an integration",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/v1\/integrations\/:id",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/v1\/integrations\/:id",
                            "variable": [
                                {
                                    "id": "id",
                                    "key": "id",
                                    "value": 12,
                                    "description": "The ID of the integration."
                                }
                            ]
                        },
                        "method": "PUT",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"type\":\"generic\",\"name\":\"b\",\"url\":\"http:\\\/\\\/bailey.com\\\/\",\"is_enabled\":true,\"events\":[\"maintenance.scheduled\"]}"
                        },
                        "description": "Without a plan with webhook notifications only switching it off is allowed (`403` otherwise)."
                    },
                    "response": []
                },
                {
                    "name": "Delete an integration",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/v1\/integrations\/:id",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/v1\/integrations\/:id",
                            "variable": [
                                {
                                    "id": "id",
                                    "key": "id",
                                    "value": 12,
                                    "description": "The ID of the integration."
                                }
                            ]
                        },
                        "method": "DELETE",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": ""
                    },
                    "response": []
                },
                {
                    "name": "Send a test message",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/v1\/integrations\/:integration\/test",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/v1\/integrations\/:integration\/test",
                            "variable": [
                                {
                                    "id": "integration",
                                    "key": "integration",
                                    "value": 12,
                                    "description": "The integration."
                                }
                            ]
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Posts a test message to the integration. `422` when the URL could not be reached. Limited to 10 per minute."
                    },
                    "response": []
                }
            ]
        },
        {
            "name": "Mail server",
            "description": "\nThe workspace's own SMTP server, used for subscriber notifications instead of ours.\nBusiness only. Credentials are held once per workspace; the sender address can be\noverridden per status page through `mail_from_address` on the status page endpoint.\n\nWorkspace admins only: the token's owner needs the right to change workspace settings\nand must not be restricted to some status pages (`403` otherwise, also for reading).",
            "item": [
                {
                    "name": "Get the mail server settings",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/v1\/mail-settings",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/v1\/mail-settings"
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "`404` when none are set. The password is never returned, only `has_password`."
                    },
                    "response": []
                },
                {
                    "name": "Set the mail server",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/v1\/mail-settings",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/v1\/mail-settings"
                        },
                        "method": "PATCH",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"host\":\"b\",\"port\":22,\"encryption\":\"tls\",\"username\":\"g\",\"password\":\"{+-0pBNvYgx\",\"from_address\":\"w\",\"is_active\":true}"
                        },
                        "description": "The host must be reachable from the public internet.\n\nOmit `password` to keep the stored one \u2014 only while host, port, username and\nencryption stay the same; changing any of them without sending the password again\nanswers 422. `is_active` false keeps the configuration but sends through our own\nservers again."
                    },
                    "response": []
                },
                {
                    "name": "Remove the mail server",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/v1\/mail-settings",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/v1\/mail-settings"
                        },
                        "method": "DELETE",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Subscriber mail goes through our servers again.\n\nNotifications go back through our own servers immediately."
                    },
                    "response": []
                },
                {
                    "name": "Test the mail server",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/v1\/mail-settings\/test",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/v1\/mail-settings\/test"
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Connects and signs in without sending mail; the result says whether the login was checked. With `send_test_mail: true` a real test message goes through the server to the token owner's address. Limited to 10 per minute.\n\nOpens a connection, performs the handshake, signs in and hangs up. Nothing is sent.\n\nAlways answers 200 when the test could be carried out \u2014 the outcome is in `ok`,\nbecause a server refusing the login is a result, not a failed request. The stored\nconfiguration is the only thing it will test; it does not accept a host to connect\nto, which would make this an authenticated port scanner."
                    },
                    "response": []
                }
            ]
        },
        {
            "name": "Maintenance",
            "description": "\nAnnounce planned work. Creating needs a plan with scheduled maintenance (403 otherwise); existing windows can be read, changed, started, completed and deleted on every plan, so a downgrade leaves none stuck.",
            "item": [
                {
                    "name": "List maintenance windows",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/v1\/maintenances",
                            "query": [
                                {
                                    "key": "status",
                                    "value": "scheduled",
                                    "description": "Only windows in this status: scheduled, in_progress, completed.",
                                    "disabled": false
                                },
                                {
                                    "key": "upcoming",
                                    "value": "1",
                                    "description": "Only scheduled windows still ahead.",
                                    "disabled": false
                                },
                                {
                                    "key": "active",
                                    "value": "",
                                    "description": "Only windows in progress.",
                                    "disabled": true
                                },
                                {
                                    "key": "per_page",
                                    "value": "20",
                                    "description": "Page size, at most 100.",
                                    "disabled": false
                                }
                            ],
                            "raw": "{{baseUrl}}\/api\/v1\/maintenances?status=scheduled&upcoming=1&active=&per_page=20"
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "In order of their start."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\n    \"data\": [\n        {\n            \"id\": \"01a1bb06-ac56-730b-ba95-295abe87a0b3\",\n            \"title\": \"Database upgrade\",\n            \"public_url\": \"https:\/\/acme.statuswerk.eu\/maintenance\/01a1bb06-ac56-730b-ba95-295abe87a0b3\",\n            \"message\": \"The dashboard is read-only for up to 30 minutes.\",\n            \"status\": \"scheduled\",\n            \"status_label\": \"Scheduled\",\n            \"scheduled_start_at\": \"2026-10-24T22:00:00+00:00\",\n            \"scheduled_end_at\": \"2026-10-24T23:00:00+00:00\",\n            \"actual_start_at\": null,\n            \"actual_end_at\": null,\n            \"scheduled_duration_minutes\": 60,\n            \"actual_duration_minutes\": null,\n            \"auto_start\": false,\n            \"auto_complete\": false,\n            \"notify_subscribers\": true,\n            \"is_published\": true,\n            \"is_awaiting_approval\": false,\n            \"approval_state\": null,\n            \"approval_note\": null,\n            \"is_unlisted\": false,\n            \"notify_at_scheduled\": true,\n            \"send_reminder_1h\": true,\n            \"notify_at_start\": true,\n            \"notify_at_end\": true,\n            \"update_component_status\": false,\n            \"is_scheduled\": true,\n            \"is_in_progress\": false,\n            \"is_completed\": false,\n            \"components\": [],\n            \"created_at\": \"2026-10-19T09:10:00+00:00\",\n            \"updated_at\": \"2026-10-19T09:10:00+00:00\"\n        }\n    ],\n    \"links\": {\n        \"first\": \"https:\/\/statuswerk.eu\/api\/v1\/maintenances?page=1\",\n        \"last\": \"https:\/\/statuswerk.eu\/api\/v1\/maintenances?page=1\",\n        \"prev\": null,\n        \"next\": null\n    },\n    \"meta\": {\n        \"current_page\": 1,\n        \"from\": 1,\n        \"last_page\": 1,\n        \"links\": [\n            {\n                \"url\": null,\n                \"label\": \"&laquo; Previous\",\n                \"page\": null,\n                \"active\": false\n            },\n            {\n                \"url\": \"https:\/\/statuswerk.eu\/api\/v1\/maintenances?page=1\",\n                \"label\": \"1\",\n                \"page\": 1,\n                \"active\": true\n            },\n            {\n                \"url\": null,\n                \"label\": \"Next &raquo;\",\n                \"page\": null,\n                \"active\": false\n            }\n        ],\n        \"path\": \"https:\/\/statuswerk.eu\/api\/v1\/maintenances\",\n        \"per_page\": 20,\n        \"to\": 1,\n        \"total\": 1\n    }\n}\n",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Schedule maintenance",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/v1\/maintenances",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/v1\/maintenances"
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"title\":\"b\",\"message\":\"n\",\"scheduled_start_at\":\"2052-12-06\",\"scheduled_end_at\":\"2052-12-05\",\"auto_start\":false,\"auto_complete\":false,\"notify_subscribers\":true,\"is_unlisted\":false,\"notify_at_scheduled\":false,\"send_reminder_1h\":false,\"notify_at_start\":true,\"notify_at_end\":true,\"update_component_status\":true,\"component_ids\":[\"a4855dc5-0acb-33c3-b921-f4291f719ca0\"]}"
                        },
                        "description": "Subscribers are told when it is scheduled, an hour before, when it starts and when it ends \u2014 each switchable with `notify_at_scheduled`, `send_reminder_1h`, `notify_at_start`, `notify_at_end`. Held for four-eyes approval, it is announced once approved."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 201,
                            "body": "{\n    \"data\": {\n        \"id\": \"01a1bb06-ac56-730b-ba95-295abe87a0b3\",\n        \"title\": \"Database upgrade\",\n        \"public_url\": \"https:\/\/acme.statuswerk.eu\/maintenance\/01a1bb06-ac56-730b-ba95-295abe87a0b3\",\n        \"message\": \"The dashboard is read-only for up to 30 minutes.\",\n        \"status\": \"scheduled\",\n        \"status_label\": \"Scheduled\",\n        \"scheduled_start_at\": \"2026-10-24T22:00:00+00:00\",\n        \"scheduled_end_at\": \"2026-10-24T23:00:00+00:00\",\n        \"actual_start_at\": null,\n        \"actual_end_at\": null,\n        \"scheduled_duration_minutes\": 60,\n        \"actual_duration_minutes\": null,\n        \"auto_start\": false,\n        \"auto_complete\": false,\n        \"notify_subscribers\": true,\n        \"is_published\": true,\n        \"is_awaiting_approval\": false,\n        \"approval_state\": null,\n        \"approval_note\": null,\n        \"is_unlisted\": false,\n        \"notify_at_scheduled\": null,\n        \"send_reminder_1h\": null,\n        \"notify_at_start\": null,\n        \"notify_at_end\": null,\n        \"update_component_status\": null,\n        \"is_scheduled\": true,\n        \"is_in_progress\": false,\n        \"is_completed\": false,\n        \"components\": [],\n        \"created_at\": \"2026-10-19T09:10:00+00:00\",\n        \"updated_at\": \"2026-10-19T09:10:00+00:00\"\n    }\n}\n",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Get a maintenance window",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/v1\/maintenances\/:id",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/v1\/maintenances\/:id",
                            "variable": [
                                {
                                    "id": "id",
                                    "key": "id",
                                    "value": "01a1f3c2-8f40-7d51-a263-7d8e9f0a1b2c",
                                    "description": "The ID of the maintenance."
                                }
                            ]
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": ""
                    },
                    "response": []
                },
                {
                    "name": "Update a maintenance window",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/v1\/maintenances\/:id",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/v1\/maintenances\/:id",
                            "variable": [
                                {
                                    "id": "id",
                                    "key": "id",
                                    "value": "01a1f3c2-8f40-7d51-a263-7d8e9f0a1b2c",
                                    "description": "The ID of the maintenance."
                                }
                            ]
                        },
                        "method": "PUT",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"title\":\"b\",\"message\":\"n\",\"scheduled_start_at\":\"2026-11-12T21:59:18\",\"scheduled_end_at\":\"2052-12-05\",\"auto_start\":true,\"auto_complete\":false,\"notify_subscribers\":true,\"is_unlisted\":false,\"notify_at_scheduled\":true,\"send_reminder_1h\":true,\"notify_at_start\":true,\"notify_at_end\":true,\"update_component_status\":true,\"status\":\"scheduled\",\"actual_start_at\":\"2026-11-12T21:59:18\",\"actual_end_at\":\"2052-12-05\",\"component_ids\":[\"a4855dc5-0acb-33c3-b921-f4291f719ca0\"]}"
                        },
                        "description": ""
                    },
                    "response": []
                },
                {
                    "name": "Delete a maintenance window",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/v1\/maintenances\/:id",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/v1\/maintenances\/:id",
                            "variable": [
                                {
                                    "id": "id",
                                    "key": "id",
                                    "value": "01a1f3c2-8f40-7d51-a263-7d8e9f0a1b2c",
                                    "description": "The ID of the maintenance."
                                }
                            ]
                        },
                        "method": "DELETE",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": ""
                    },
                    "response": []
                },
                {
                    "name": "Start maintenance now",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/v1\/maintenances\/:maintenance\/start",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/v1\/maintenances\/:maintenance\/start",
                            "variable": [
                                {
                                    "id": "maintenance",
                                    "key": "maintenance",
                                    "value": "01a1f3c2-8f40-7d51-a263-7d8e9f0a1b2c",
                                    "description": "The maintenance."
                                }
                            ]
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "`422` unless it is scheduled."
                    },
                    "response": []
                },
                {
                    "name": "Complete maintenance now",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/v1\/maintenances\/:maintenance\/complete",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/v1\/maintenances\/:maintenance\/complete",
                            "variable": [
                                {
                                    "id": "maintenance",
                                    "key": "maintenance",
                                    "value": "01a1f3c2-8f40-7d51-a263-7d8e9f0a1b2c",
                                    "description": "The maintenance."
                                }
                            ]
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "`422` unless it is in progress."
                    },
                    "response": []
                }
            ]
        },
        {
            "name": "Metrics",
            "description": "\nNumbers shown as charts on the page \u2014 response time, error rate, queue length \u2014 pushed by you.\n\nMetric definitions and the points pushed into them.\n\nMetrics are addressed by the `key` the customer chose, not by an opaque id \u2014 their\nmonitoring script can then be written once against a name they control rather than\nhaving to look up an identifier first.",
            "item": [
                {
                    "name": "List metrics",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/v1\/metrics",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/v1\/metrics"
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": ""
                    },
                    "response": []
                },
                {
                    "name": "Create a metric",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/v1\/metrics",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/v1\/metrics"
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"key\":\"b\",\"name\":\"n\",\"suffix\":\"gzmiyvdljnikhway\",\"decimals\":1,\"aggregation\":\"last\",\"description\":\"Omnis nostrum aut adipisci quidem nostrum qui commodi.\",\"visible\":false,\"position\":3,\"y_axis_min\":4326.41688,\"y_axis_max\":4326.41688}"
                        },
                        "description": "`403` when the plan's metric limit is reached or the plan has no metrics."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 201,
                            "body": "{\n    \"data\": {\n        \"id\": \"01a1544c-7cb2-72ab-8a4d-ad75c201d2c1\",\n        \"key\": \"api.response_time\",\n        \"name\": \"API response time\",\n        \"source\": \"push\",\n        \"accepts_points\": true,\n        \"suffix\": \"ms\",\n        \"decimals\": 0,\n        \"aggregation\": \"avg\",\n        \"description\": null,\n        \"visible\": true,\n        \"position\": 0,\n        \"y_axis_min\": null,\n        \"y_axis_max\": null,\n        \"last_point_at\": null,\n        \"is_stale\": true,\n        \"created_at\": \"2026-10-19T09:10:00+00:00\",\n        \"updated_at\": \"2026-10-19T09:10:00+00:00\"\n    }\n}\n",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Get a metric",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/v1\/metrics\/:metricKey",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/v1\/metrics\/:metricKey",
                            "variable": [
                                {
                                    "id": "metricKey",
                                    "key": "metricKey",
                                    "value": "api.response_time",
                                    "description": "The metric's key."
                                }
                            ]
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": ""
                    },
                    "response": []
                },
                {
                    "name": "Update a metric",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/v1\/metrics\/:metricKey",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/v1\/metrics\/:metricKey",
                            "variable": [
                                {
                                    "id": "metricKey",
                                    "key": "metricKey",
                                    "value": "api.response_time",
                                    "description": "The metric's key."
                                }
                            ]
                        },
                        "method": "PUT",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"key\":\"b\",\"name\":\"n\",\"suffix\":\"gzmiyvdljnikhway\",\"decimals\":1,\"aggregation\":\"max\",\"description\":\"Omnis nostrum aut adipisci quidem nostrum qui commodi.\",\"visible\":true,\"position\":3,\"y_axis_min\":4326.41688,\"y_axis_max\":4326.41688}"
                        },
                        "description": ""
                    },
                    "response": []
                },
                {
                    "name": "Delete a metric",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/v1\/metrics\/:metricKey",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/v1\/metrics\/:metricKey",
                            "variable": [
                                {
                                    "id": "metricKey",
                                    "key": "metricKey",
                                    "value": "api.response_time",
                                    "description": "The metric's key."
                                }
                            ]
                        },
                        "method": "DELETE",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Removes its points too."
                    },
                    "response": []
                },
                {
                    "name": "Push points",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/v1\/metrics\/:metricKey\/points",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/v1\/metrics\/:metricKey\/points",
                            "variable": [
                                {
                                    "id": "metricKey",
                                    "key": "metricKey",
                                    "value": "api.response_time",
                                    "description": "The metric's key."
                                }
                            ]
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"points\":[{\"value\":4326.41688,\"timestamp\":\"2026-11-12T21:59:18\"}]}"
                        },
                        "description": "One point or a batch; accepted with `202`. `409` for a metric fed by another source. `403` on a plan without metrics (after a downgrade the metrics stay, but take no new points \u2014 as the dashboard hides them).\n\nIdempotent: points are bucketed on write, so a client retrying a failed request\noverwrites rather than duplicates."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 202,
                            "body": "{\n    \"accepted\": 2,\n    \"bucket_seconds\": 60,\n    \"metric\": {\n        \"id\": \"01a1544c-7cb2-72ab-8a4d-ad75c201d2c1\",\n        \"key\": \"api.response_time\",\n        \"name\": \"API response time\",\n        \"source\": \"push\",\n        \"accepts_points\": true,\n        \"suffix\": \"ms\",\n        \"decimals\": 0,\n        \"aggregation\": \"avg\",\n        \"description\": null,\n        \"visible\": true,\n        \"position\": 0,\n        \"y_axis_min\": null,\n        \"y_axis_max\": null,\n        \"last_point_at\": \"2026-10-19T09:05:00+00:00\",\n        \"is_stale\": false,\n        \"created_at\": \"2026-10-19T09:10:00+00:00\",\n        \"updated_at\": \"2026-10-19T09:10:00+00:00\"\n    }\n}\n",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Read points",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/v1\/metrics\/:metricKey\/points",
                            "query": [
                                {
                                    "key": "from",
                                    "value": "2026-10-18T09:00:00Z",
                                    "description": "Start (ISO 8601).",
                                    "disabled": false
                                },
                                {
                                    "key": "to",
                                    "value": "2026-10-19T09:00:00Z",
                                    "description": "End (ISO 8601), default now.",
                                    "disabled": false
                                },
                                {
                                    "key": "resolution",
                                    "value": "60",
                                    "description": "Bucket size in seconds, one of the stored resolutions.",
                                    "disabled": false
                                }
                            ],
                            "raw": "{{baseUrl}}\/api\/v1\/metrics\/:metricKey\/points?from=2026-10-18T09%3A00%3A00Z&to=2026-10-19T09%3A00%3A00Z&resolution=60",
                            "variable": [
                                {
                                    "id": "metricKey",
                                    "key": "metricKey",
                                    "value": "api.response_time",
                                    "description": "The metric's key."
                                }
                            ]
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Without `from` and `to`, the last 24 hours."
                    },
                    "response": []
                }
            ]
        },
        {
            "name": "Monitors",
            "description": "\nHTTP checks we run from several regions in Europe (Hetzner and UpCloud). A failure is\nconfirmed from a second region before the check counts as down; it is up again after\ntwo successes in a row. The number of checks and the shortest interval depend on the\nplan (403 \/ 422 otherwise).",
            "item": [
                {
                    "name": "List monitors",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/v1\/monitors",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/v1\/monitors"
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": ""
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\n    \"data\": [\n        {\n            \"id\": \"01a1bb34-522b-7341-9533-fe0f0f1b9d46\",\n            \"name\": \"Checkout API\",\n            \"url\": \"https:\/\/api.example.com\/health\",\n            \"method\": \"GET\",\n            \"interval_seconds\": 300,\n            \"timeout_seconds\": 10,\n            \"expected_status_from\": 200,\n            \"expected_status_to\": 399,\n            \"keyword\": null,\n            \"regions\": [\n                \"fsn\",\n                \"nbg\",\n                \"hel\",\n                \"es-mad1\",\n                \"pl-waw1\",\n                \"nl-ams1\"\n            ],\n            \"all_regions\": true,\n            \"auth\": {\n                \"type\": \"basic\",\n                \"username\": \"monitor\"\n            },\n            \"component_id\": \"01a1bb34-5188-7276-954d-338721448041\",\n            \"on_down\": \"switch_component\",\n            \"down_component_status\": \"major_outage\",\n            \"is_public\": true,\n            \"is_paused\": false,\n            \"paused_by_plan\": false,\n            \"state\": \"up\",\n            \"in_maintenance\": false,\n            \"state_changed_at\": \"2026-10-19T08:20:00+00:00\",\n            \"last_checked_at\": \"2026-10-19T08:29:41+00:00\",\n            \"last_region\": \"nbg\",\n            \"last_status_code\": 200,\n            \"last_response_ms\": 184,\n            \"last_error\": null,\n            \"certificate_expires_at\": \"2027-01-12T23:59:59+00:00\",\n            \"metric_key\": null,\n            \"recipients\": {\n                \"members\": [],\n                \"emails\": [\n                    \"oncall@example.com\"\n                ],\n                \"phones\": [],\n                \"integrations\": []\n            },\n            \"created_at\": \"2026-10-19T09:10:00+00:00\",\n            \"updated_at\": \"2026-10-19T09:10:00+00:00\"\n        }\n    ]\n}\n",
                            "name": ""
                        }
                    ]
                },
                {
                    "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\":\"Website\",\"url\":\"https:\\\/\\\/example.com\\\/health\",\"method\":\"GET\",\"interval_seconds\":60,\"timeout_seconds\":10,\"expected_status_from\":200,\"expected_status_to\":399,\"regions\":[\"architecto\"],\"auth_type\":\"basic\",\"auth_username\":\"monitor\",\"auth_password\":\"correct-horse-battery\",\"on_down\":\"notify\",\"down_component_status\":\"major_outage\",\"is_public\":false,\"is_paused\":false,\"recipients\":{\"members\":[16],\"emails\":[\"n\"],\"phones\":[\"+3642559314\"],\"integrations\":[16]}}"
                        },
                        "description": "Runs for the first time within seconds. `403` when the plan has no monitors left or\nSMS recipients are given on a plan without SMS."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 201,
                            "body": "{\n    \"data\": {\n        \"id\": \"01a1bb34-522b-7341-9533-fe0f0f1b9d46\",\n        \"name\": \"Checkout API\",\n        \"url\": \"https:\/\/api.example.com\/health\",\n        \"method\": \"GET\",\n        \"interval_seconds\": 300,\n        \"timeout_seconds\": 10,\n        \"expected_status_from\": 200,\n        \"expected_status_to\": 399,\n        \"keyword\": null,\n        \"regions\": [\n            \"fsn\",\n            \"nbg\",\n            \"hel\",\n            \"es-mad1\",\n            \"pl-waw1\",\n            \"nl-ams1\"\n        ],\n        \"all_regions\": true,\n        \"auth\": {\n            \"type\": \"basic\",\n            \"username\": \"monitor\"\n        },\n        \"component_id\": \"01a1bb34-5188-7276-954d-338721448041\",\n        \"on_down\": \"switch_component\",\n        \"down_component_status\": \"major_outage\",\n        \"is_public\": true,\n        \"is_paused\": false,\n        \"paused_by_plan\": false,\n        \"state\": \"pending\",\n        \"in_maintenance\": false,\n        \"state_changed_at\": null,\n        \"last_checked_at\": null,\n        \"last_region\": null,\n        \"last_status_code\": null,\n        \"last_response_ms\": null,\n        \"last_error\": null,\n        \"certificate_expires_at\": null,\n        \"metric_key\": null,\n        \"recipients\": {\n            \"members\": [],\n            \"emails\": [\n                \"oncall@example.com\"\n            ],\n            \"phones\": [],\n            \"integrations\": []\n        },\n        \"created_at\": \"2026-10-19T09:10:00+00:00\",\n        \"updated_at\": \"2026-10-19T09:10:00+00:00\"\n    }\n}\n",
                            "name": ""
                        }
                    ]
                },
                {
                    "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": "architecto",
                                    "description": "The ID of the monitor."
                                }
                            ]
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": ""
                    },
                    "response": []
                },
                {
                    "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": "architecto",
                                    "description": "The ID of the monitor."
                                }
                            ]
                        },
                        "method": "PUT",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"name\":\"Website\",\"url\":\"https:\\\/\\\/example.com\\\/health\",\"method\":\"GET\",\"interval_seconds\":60,\"timeout_seconds\":10,\"expected_status_from\":200,\"expected_status_to\":399,\"regions\":[\"architecto\"],\"auth_type\":\"basic\",\"auth_username\":\"monitor\",\"auth_password\":\"correct-horse-battery\",\"on_down\":\"notify\",\"down_component_status\":\"major_outage\",\"is_public\":false,\"is_paused\":false,\"recipients\":{\"members\":[16],\"emails\":[\"n\"],\"phones\":[\"+3642559314\"],\"integrations\":[16]}}"
                        },
                        "description": "Changing the URL, method, expected status or keyword starts the check afresh: an\nopen outage is closed and a component the check switched goes back to operational.\nPausing does the same. If the check was down, its recipients are told the outage\nended (mail and integrations with the event `monitor.closed`, no SMS). Resuming\nbeyond the plan's limit: `403`."
                    },
                    "response": []
                },
                {
                    "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": "architecto",
                                    "description": "The ID of the monitor."
                                }
                            ]
                        },
                        "method": "DELETE",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Removes its outages and response times. A component the check had switched to an\noutage goes back to operational. If the check was down, its recipients are told the\noutage ended (mail and integrations with the event `monitor.closed`, no SMS)."
                    },
                    "response": []
                },
                {
                    "name": "List outages",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/v1\/monitors\/:monitor\/outages",
                            "query": [
                                {
                                    "key": "per_page",
                                    "value": "25",
                                    "description": "Up to 100.",
                                    "disabled": false
                                }
                            ],
                            "raw": "{{baseUrl}}\/api\/v1\/monitors\/:monitor\/outages?per_page=25",
                            "variable": [
                                {
                                    "id": "monitor",
                                    "key": "monitor",
                                    "value": "BcECdBDA-CdED-bFEA-CbCE-BcCdeBfbbebc",
                                    "description": "The monitor."
                                }
                            ]
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Confirmed outages of one monitor, newest first. A single failed run that a second\nregion did not confirm is not an outage and does not appear here."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\n    \"data\": [\n        {\n            \"id\": 1,\n            \"started_at\": \"2026-10-19T08:02:10+00:00\",\n            \"ended_at\": \"2026-10-19T08:20:00+00:00\",\n            \"duration_seconds\": 1070,\n            \"regions\": [\n                \"fsn\",\n                \"hel\"\n            ],\n            \"status_code\": 503,\n            \"error\": \"HTTP 503\"\n        }\n    ],\n    \"links\": {\n        \"first\": \"https:\/\/statuswerk.eu\/api\/v1\/monitors\/01a1a79f-8af8-70ee-9168-1ab293fc293d\/outages?page=1\",\n        \"last\": \"https:\/\/statuswerk.eu\/api\/v1\/monitors\/01a1a79f-8af8-70ee-9168-1ab293fc293d\/outages?page=1\",\n        \"prev\": null,\n        \"next\": null\n    },\n    \"meta\": {\n        \"current_page\": 1,\n        \"from\": 1,\n        \"last_page\": 1,\n        \"links\": [\n            {\n                \"url\": null,\n                \"label\": \"&laquo; Previous\",\n                \"page\": null,\n                \"active\": false\n            },\n            {\n                \"url\": \"https:\/\/statuswerk.eu\/api\/v1\/monitors\/01a1a79f-8af8-70ee-9168-1ab293fc293d\/outages?page=1\",\n                \"label\": \"1\",\n                \"page\": 1,\n                \"active\": true\n            },\n            {\n                \"url\": null,\n                \"label\": \"Next &raquo;\",\n                \"page\": null,\n                \"active\": false\n            }\n        ],\n        \"path\": \"https:\/\/statuswerk.eu\/api\/v1\/monitors\/01a1a79f-8af8-70ee-9168-1ab293fc293d\/outages\",\n        \"per_page\": 25,\n        \"to\": 1,\n        \"total\": 1\n    }\n}\n",
                            "name": ""
                        }
                    ]
                }
            ]
        },
        {
            "name": "SMS",
            "description": "\nThe workspace's SMS this month: the plan's allowance, what is used, and what is left in bought packs. Subscriber SMS, confirmation codes and check alerts count, in SMS parts (160 characters, 70 with emoji or other characters outside the SMS character set). Read-only: packs are bought in the dashboard.",
            "item": [
                {
                    "name": "Get SMS usage",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/v1\/sms-usage",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/v1\/sms-usage"
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "`allowance` is `null` on plans without a monthly number. `paused` is true while the allowance and every pack are used up: SMS are not sent until the next month or a new pack; email, webhooks and chat carry on."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\"data\": {\"period\": \"2026-11\", \"allowance\": 250, \"used\": 212, \"from_packs\": 0, \"pack_remaining\": 250, \"paused\": false}}",
                            "name": ""
                        }
                    ]
                }
            ]
        },
        {
            "name": "Status page",
            "description": "\nSettings and status of the status page the request works on.",
            "item": [
                {
                    "name": "Get the status page",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/v1\/statuspage",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/v1\/statuspage"
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": ""
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\n    \"data\": {\n        \"id\": \"01a1cca7-529c-73dc-99c0-06ad67b5f04c\",\n        \"name\": \"Acme\",\n        \"slug\": \"acme\",\n        \"subdomain\": \"acme\",\n        \"custom_domain\": null,\n        \"public_url\": \"https:\/\/acme.statuswerk.eu\",\n        \"timezone\": \"UTC\",\n        \"language\": \"en\",\n        \"is_public\": true,\n        \"is_password_protected\": false,\n        \"access_ip_allowlist\": [],\n        \"overall_status\": \"major_outage\",\n        \"settings\": {\n            \"allow_subscriptions\": true,\n            \"show_uptime\": true,\n            \"uptime_days_to_show\": 90,\n            \"allow_email_subscribers\": true,\n            \"allow_sms_subscribers\": false,\n            \"allow_webhook_subscribers\": true,\n            \"allow_rss_subscribers\": true,\n            \"allow_public_api\": true,\n            \"show_overall_uptime\": true,\n            \"uptime_threshold_degraded\": 99.5,\n            \"approval_required_for_incidents\": false,\n            \"approval_required_for_maintenances\": false,\n            \"reply_to_email\": null,\n            \"mail_from_address\": null\n        },\n        \"branding\": {\n            \"primary_color\": \"#3B82F6\",\n            \"operational_color\": null,\n            \"section_titles\": [],\n            \"theme\": \"light\",\n            \"logo_path\": null,\n            \"logo_dark_path\": null,\n            \"favicon_path\": null,\n            \"logo_url\": null,\n            \"logo_dark_url\": null,\n            \"favicon_url\": null,\n            \"header_html\": null,\n            \"footer_html\": null,\n            \"custom_css\": null,\n            \"analytics_provider\": null,\n            \"analytics_site\": null,\n            \"analytics_host\": null\n        },\n        \"seo\": {\n            \"meta_title\": null,\n            \"meta_description\": null,\n            \"is_noindex\": false\n        },\n        \"component_groups\": [\n            {\n                \"id\": \"01a1cca7-52be-71d3-90fc-fdaee25a62c1\",\n                \"name\": \"Payments\",\n                \"description\": null,\n                \"position\": 1,\n                \"collapsed_by_default\": false,\n                \"visible\": true,\n                \"overall_status\": \"major_outage\",\n                \"components\": [\n                    {\n                        \"id\": \"01a1cca7-52c1-7051-9d9d-9e3639607967\",\n                        \"name\": \"Checkout API\",\n                        \"description\": \"Payments and orders\",\n                        \"status\": \"major_outage\",\n                        \"status_label\": \"Major Outage\",\n                        \"group_id\": \"01a1cca7-52be-71d3-90fc-fdaee25a62c1\",\n                        \"position\": 1,\n                        \"show_uptime\": true,\n                        \"uptime_start_date\": null,\n                        \"uptime_90d\": 100,\n                        \"visible\": true,\n                        \"created_at\": \"2026-10-19T08:30:00+00:00\",\n                        \"updated_at\": \"2026-10-19T08:30:00+00:00\"\n                    }\n                ],\n                \"created_at\": \"2026-10-19T08:30:00+00:00\",\n                \"updated_at\": \"2026-10-19T08:30:00+00:00\"\n            }\n        ],\n        \"components\": [\n            {\n                \"id\": \"01a1cca7-52c1-7051-9d9d-9e3639607967\",\n                \"name\": \"Checkout API\",\n                \"description\": \"Payments and orders\",\n                \"status\": \"major_outage\",\n                \"status_label\": \"Major Outage\",\n                \"group_id\": \"01a1cca7-52be-71d3-90fc-fdaee25a62c1\",\n                \"position\": 1,\n                \"show_uptime\": true,\n                \"uptime_start_date\": null,\n                \"uptime_90d\": 100,\n                \"visible\": true,\n                \"created_at\": \"2026-10-19T08:30:00+00:00\",\n                \"updated_at\": \"2026-10-19T08:30:00+00:00\"\n            }\n        ],\n        \"active_incidents_count\": 1,\n        \"created_at\": \"2026-10-19T08:30:00+00:00\",\n        \"updated_at\": \"2026-10-19T08:30:00+00:00\"\n    }\n}\n",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Update the status page",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/v1\/statuspage",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/v1\/statuspage"
                        },
                        "method": "PATCH",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"name\":\"Acme\",\"timezone\":\"Europe\\\/Berlin\",\"language\":\"de\",\"is_public\":true,\"access_password\":null,\"access_ip_allowlist\":[\"203.0.113.0\\\/24\"],\"allow_subscriptions\":true,\"show_uptime\":true,\"uptime_days_to_show\":90,\"allow_email_subscribers\":true,\"allow_sms_subscribers\":false,\"allow_webhook_subscribers\":false,\"allow_rss_subscribers\":true,\"allow_public_api\":true,\"reply_to_email\":\"support@acme.example\",\"mail_from_address\":\"status@acme.example\",\"meta_title\":\"Acme status\",\"meta_description\":\"Current availability of Acme's services.\",\"primary_color\":\"#16A34A\",\"operational_color\":\"#16A34A\",\"section_titles\":{\"component_uptime\":\"Our services\"},\"theme\":\"system\",\"show_overall_uptime\":true,\"uptime_threshold_degraded\":99.5,\"is_noindex\":false,\"header_html\":null,\"footer_html\":null,\"custom_css\":null,\"analytics_provider\":null,\"analytics_site\":null,\"analytics_host\":null}"
                        },
                        "description": "`language` (`de` or `en`) switches the public page, its feeds and badge, and every notification its subscribers receive. Switching on SMS or webhook subscribers needs the plan (`403`), as do a password, an IP allowlist, hiding from search engines (`is_noindex`), and custom HTML\/CSS (cleaned of scripts on save); switching any of them off works on every plan. The four-eyes switches are read-only here (`403`): a token bound by the rule must not be able to lift it. Logo and favicon have their own endpoints.\n\nEvery field is optional; only those you send change."
                    },
                    "response": []
                },
                {
                    "name": "Get the overall status",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/v1\/statuspage\/status",
                            "query": [
                                {
                                    "key": "days",
                                    "value": "30",
                                    "description": "Period for `uptime`, 1 to 365 days. Defaults to the period the page shows.",
                                    "disabled": false
                                }
                            ],
                            "raw": "{{baseUrl}}\/api\/v1\/statuspage\/status?days=30"
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "The one call a pipeline or health check needs: the page's worst current status and how many incidents are open. `uptime` is the page's uptime in percent over `uptime_days` \u2014 the number the page shows (average of its visible components with uptime shown), by default over the page's own period."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\n    \"status\": \"major_outage\",\n    \"active_incidents\": 1,\n    \"url\": \"https:\/\/acme.statuswerk.eu\",\n    \"uptime\": 100,\n    \"uptime_days\": 90\n}\n",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Upload the logo, dark-theme logo or favicon",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/v1\/statuspage\/:asset",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/v1\/statuspage\/:asset",
                            "variable": [
                                {
                                    "id": "asset",
                                    "key": "asset",
                                    "value": "logo",
                                    "description": "`logo`, `logo-dark` or `favicon`."
                                }
                            ]
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "multipart\/form-data"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "formdata",
                            "formdata": [
                                {
                                    "key": "file",
                                    "src": [],
                                    "type": "file"
                                }
                            ]
                        },
                        "description": "Send the image as multipart form data in `file`. Logo and dark-theme logo: SVG, PNG, JPEG, WebP or GIF up to 2 MB; favicon: SVG, PNG, ICO, WebP or GIF up to 512 KB. An SVG is stored sanitized (scripts, event handlers and external references removed); one that is no usable SVG afterwards is refused. Replaces the previous one."
                    },
                    "response": []
                },
                {
                    "name": "Remove the logo, dark-theme logo or favicon",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/v1\/statuspage\/:asset",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/v1\/statuspage\/:asset",
                            "variable": [
                                {
                                    "id": "asset",
                                    "key": "asset",
                                    "value": "favicon",
                                    "description": "`logo`, `logo-dark` or `favicon`."
                                }
                            ]
                        },
                        "method": "DELETE",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": ""
                    },
                    "response": []
                }
            ]
        },
        {
            "name": "Status pages",
            "description": "\nAll status pages of the workspace: list, create, delete.\n\nRESTful collection for a tenant's statuspages (create \/ list \/ show \/ delete).\n\nComplements the header-based singular endpoints (`\/api\/v1\/statuspage`) with\nexplicit-ID resources needed for multi-page orgs and IaC tools (Terraform\/CLI).\nUpdates continue to use `PATCH \/api\/v1\/statuspage` (with X-Statuspage-Id) for now.",
            "item": [
                {
                    "name": "List status pages",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/v1\/statuspages",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/v1\/statuspages"
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": ""
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\n    \"data\": [\n        {\n            \"id\": \"01a1cca7-529c-73dc-99c0-06ad67b5f04c\",\n            \"name\": \"Acme\",\n            \"slug\": \"acme\",\n            \"subdomain\": \"acme\",\n            \"custom_domain\": null,\n            \"public_url\": \"https:\/\/acme.statuswerk.eu\",\n            \"timezone\": \"UTC\",\n            \"language\": \"en\",\n            \"is_public\": true,\n            \"is_password_protected\": false,\n            \"access_ip_allowlist\": [],\n            \"overall_status\": \"operational\",\n            \"settings\": {\n                \"allow_subscriptions\": true,\n                \"show_uptime\": true,\n                \"uptime_days_to_show\": 90,\n                \"allow_email_subscribers\": true,\n                \"allow_sms_subscribers\": false,\n                \"allow_webhook_subscribers\": true,\n                \"allow_rss_subscribers\": true,\n                \"allow_public_api\": true,\n                \"show_overall_uptime\": true,\n                \"uptime_threshold_degraded\": 99.5,\n                \"approval_required_for_incidents\": false,\n                \"approval_required_for_maintenances\": false,\n                \"reply_to_email\": null,\n                \"mail_from_address\": null\n            },\n            \"branding\": {\n                \"primary_color\": \"#3B82F6\",\n                \"operational_color\": null,\n                \"section_titles\": [],\n                \"theme\": \"light\",\n                \"logo_path\": null,\n                \"logo_dark_path\": null,\n                \"favicon_path\": null,\n                \"logo_url\": null,\n                \"logo_dark_url\": null,\n                \"favicon_url\": null,\n                \"header_html\": null,\n                \"footer_html\": null,\n                \"custom_css\": null,\n                \"analytics_provider\": null,\n                \"analytics_site\": null,\n                \"analytics_host\": null\n            },\n            \"seo\": {\n                \"meta_title\": null,\n                \"meta_description\": null,\n                \"is_noindex\": false\n            },\n            \"created_at\": \"2026-10-19T08:30:00+00:00\",\n            \"updated_at\": \"2026-10-19T08:30:00+00:00\"\n        }\n    ]\n}\n",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Create a status page",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/v1\/statuspages",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/v1\/statuspages"
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"name\":\"Acme\",\"subdomain\":\"acme\",\"timezone\":\"Europe\\\/Berlin\",\"language\":\"de\",\"reply_to_email\":\"support@acme.example\"}"
                        },
                        "description": "`language` (`de` or `en`, default `en`) is the language of the public page, its feeds and badge, and of every notification its subscribers receive. Over the plan's page limit: `422` with `error: quota_exceeded`; a subdomain in use: `422` with `error: subdomain_taken`; one of ours (www, api, app, mail, login, billing \u2026): `error: subdomain_reserved`."
                    },
                    "response": []
                },
                {
                    "name": "Get a status page",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/v1\/statuspages\/:id",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/v1\/statuspages\/:id",
                            "variable": [
                                {
                                    "id": "id",
                                    "key": "id",
                                    "value": "01a1f3c2-5c00-7a10-8b20-1c2d3e4f5a6b",
                                    "description": "The ID of the statuspage."
                                },
                                {
                                    "id": "statuspage",
                                    "key": "statuspage",
                                    "value": "01a1f3c2-5c00-7a10-8b20-1c2d3e4f5a6b",
                                    "description": "The status page id."
                                }
                            ]
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": ""
                    },
                    "response": []
                },
                {
                    "name": "Delete a status page",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/v1\/statuspages\/:id",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/v1\/statuspages\/:id",
                            "variable": [
                                {
                                    "id": "id",
                                    "key": "id",
                                    "value": "01a1f3c2-5c00-7a10-8b20-1c2d3e4f5a6b",
                                    "description": "The ID of the statuspage."
                                },
                                {
                                    "id": "statuspage",
                                    "key": "statuspage",
                                    "value": "01a1f3c2-5c00-7a10-8b20-1c2d3e4f5a6b",
                                    "description": "The status page id."
                                }
                            ]
                        },
                        "method": "DELETE",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "With its components, incidents, maintenance windows and subscribers \u2014 for good."
                    },
                    "response": []
                }
            ]
        },
        {
            "name": "Subscribers",
            "description": "\nPeople and systems notified about incidents and maintenance: email, SMS, webhook.",
            "item": [
                {
                    "name": "Import subscribers from CSV",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/v1\/subscribers\/import",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/v1\/subscribers\/import"
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "multipart\/form-data"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "formdata",
                            "formdata": [
                                {
                                    "key": "consent",
                                    "value": "1",
                                    "type": "text",
                                    "description": "You have every listed person's consent to these notifications (GDPR)."
                                },
                                {
                                    "key": "file",
                                    "src": [],
                                    "type": "file"
                                }
                            ]
                        },
                        "description": "The dashboard's import: a CSV file (`file`, up to 1 MB) with one email address per row or a column named `email`. The addresses are added as confirmed email subscribers \u2014 import only people who agreed elsewhere, and confirm it with `consent: true`, as the dashboard asks (`422` otherwise). Duplicates and invalid addresses are skipped, and so is everything over the plan's subscriber limit; the response counts each. While the first invoice of an annual plan on invoice is unpaid: `403` with `error: awaiting_payment`."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\"data\": {\"imported\": 120, \"skipped_duplicates\": 3, \"skipped_invalid\": 1, \"skipped_quota\": 0}}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "List subscribers",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/v1\/subscribers",
                            "query": [
                                {
                                    "key": "verified",
                                    "value": "1",
                                    "description": "Only confirmed (true) or only unconfirmed (false) subscribers.",
                                    "disabled": false
                                },
                                {
                                    "key": "channel",
                                    "value": "email",
                                    "description": "Only subscribers on this channel: email, sms, webhook.",
                                    "disabled": false
                                },
                                {
                                    "key": "undeliverable",
                                    "value": "1",
                                    "description": "Only subscribers taken out of delivery (true) or only reachable ones (false).",
                                    "disabled": false
                                },
                                {
                                    "key": "per_page",
                                    "value": "50",
                                    "description": "Page size, at most 100.",
                                    "disabled": false
                                }
                            ],
                            "raw": "{{baseUrl}}\/api\/v1\/subscribers?verified=1&channel=email&undeliverable=1&per_page=50"
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "A read-only token sees email addresses and phone numbers masked (`j\u2022\u2022\u2022\u2022@example.com`, `\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022567`) and only the host of a webhook URL."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\n    \"data\": [\n        {\n            \"id\": \"01a1bb39-facc-703f-b5da-dc8141951647\",\n            \"email\": \"jane@example.com\",\n            \"phone\": null,\n            \"webhook_url\": null,\n            \"webhook_type\": null,\n            \"channels\": [\n                \"email\"\n            ],\n            \"component_ids\": null,\n            \"locale\": \"en\",\n            \"is_verified\": true,\n            \"verified_at\": \"2026-10-19T09:10:00+00:00\",\n            \"undeliverable_at\": null,\n            \"undeliverable_reason\": null,\n            \"created_at\": \"2026-10-19T09:10:00+00:00\",\n            \"updated_at\": \"2026-10-19T09:10:00+00:00\"\n        }\n    ],\n    \"links\": {\n        \"first\": \"https:\/\/statuswerk.eu\/api\/v1\/subscribers?page=1\",\n        \"last\": \"https:\/\/statuswerk.eu\/api\/v1\/subscribers?page=1\",\n        \"prev\": null,\n        \"next\": null\n    },\n    \"meta\": {\n        \"current_page\": 1,\n        \"from\": 1,\n        \"last_page\": 1,\n        \"links\": [\n            {\n                \"url\": null,\n                \"label\": \"&laquo; Previous\",\n                \"page\": null,\n                \"active\": false\n            },\n            {\n                \"url\": \"https:\/\/statuswerk.eu\/api\/v1\/subscribers?page=1\",\n                \"label\": \"1\",\n                \"page\": 1,\n                \"active\": true\n            },\n            {\n                \"url\": null,\n                \"label\": \"Next &raquo;\",\n                \"page\": null,\n                \"active\": false\n            }\n        ],\n        \"path\": \"https:\/\/statuswerk.eu\/api\/v1\/subscribers\",\n        \"per_page\": 50,\n        \"to\": 1,\n        \"total\": 1\n    }\n}\n",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Create a new subscriber.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/v1\/subscribers",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/v1\/subscribers"
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"email\":\"ops@example.com\",\"phone\":\"+3642559314\",\"webhook_url\":\"http:\\\/\\\/www.considine.com\\\/provident-perspiciatis-quo-omnis-nostrum-aut-adipisci-quidem\",\"webhook_type\":\"google_chat\",\"webhook_secret\":\"w\",\"channels\":[\"webhook\"],\"component_ids\":[\"445bd3f6-8f2c-38cb-aa04-2f4e1edb32bb\"],\"locale\":\"sw_TZ\",\"skip_verification\":false}"
                        },
                        "description": "The subscriber receives a confirmation email (or SMS code) and is notified once they confirm.\nWith `skip_verification` the subscriber is confirmed at once \u2014 use it only for\npeople who already agreed elsewhere. A workspace whose first invoice for an annual\nplan on invoice is still unpaid gets `403` with `error: awaiting_payment` for\n`skip_verification` until the payment has arrived; without it the call works as\nusual.\n\nEvery mail, SMS and webhook text a subscriber gets is in the status page's\n`language`. `locale` is stored as given but does not change that.\n\n`phone` is in international format (`+491701234567`). SMS and webhook subscribers\nneed the channel switched on for the page and included in the plan, subscribing to\nsingle `component_ids` needs the plan too \u2014 otherwise `403` with\n`error: channel_unavailable` \/ `feature_unavailable`. An SMS subscriber always\nconfirms the number with the code we send: `skip_verification` with a `phone`\ngets `422` with `error: sms_requires_verification`. Over the subscriber limit:\n`422` with `error: quota_exceeded`.\n\nA webhook-only subscriber is confirmed by its endpoint, as on the public page: we\nsend one signed test POST right away and a `2xx` answer confirms it. Anything else\ncreates nothing and returns `422` with `error: webhook_unreachable`. The same\naddress (email, number or webhook URL) twice returns the existing subscriber."
                    },
                    "response": []
                },
                {
                    "name": "Get a subscriber",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/v1\/subscribers\/:id",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/v1\/subscribers\/:id",
                            "variable": [
                                {
                                    "id": "id",
                                    "key": "id",
                                    "value": "01a1f3c2-a060-7f71-8485-9f0a1b2c3d4e",
                                    "description": "The ID of the subscriber."
                                }
                            ]
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": ""
                    },
                    "response": []
                },
                {
                    "name": "Delete a subscriber",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/v1\/subscribers\/:id",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/v1\/subscribers\/:id",
                            "variable": [
                                {
                                    "id": "id",
                                    "key": "id",
                                    "value": "01a1f3c2-a060-7f71-8485-9f0a1b2c3d4e",
                                    "description": "The ID of the subscriber."
                                }
                            ]
                        },
                        "method": "DELETE",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": ""
                    },
                    "response": []
                },
                {
                    "name": "Resend the confirmation mail",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/v1\/subscribers\/:subscriber\/resend-verification",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/v1\/subscribers\/:subscriber\/resend-verification",
                            "variable": [
                                {
                                    "id": "subscriber",
                                    "key": "subscriber",
                                    "value": "01a1f3c2-a060-7f71-8485-9f0a1b2c3d4e",
                                    "description": "The subscriber."
                                }
                            ]
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "`422` when the subscriber is confirmed already or has no email address; `429` with `error: too_many_confirmations` after three confirmation mails to one address within an hour. Limited to 10 per minute."
                    },
                    "response": []
                }
            ]
        },
        {
            "name": "Team",
            "description": "\nWho is in the workspace, and inviting more people. Removing members and changing roles stays in the dashboard: a token that can do that could rebuild the workspace's access around itself.",
            "item": [
                {
                    "name": "List members",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/v1\/team\/members",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/v1\/team\/members"
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Names, email addresses, roles and status page access (`statuspage_access`: `null` for every page, otherwise page id => `edit`, `read` or `none`, where a page not listed is `none` and `{}` means no page at all; set in the dashboard). The token's owner needs the right to manage the team, as for the team page in the dashboard (`403` otherwise)."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\n    \"data\": [\n        {\n            \"id\": 2,\n            \"name\": \"Jane Doe\",\n            \"email\": \"jane.doe@acme.example\",\n            \"roles\": [],\n            \"statuspage_access\": null\n        }\n    ]\n}\n",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "List open invitations",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/v1\/team\/invitations",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/v1\/team\/invitations"
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "The token's owner needs the right to invite members, as in the dashboard (`403` otherwise)."
                    },
                    "response": []
                },
                {
                    "name": "Invite someone",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/v1\/team\/invitations",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/v1\/team\/invitations"
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"email\":\"colleague@example.com\",\"role\":\"user\"}"
                        },
                        "description": "Sends the invitation mail, as the dashboard does; it is valid for 7 days. Invitations through the API are always for the member role. The token's owner needs the right to invite members (`403` otherwise). `422` when the address is already in the team or invited, and with `error: quota_exceeded` when the plan has no seat left."
                    },
                    "response": []
                },
                {
                    "name": "Withdraw an invitation",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/v1\/team\/invitations\/:id",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/v1\/team\/invitations\/:id",
                            "variable": [
                                {
                                    "id": "id",
                                    "key": "id",
                                    "value": "01a1f3c2-a170-7081-9596-0a1b2c3d4e5f",
                                    "description": "The ID of the invitation."
                                },
                                {
                                    "id": "invitation",
                                    "key": "invitation",
                                    "value": "01a1f3c2-a170-7081-9596-0a1b2c3d4e5f",
                                    "description": "The invitation's id."
                                }
                            ]
                        },
                        "method": "DELETE",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": ""
                    },
                    "response": []
                }
            ]
        },
        {
            "name": "Templates",
            "description": "\nPrepared texts for recurring incidents and maintenance windows. Needs a plan with templates (403 otherwise).",
            "item": [
                {
                    "name": "List incident templates",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/v1\/incident-templates",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/v1\/incident-templates"
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": ""
                    },
                    "response": []
                },
                {
                    "name": "Create an incident template",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/v1\/incident-templates",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/v1\/incident-templates"
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"name\":\"b\",\"title_template\":\"n\",\"message_template\":\"g\",\"default_status\":\"investigating\",\"default_severity\":\"critical\",\"visible\":false,\"stickied\":true,\"notify_subscribers\":false,\"default_component_ids\":[\"c90237e9-ced5-3af6-88ea-84aeaa148878\"]}"
                        },
                        "description": "Use `{key}` placeholders in title and message; `apply` fills them from `variables`."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 201,
                            "body": "{\n    \"data\": {\n        \"id\": \"01a1544c-7c2f-70af-a6e8-1a99bc95fd92\",\n        \"name\": \"Payment provider down\",\n        \"title_template\": \"{provider} unavailable\",\n        \"message_template\": \"Payments through {provider} are failing. We are in contact with them.\",\n        \"default_status\": null,\n        \"default_severity\": null,\n        \"default_component_ids\": [],\n        \"visible\": null,\n        \"stickied\": null,\n        \"notify_subscribers\": null,\n        \"created_at\": \"2026-10-19T09:10:00+00:00\",\n        \"updated_at\": \"2026-10-19T09:10:00+00:00\"\n    }\n}\n",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Get an incident template",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/v1\/incident-templates\/:id",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/v1\/incident-templates\/:id",
                            "variable": [
                                {
                                    "id": "id",
                                    "key": "id",
                                    "value": "01a1f3c2-9a30-7c41-8b52-6c7d8e9f0a1b",
                                    "description": "The ID of the incident template."
                                }
                            ]
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": ""
                    },
                    "response": []
                },
                {
                    "name": "Update an incident template",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/v1\/incident-templates\/:id",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/v1\/incident-templates\/:id",
                            "variable": [
                                {
                                    "id": "id",
                                    "key": "id",
                                    "value": "01a1f3c2-9a30-7c41-8b52-6c7d8e9f0a1b",
                                    "description": "The ID of the incident template."
                                }
                            ]
                        },
                        "method": "PUT",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"name\":\"b\",\"title_template\":\"n\",\"message_template\":\"g\",\"default_status\":\"monitoring\",\"default_severity\":\"critical\",\"visible\":false,\"stickied\":false,\"notify_subscribers\":false,\"default_component_ids\":[\"c90237e9-ced5-3af6-88ea-84aeaa148878\"]}"
                        },
                        "description": ""
                    },
                    "response": []
                },
                {
                    "name": "Delete an incident template",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/v1\/incident-templates\/:id",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/v1\/incident-templates\/:id",
                            "variable": [
                                {
                                    "id": "id",
                                    "key": "id",
                                    "value": "01a1f3c2-9a30-7c41-8b52-6c7d8e9f0a1b",
                                    "description": "The ID of the incident template."
                                }
                            ]
                        },
                        "method": "DELETE",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": ""
                    },
                    "response": []
                },
                {
                    "name": "Open an incident from a template",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/v1\/incident-templates\/:incident_template\/apply",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/v1\/incident-templates\/:incident_template\/apply",
                            "variable": [
                                {
                                    "id": "incident_template",
                                    "key": "incident_template",
                                    "value": "01a1f3c2-9a30-7c41-8b52-6c7d8e9f0a1b",
                                    "description": "The incident template's id."
                                }
                            ]
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"occurred_at\":\"2026-11-12T21:59:18\",\"variables\":[\"b\"]}"
                        },
                        "description": "Fills the placeholders from `variables` and opens the incident as `POST \/incidents` would. Over the monthly incident limit: `422` with `error: quota_exceeded`.\n\nThe endpoint CI\/CD and alerting hooks use: name the template, optionally pass\nvariables for the placeholders, and every other field comes from the template."
                    },
                    "response": []
                },
                {
                    "name": "Duplicate an incident template",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/v1\/incident-templates\/:incident_template\/duplicate",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/v1\/incident-templates\/:incident_template\/duplicate",
                            "variable": [
                                {
                                    "id": "incident_template",
                                    "key": "incident_template",
                                    "value": "01a1f3c2-9a30-7c41-8b52-6c7d8e9f0a1b",
                                    "description": "The incident template's id."
                                }
                            ]
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "A copy named \"\u2026 (copy)\", to start a variant from."
                    },
                    "response": []
                },
                {
                    "name": "Save an incident as a template",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/v1\/incidents\/:incident\/save-as-template",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/v1\/incidents\/:incident\/save-as-template",
                            "variable": [
                                {
                                    "id": "incident",
                                    "key": "incident",
                                    "value": "01a1f3c2-7d0e-7a51-9c3b-2f6e8d4a1b90",
                                    "description": "The incident."
                                }
                            ]
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"name\":\"Ingest degradation\"}"
                        },
                        "description": "Title, message, status, severity, components and switches of the incident become a template's defaults."
                    },
                    "response": []
                },
                {
                    "name": "List maintenance templates",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/v1\/maintenance-templates",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/v1\/maintenance-templates"
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": ""
                    },
                    "response": []
                },
                {
                    "name": "Create a maintenance template",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/v1\/maintenance-templates",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/v1\/maintenance-templates"
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"name\":\"b\",\"title_template\":\"n\",\"message_template\":\"g\",\"default_duration_minutes\":16,\"notify_subscribers\":false,\"send_reminder_1h\":false,\"auto_start\":false,\"notify_at_start\":true,\"auto_complete\":false,\"notify_at_end\":true,\"update_component_status\":true,\"default_component_ids\":[\"977e5426-8d13-3824-86aa-b092f8ae52c5\"]}"
                        },
                        "description": ""
                    },
                    "response": []
                },
                {
                    "name": "Get a maintenance template",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/v1\/maintenance-templates\/:id",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/v1\/maintenance-templates\/:id",
                            "variable": [
                                {
                                    "id": "id",
                                    "key": "id",
                                    "value": "01a1f3c2-9b50-7e61-b374-8e9f0a1b2c3d",
                                    "description": "The ID of the maintenance template."
                                }
                            ]
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": ""
                    },
                    "response": []
                },
                {
                    "name": "Update a maintenance template",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/v1\/maintenance-templates\/:id",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/v1\/maintenance-templates\/:id",
                            "variable": [
                                {
                                    "id": "id",
                                    "key": "id",
                                    "value": "01a1f3c2-9b50-7e61-b374-8e9f0a1b2c3d",
                                    "description": "The ID of the maintenance template."
                                }
                            ]
                        },
                        "method": "PUT",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"name\":\"b\",\"title_template\":\"n\",\"message_template\":\"g\",\"default_duration_minutes\":16,\"notify_subscribers\":true,\"send_reminder_1h\":true,\"auto_start\":true,\"notify_at_start\":false,\"auto_complete\":false,\"notify_at_end\":false,\"update_component_status\":false,\"default_component_ids\":[\"977e5426-8d13-3824-86aa-b092f8ae52c5\"]}"
                        },
                        "description": ""
                    },
                    "response": []
                },
                {
                    "name": "Delete a maintenance template",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/v1\/maintenance-templates\/:id",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/v1\/maintenance-templates\/:id",
                            "variable": [
                                {
                                    "id": "id",
                                    "key": "id",
                                    "value": "01a1f3c2-9b50-7e61-b374-8e9f0a1b2c3d",
                                    "description": "The ID of the maintenance template."
                                }
                            ]
                        },
                        "method": "DELETE",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": ""
                    },
                    "response": []
                },
                {
                    "name": "Schedule maintenance from a template",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/v1\/maintenance-templates\/:maintenance_template\/apply",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/v1\/maintenance-templates\/:maintenance_template\/apply",
                            "variable": [
                                {
                                    "id": "maintenance_template",
                                    "key": "maintenance_template",
                                    "value": "01a1f3c2-9b50-7e61-b374-8e9f0a1b2c3d",
                                    "description": "The maintenance template's id."
                                }
                            ]
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"scheduled_start_at\":\"2026-11-12T21:59:18\",\"scheduled_end_at\":\"2052-12-05\",\"variables\":[\"n\"]}"
                        },
                        "description": "`403` without scheduled maintenance in the plan, `422` when the times are invalid.\n\nThis is the endpoint CI\/CD and schedulers use: pick the template, give it a start\ntime, and every other field comes from the template."
                    },
                    "response": []
                },
                {
                    "name": "Duplicate a maintenance template",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/v1\/maintenance-templates\/:maintenance_template\/duplicate",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/v1\/maintenance-templates\/:maintenance_template\/duplicate",
                            "variable": [
                                {
                                    "id": "maintenance_template",
                                    "key": "maintenance_template",
                                    "value": "01a1f3c2-9b50-7e61-b374-8e9f0a1b2c3d",
                                    "description": "The maintenance template's id."
                                }
                            ]
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "A copy named \"\u2026 (copy)\", to start a variant from."
                    },
                    "response": []
                },
                {
                    "name": "Save a maintenance window as a template",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/v1\/maintenances\/:maintenance\/save-as-template",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/v1\/maintenances\/:maintenance\/save-as-template",
                            "variable": [
                                {
                                    "id": "maintenance",
                                    "key": "maintenance",
                                    "value": "01a1f3c2-8f40-7d51-a263-7d8e9f0a1b2c",
                                    "description": "The maintenance."
                                }
                            ]
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"name\":\"Monthly database patch\"}"
                        },
                        "description": "Title, message, components, switches and the scheduled length (as default duration) become a template's defaults."
                    },
                    "response": []
                }
            ]
        }
    ],
    "auth": {
        "type": "bearer",
        "bearer": [
            {
                "key": "Authorization",
                "type": "string"
            }
        ]
    }
}