{
    "variable": [
        {
            "id": "baseUrl",
            "key": "baseUrl",
            "type": "string",
            "name": "string",
            "value": "https:\/\/webguard.marcel-breuer.dev"
        }
    ],
    "info": {
        "name": "WebGuard API Reference",
        "_postman_id": "f831d90a-7ac6-4d62-ad32-bf3831ede62e",
        "description": "Programmatic access to monitoring status, uptime history, incidents, SSL metadata, and server health reports.",
        "schema": "https:\/\/schema.getpostman.com\/json\/collection\/v2.1.0\/collection.json"
    },
    "item": [
        {
            "name": "Monitoring API",
            "description": "\nThis controller is responsible for handling all API requests related to monitoring data.\nIt provides endpoints for retrieving uptime\/downtime, response times, incidents, and other monitoring statistics.\nThe controller makes extensive use of caching to ensure optimal performance.",
            "item": [
                {
                    "name": "Retrieves all data for a given monitoring instance.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/v1\/monitorings\/:monitoring_id",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/v1\/monitorings\/:monitoring_id",
                            "variable": [
                                {
                                    "id": "monitoring_id",
                                    "key": "monitoring_id",
                                    "value": "01k0rqs3gmz6esfrmgsre03yd6",
                                    "description": "The ID of the monitoring."
                                }
                            ]
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"days\":16,\"start_date\":\"2026-06-02T06:56:29\",\"end_date\":\"2052-06-25\"}"
                        },
                        "description": ""
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\n \"status_since\": {\n \"status\": \"UP\",\n \"time\": \"2021-01-01 00:00:00\"\n },\n \"status_now\": {\n \"status\": \"UP\"\n },\n \"uptime_downtime\": [\n {\n \"date\": \"2021-01-01\",\n \"uptime\": 100,\n \"downtime\": 0\n }\n ],\n \"response_times\": [\n {\n \"datetime\": \"2021-01-01 00:00:00\",\n \"response_time\": 123\n }\n ],\n \"incidents\": [\n {\n \"started_at\": \"2021-01-01 00:00:00\",\n \"finished_at\": \"2021-01-01 00:05:00\",\n \"type\": \"DOWN\",\n \"reason\": \"HTTP status code 500\"\n }\n ],\n \"heatmap\": [\n {\n \"hour\": \"00:00\",\n \"uptime\": 100\n }\n ],\n \"ssl\": {\n \"valid\": true,\n \"expiration\": \"2022-01-01T00:00:00.000000Z\",\n \"issuer\": \"Let's Encrypt\",\n \"issue_date\": \"2021-10-01T00:00:00.000000Z\"\n },\n \"uptime_calendar\": {\n \"2021-01\": [\n {\n \"date\": \"2021-01-01\",\n \"uptime\": \"100.00\"\n }\n ]\n }\n}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Retrieves the combined status of a given monitoring instance.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/v1\/monitorings\/:monitoring_id\/status",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/v1\/monitorings\/:monitoring_id\/status",
                            "variable": [
                                {
                                    "id": "monitoring_id",
                                    "key": "monitoring_id",
                                    "value": "01k0rqs3gmz6esfrmgsre03yd6",
                                    "description": "The ID of the monitoring."
                                }
                            ]
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": ""
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\n\"status\": \"UP\",\n\"since\": \"2021-01-01 00:00:00\",\n\"checked_at\": \"2021-01-01 00:00:00\",\n\"next\": \"2021-01-01 00:05:00\",\n\"interval\": 300\n}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Retrieves the uptime and downtime data for a given monitoring instance.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/v1\/monitorings\/:monitoring_id\/uptime-downtime",
                            "query": [
                                {
                                    "key": "days",
                                    "value": "30",
                                    "description": "The number of days to retrieve data for. Defaults to 30.",
                                    "disabled": false
                                }
                            ],
                            "raw": "{{baseUrl}}\/api\/v1\/monitorings\/:monitoring_id\/uptime-downtime?days=30",
                            "variable": [
                                {
                                    "id": "monitoring_id",
                                    "key": "monitoring_id",
                                    "value": "01k0rqs3gmz6esfrmgsre03yd6",
                                    "description": "The ID of the monitoring."
                                }
                            ]
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"days\":16}"
                        },
                        "description": ""
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "[\n{\n\"date\": \"2021-01-01\",\n\"uptime\": 100,\n\"downtime\": 0\n}\n]",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Retrieves uptime and downtime data for multiple day ranges in one request.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/v1\/monitorings\/:monitoring_id\/uptime-downtime-summary",
                            "query": [
                                {
                                    "key": "days[][0]",
                                    "value": "7",
                                    "description": "The day ranges to retrieve.",
                                    "disabled": false
                                },
                                {
                                    "key": "days[][1]",
                                    "value": "30",
                                    "description": "The day ranges to retrieve.",
                                    "disabled": false
                                },
                                {
                                    "key": "days[][2]",
                                    "value": "90",
                                    "description": "The day ranges to retrieve.",
                                    "disabled": false
                                }
                            ],
                            "raw": "{{baseUrl}}\/api\/v1\/monitorings\/:monitoring_id\/uptime-downtime-summary?days[][0]=7&days[][1]=30&days[][2]=90",
                            "variable": [
                                {
                                    "id": "monitoring_id",
                                    "key": "monitoring_id",
                                    "value": "01k0rqs3gmz6esfrmgsre03yd6",
                                    "description": "The ID of the monitoring."
                                }
                            ]
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"days\":[1]}"
                        },
                        "description": ""
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\n  \"data\": {\n    \"7\": {\n      \"has_data\": true\n    },\n    \"30\": {\n      \"has_data\": true\n    }\n  }\n}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Retrieves the response times for a given monitoring instance.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/v1\/monitorings\/:monitoring_id\/response-times",
                            "query": [
                                {
                                    "key": "days",
                                    "value": "30",
                                    "description": "The number of days to retrieve data for. Defaults to 30.",
                                    "disabled": false
                                }
                            ],
                            "raw": "{{baseUrl}}\/api\/v1\/monitorings\/:monitoring_id\/response-times?days=30",
                            "variable": [
                                {
                                    "id": "monitoring_id",
                                    "key": "monitoring_id",
                                    "value": "01k0rqs3gmz6esfrmgsre03yd6",
                                    "description": "The ID of the monitoring."
                                }
                            ]
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"days\":16}"
                        },
                        "description": ""
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "[\n{\n\"datetime\": \"2021-01-01 00:00:00\",\n\"response_time\": 123\n}\n]",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Retrieves historical monitoring checks including status code details.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/v1\/monitorings\/:monitoring_id\/checks",
                            "query": [
                                {
                                    "key": "days",
                                    "value": "16",
                                    "description": "Optional number of past days to include. If omitted, all available history is considered.",
                                    "disabled": false
                                },
                                {
                                    "key": "limit",
                                    "value": "16",
                                    "description": "Optional maximum number of entries returned. Defaults to 100.",
                                    "disabled": false
                                },
                                {
                                    "key": "offset",
                                    "value": "16",
                                    "description": "Optional number of entries to skip for pagination. Defaults to 0.",
                                    "disabled": false
                                }
                            ],
                            "raw": "{{baseUrl}}\/api\/v1\/monitorings\/:monitoring_id\/checks?days=16&limit=16&offset=16",
                            "variable": [
                                {
                                    "id": "monitoring_id",
                                    "key": "monitoring_id",
                                    "value": "01k0rqs3gmz6esfrmgsre03yd6",
                                    "description": "The ID of the monitoring."
                                }
                            ]
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"days\":1,\"limit\":22,\"offset\":7}"
                        },
                        "description": ""
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\n  \"data\": [\n    {\n      \"id\": \"01H...\",\n      \"checked_at\": \"2026-03-24T12:00:00Z\",\n      \"status\": \"down\",\n      \"http_status_code\": 503,\n      \"response_time\": 210.5,\n      \"status_identifier\": \"status.server_error\",\n      \"status_key\": \"notifications.status.server_error\",\n      \"source\": \"live\"\n    }\n  ],\n  \"meta\": {\n    \"count\": 1,\n    \"limit\": 100,\n    \"offset\": 0,\n    \"days\": 7,\n    \"has_more\": false,\n    \"next_offset\": null\n  }\n}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Retrieves the incidents for a given monitoring instance.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/v1\/monitorings\/:monitoring_id\/incidents",
                            "query": [
                                {
                                    "key": "days",
                                    "value": "30",
                                    "description": "The number of days to retrieve data for. Defaults to 30.",
                                    "disabled": false
                                }
                            ],
                            "raw": "{{baseUrl}}\/api\/v1\/monitorings\/:monitoring_id\/incidents?days=30",
                            "variable": [
                                {
                                    "id": "monitoring_id",
                                    "key": "monitoring_id",
                                    "value": "01k0rqs3gmz6esfrmgsre03yd6",
                                    "description": "The ID of the monitoring."
                                }
                            ]
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"days\":16}"
                        },
                        "description": ""
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "[\n{\n\"started_at\": \"2021-01-01 00:00:00\",\n\"finished_at\": \"2021-01-01 00:05:00\",\n\"type\": \"DOWN\",\n\"reason\": \"HTTP status code 500\"\n}\n]",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Retrieves the uptime heatmap data for a given monitoring instance.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/v1\/monitorings\/:monitoring_id\/heatmap",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/v1\/monitorings\/:monitoring_id\/heatmap",
                            "variable": [
                                {
                                    "id": "monitoring_id",
                                    "key": "monitoring_id",
                                    "value": "01k0rqs3gmz6esfrmgsre03yd6",
                                    "description": "The ID of the monitoring."
                                }
                            ]
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": ""
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "[\n{\n\"hour\": \"00:00\",\n\"uptime\": 100\n}\n]",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Retrieves the SSL status for a given monitoring instance.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/v1\/monitorings\/:monitoring_id\/ssl",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/v1\/monitorings\/:monitoring_id\/ssl",
                            "variable": [
                                {
                                    "id": "monitoring_id",
                                    "key": "monitoring_id",
                                    "value": "01k0rqs3gmz6esfrmgsre03yd6",
                                    "description": "The ID of the monitoring."
                                }
                            ]
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": ""
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\n\"valid\": true,\n\"expiration\": \"2022-01-01T00:00:00.000000Z\",\n\"issuer\": \"Let's Encrypt\",\n\"issue_date\": \"2021-10-01T00:00:00.000000Z\"\n}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Retrieves the uptime calendar data for a given monitoring instance.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/v1\/monitorings\/:monitoring_id\/uptime-calendar",
                            "query": [
                                {
                                    "key": "start_date",
                                    "value": "2021-01-01",
                                    "description": "date The start date to retrieve data for.",
                                    "disabled": false
                                },
                                {
                                    "key": "end_date",
                                    "value": "2021-01-31",
                                    "description": "date The end date to retrieve data for.",
                                    "disabled": false
                                }
                            ],
                            "raw": "{{baseUrl}}\/api\/v1\/monitorings\/:monitoring_id\/uptime-calendar?start_date=2021-01-01&end_date=2021-01-31",
                            "variable": [
                                {
                                    "id": "monitoring_id",
                                    "key": "monitoring_id",
                                    "value": "01k0rqs3gmz6esfrmgsre03yd6",
                                    "description": "The ID of the monitoring."
                                }
                            ]
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"start_date\":\"2026-06-02T06:56:29\",\"end_date\":\"2052-06-25\"}"
                        },
                        "description": ""
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\n\"2021-01\": [\n{\n\"date\": \"2021-01-01\",\n\"uptime\": \"100.00\"\n}\n]\n}",
                            "name": ""
                        }
                    ]
                }
            ]
        },
        {
            "name": "Server Health",
            "description": "",
            "item": [
                {
                    "name": "Store a server health report.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/v1\/server-health\/:token",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/v1\/server-health\/:token",
                            "variable": [
                                {
                                    "id": "token",
                                    "key": "token",
                                    "value": "01HXZ7Q92W3K7VY9E6JQFM4XPC",
                                    "description": "The private server health token generated when the monitoring is created."
                                }
                            ]
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"status\":\"up\",\"cpu_usage_percent\":42.5,\"ram_usage_percent\":68.2,\"storage_usage_percent\":74.1,\"load_average\":1.42,\"uptime_seconds\":86400,\"extra_metrics\":{\"swap_usage_percent\":12.4}}"
                        },
                        "description": "Use the private endpoint generated for a Server Health monitoring. Send\nCPU, RAM, and storage percentages from your server agent or cron script.\nIf no explicit status is supplied, WebGuard marks the report down when\nany percentage metric reaches that monitor's configured threshold.",
                        "auth": {
                            "type": "noauth"
                        }
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\n  \"message\": \"Server health report accepted.\",\n  \"status\": \"up\",\n  \"metrics\": {\n    \"cpu_usage_percent\": 42.5,\n    \"ram_usage_percent\": 68.2,\n    \"storage_usage_percent\": 74.1\n  }\n}",
                            "name": ""
                        }
                    ]
                }
            ]
        }
    ],
    "auth": {
        "type": "bearer",
        "bearer": [
            {
                "key": "key",
                "type": "string"
            }
        ]
    }
}