> For the complete documentation index, see [llms.txt](https://docs.statuspal.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.statuspal.io/platform/api-reference/summary.md).

# Summary

Summary endpoints

## GET /status\_pages/{subdomain}/summary

> Get the summary of a status page (status, services and active incidents and maintenances)

````json
{"openapi":"3.0.1","info":{"title":"StatusPal API Reference","version":"2.0.0"},"tags":[{"name":"Summary","description":"Summary endpoints"}],"servers":[{"url":"https://statuspal.io/api/v2"},{"url":"https://statuspal.eu/api/v2"}],"security":[],"paths":{"/status_pages/{subdomain}/summary":{"get":{"tags":["Summary"],"summary":"Get the summary of a status page (status, services and active incidents and maintenances)","operationId":"getStatusPageSummary","parameters":[{"$ref":"#/components/parameters/StatusPageSubdomain"}],"responses":{"200":{"description":"A status page's status","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StatusPageSummary"}}}},"403":{"$ref":"#/components/responses/ForbiddenError"},"404":{"$ref":"#/components/responses/NotFoundError"},"500":{"$ref":"#/components/responses/ServerError"}}}}},"components":{"parameters":{"StatusPageSubdomain":{"name":"subdomain","in":"path","description":"The subdomain of your status page.\n\nYou can find this under your status page settings, the Subdomain field is found under the \"Domain name\" section. Alternatively find it in the URL of your admin dashboard (e.g. statuspal.io/admin/`subdomain`).\n","required":true,"schema":{"type":"string"}}},"schemas":{"StatusPageSummary":{"description":"Represents the status summary of a status page","allOf":[{"$ref":"#/components/schemas/StatusPageStatus"},{"type":"object","properties":{"services":{"type":"array","items":{"$ref":"#/components/schemas/StatusService"}},"incidents":{"type":"array","description":"Active incidents","items":{"$ref":"#/components/schemas/Incident"}},"maintenances":{"type":"array","description":"Active maintenances","items":{"$ref":"#/components/schemas/Maintenance"}},"upcoming_maintenances":{"type":"array","description":"Upcoming maintenances","items":{"$ref":"#/components/schemas/Maintenance"}},"info_notices":{"type":"array","description":"Featured information notices","items":{"$ref":"#/components/schemas/InfoNotice"}},"current_status_type":{"type":"string","nullable":true,"enum":[null,"major","scheduled","minor"],"description":"The current status type of the status page"}}}]},"StatusPageStatus":{"description":"Represents the status summary of a status page","type":"object","properties":{"status_page":{"type":"object","properties":{"url":{"type":"string","description":"The URL of the website the status page is about"},"time_zone":{"type":"string","description":"The primary timezone the status page uses to display incidents"},"subdomain":{"type":"string","description":"The `subdomain` that identified the status page"},"name":{"type":"string","description":"The name of the company or service the status page is about"},"current_incident_type":{"$ref":"#/components/schemas/IncidentType"}}}}},"IncidentType":{"type":"string","description":"The type of the (current) incident:\n * `minor` - A minor incident is currently taking place.\n * `major` - A major incident is currently taking place.\n * `scheduled` - A scheduled maintenance is currently taking place.\n","enum":["major","minor","scheduled"]},"StatusService":{"description":"Represents the status of a service","type":"object","properties":{"name":{"type":"string"},"id":{"type":"integer"},"current_incident_type":{"$ref":"#/components/schemas/IncidentType"},"children":{"type":"array","description":"Nested ServiceSummary children","items":{"$ref":"#/components/schemas/StatusService"}}}},"Incident":{"type":"object","description":"An incident, either major, minor or a scheduled maintenance","required":["service_ids","type","updates","title"],"properties":{"id":{"type":"integer","description":"ID of the record","readOnly":true},"inserted_at":{"type":"string","description":"Datetime at which the record was inserted","format":"date-time","readOnly":true},"updated_at":{"type":"string","description":"Datetime at which the record was last updated","format":"date-time","readOnly":true},"title":{"type":"string","description":"The title of the incident"},"starts_at":{"type":"string","description":"The time at which the incident/maintenance started/will start.","format":"date-time"},"ends_at":{"type":"string","description":"The time at which the incident/maintenance ended/will end.","format":"date-time"},"type":{"$ref":"#/components/schemas/IncidentType"},"service_ids":{"type":"array","description":"An array of service Ids, at least 1 must be included","items":{"type":"integer"}},"updates":{"type":"array","description":"The incident's updates. On incident creation you must pass exactly one update object in the array, if the incident is of type minor/major the update type `issue` is recommended, if a scheduled maintenance then use `scheduled`.","items":{"$ref":"#/components/schemas/IncidentActivity"}},"url":{"readOnly":true,"type":"string","description":"URL to the incident"},"translations":{"description":"A translations object. For example:\n```json\n{\n  \"en\": { \"title\": \"English Title\" },\n  \"es\": { \"title\": \"Spanish Title\" }\n}\n```\n","type":"object","additionalProperties":true,"properties":{"[lang]":{"description":"e.g. `en`.","type":"object","properties":{"title":{"type":"string"}}}}},"notify":{"type":"boolean","description":"Notify subscribers when creating an incident with `type` `major` or `minor`."},"maintenance_notify":{"type":"boolean","description":"Notify subscribers when creating an incident (maintenance) with `type` `scheduled`."},"maintenance_notify_settings":{"$ref":"#/components/schemas/MaintenanceNotifySettings"},"affects_uptime":{"readOnly":true,"description":"It's a boolean if the incident affects uptime.","type":"boolean"}}},"IncidentActivity":{"type":"object","description":"Communicates an update of an incident, the special type `resolved` will close an incident.","required":["type","description"],"properties":{"id":{"type":"integer","description":"ID of the record","readOnly":true},"inserted_at":{"type":"string","description":"Datetime at which the record was inserted","format":"date-time","readOnly":true},"updated_at":{"type":"string","description":"Datetime at which the record was last updated","format":"date-time","readOnly":true},"posted_at":{"type":"string","description":"Editable datetime at which the record was posted","format":"date-time"},"type":{"type":"string","description":"The type of an incident update:\n * `investigating` - Investigating.\n * `issue` - Issue.\n * `monitoring` - Monitoring.\n * `resolved` - Resolved will close the associated incident by settings its `ends_at` to the current time.\n * `scheduled` - Scheduled Maintenance's first update shall have this type.\n * `essential` - Essential Maintenance's first update shall have this type.\n * `retroactive` - Retroactive.\n * `update` - Standard update on an incident.\n * `escalate` - Escalate will switch the incident type from `minor` to `major`.\n * `deescalate` - De-escalate will switch the incident type from `major` to `minor`.\n * `postmortem` - A Post-mortem update.\n"},"description":{"type":"string","description":"The provided update description (accepts Markdown format)"},"description_html":{"type":"string","readOnly":true,"description":"The provided update description rendered in HTML"},"translations":{"description":"A translations object. For example:\n```json\n{\n  \"en\": { \"description\": \"English description\" },\n  \"es\": { \"description\": \"Spanish description\" }\n}\n```\n","type":"object","additionalProperties":true,"properties":{"[lang]":{"description":"e.g. `en`.","type":"object","properties":{"description":{"type":"string"}}}}},"notify":{"type":"boolean","description":"Should your subscribers be notified about this update?","writeOnly":true},"subscribers_notified_at":{"type":"string","description":"Datetime at which subscribers were notified for this update","format":"date-time","readOnly":true},"tweet":{"type":"boolean","description":"Tweet this update with your configured Twitter account?"}}},"MaintenanceNotifySettings":{"type":"object","description":"> ### Configure this field only if the `type` is set to `scheduled`. To take effect, the `maintenance_notify` must be set to `true`.\nOverrides the status page auto maintenance notification settings for this specific maintenance.\n","properties":{"before_notice_minutes":{"type":"integer","description":"The number of minutes to notify the subscribers before the maintenance start.\n* `-1` - Immediately\n* `0` - Never\n* Positive integer (`4320`, `5760`, `10080`, ...) - Before the maintenance start minutes\n"},"second_before_notice_minutes":{"type":"integer","description":"The number of minutes to notify the subscribers the second time before the maintenance start. It needs to be after the first \"before maintenance start\" notice.\n* `0` - Never\n* Positive integer (`720`, `1440`, `2880`, ...) - Before the maintenance start minutes\n"},"on_start":{"type":"boolean","description":"Notify subscribers when the maintenance starts."},"on_end":{"type":"boolean","description":"Notify subscribers when the maintenance ends."}}},"Maintenance":{"allOf":[{"$ref":"#/components/schemas/Incident"},{"type":"object","properties":{"type":{"$ref":"#/components/schemas/MaintenanceType"}}}]},"MaintenanceType":{"type":"string","description":"The type of the incident:\n * `scheduled` - Should be used for maintenances.\n","enum":["scheduled"]},"InfoNotice":{"type":"object","description":"An information notice","required":["updates","title"],"properties":{"id":{"type":"integer","description":"ID of the record","readOnly":true},"inserted_at":{"type":"string","description":"Datetime at which the record was inserted","format":"date-time","readOnly":true},"updated_at":{"type":"string","description":"Datetime at which the record was last updated","format":"date-time","readOnly":true},"title":{"type":"string","description":"The title of the information notice"},"featured_from":{"type":"string","description":"The time at which the information notice will display on the status page.","format":"date-time"},"featured_until":{"type":"string","description":"The time at which the information notice will not display on the status page.","format":"date-time"},"service_ids":{"type":"array","description":"An array of service Ids, at least 1 must be included","items":{"type":"integer"}},"updates":{"type":"array","description":"The information notice's updates. On information notice creation you must pass exactly one update object in the array.","items":{"$ref":"#/components/schemas/IncidentActivity"}},"url":{"readOnly":true,"type":"string","description":"URL to the information notice"},"translations":{"description":"A translations object. For example:\n```json\n{\n  \"en\": { \"title\": \"English Title\" },\n  \"es\": { \"title\": \"Spanish Title\" }\n}\n```\n","type":"object","additionalProperties":true,"properties":{"[lang]":{"description":"e.g. `en`.","type":"object","properties":{"title":{"type":"string"}}}}}}},"ForbiddenError":{"type":"object","properties":{"error":{"type":"string","description":"Forbidden"}}},"NotFoundError":{"type":"object","properties":{"error":{"type":"string","description":"Resource not found!"}}},"ServerError":{"type":"object","properties":{"error":{"type":"string","description":"Internal server error :("}}}},"responses":{"ForbiddenError":{"description":"You lack the necessary permissions to access this resource.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenError"}}}},"NotFoundError":{"description":"A resource with the provided ID was not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundError"}}}},"ServerError":{"description":"Unexpected error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServerError"}}}}}}}
````

## GET /status\_pages/{subdomain}/services/{serviceId}/summary

> Get the summary of a service (status, services and active incidents and maintenances)

````json
{"openapi":"3.0.1","info":{"title":"StatusPal API Reference","version":"2.0.0"},"tags":[{"name":"Summary","description":"Summary endpoints"}],"servers":[{"url":"https://statuspal.io/api/v2"},{"url":"https://statuspal.eu/api/v2"}],"security":[],"paths":{"/status_pages/{subdomain}/services/{serviceId}/summary":{"get":{"tags":["Summary"],"summary":"Get the summary of a service (status, services and active incidents and maintenances)","operationId":"getServiceSummary","parameters":[{"$ref":"#/components/parameters/StatusPageSubdomain"},{"$ref":"#/components/parameters/ServiceId"}],"responses":{"200":{"description":"A service's status","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceSummary"}}}},"403":{"$ref":"#/components/responses/ForbiddenError"},"404":{"$ref":"#/components/responses/NotFoundError"},"500":{"$ref":"#/components/responses/ServerError"}}}}},"components":{"parameters":{"StatusPageSubdomain":{"name":"subdomain","in":"path","description":"The subdomain of your status page.\n\nYou can find this under your status page settings, the Subdomain field is found under the \"Domain name\" section. Alternatively find it in the URL of your admin dashboard (e.g. statuspal.io/admin/`subdomain`).\n","required":true,"schema":{"type":"string"}},"ServiceId":{"name":"serviceId","in":"path","description":"The ID of a service","required":true,"schema":{"type":"integer"}}},"schemas":{"ServiceSummary":{"allOf":[{"$ref":"#/components/schemas/ServiceStatus"},{"type":"object","properties":{"incidents":{"type":"array","description":"Active incidents","items":{"$ref":"#/components/schemas/Incident"}},"maintenances":{"type":"array","description":"Active maintenances","items":{"$ref":"#/components/schemas/Maintenance"}},"upcoming_maintenances":{"type":"array","description":"Upcoming maintenances","items":{"$ref":"#/components/schemas/Maintenance"}},"info_notices":{"type":"array","description":"Featured information notices","items":{"$ref":"#/components/schemas/InfoNotice"}},"current_status_type":{"type":"string","nullable":true,"enum":[null,"major","scheduled","minor"],"description":"The current status type of the status page"}}}]},"ServiceStatus":{"type":"object","properties":{"service":{"$ref":"#/components/schemas/StatusService"}}},"StatusService":{"description":"Represents the status of a service","type":"object","properties":{"name":{"type":"string"},"id":{"type":"integer"},"current_incident_type":{"$ref":"#/components/schemas/IncidentType"},"children":{"type":"array","description":"Nested ServiceSummary children","items":{"$ref":"#/components/schemas/StatusService"}}}},"IncidentType":{"type":"string","description":"The type of the (current) incident:\n * `minor` - A minor incident is currently taking place.\n * `major` - A major incident is currently taking place.\n * `scheduled` - A scheduled maintenance is currently taking place.\n","enum":["major","minor","scheduled"]},"Incident":{"type":"object","description":"An incident, either major, minor or a scheduled maintenance","required":["service_ids","type","updates","title"],"properties":{"id":{"type":"integer","description":"ID of the record","readOnly":true},"inserted_at":{"type":"string","description":"Datetime at which the record was inserted","format":"date-time","readOnly":true},"updated_at":{"type":"string","description":"Datetime at which the record was last updated","format":"date-time","readOnly":true},"title":{"type":"string","description":"The title of the incident"},"starts_at":{"type":"string","description":"The time at which the incident/maintenance started/will start.","format":"date-time"},"ends_at":{"type":"string","description":"The time at which the incident/maintenance ended/will end.","format":"date-time"},"type":{"$ref":"#/components/schemas/IncidentType"},"service_ids":{"type":"array","description":"An array of service Ids, at least 1 must be included","items":{"type":"integer"}},"updates":{"type":"array","description":"The incident's updates. On incident creation you must pass exactly one update object in the array, if the incident is of type minor/major the update type `issue` is recommended, if a scheduled maintenance then use `scheduled`.","items":{"$ref":"#/components/schemas/IncidentActivity"}},"url":{"readOnly":true,"type":"string","description":"URL to the incident"},"translations":{"description":"A translations object. For example:\n```json\n{\n  \"en\": { \"title\": \"English Title\" },\n  \"es\": { \"title\": \"Spanish Title\" }\n}\n```\n","type":"object","additionalProperties":true,"properties":{"[lang]":{"description":"e.g. `en`.","type":"object","properties":{"title":{"type":"string"}}}}},"notify":{"type":"boolean","description":"Notify subscribers when creating an incident with `type` `major` or `minor`."},"maintenance_notify":{"type":"boolean","description":"Notify subscribers when creating an incident (maintenance) with `type` `scheduled`."},"maintenance_notify_settings":{"$ref":"#/components/schemas/MaintenanceNotifySettings"},"affects_uptime":{"readOnly":true,"description":"It's a boolean if the incident affects uptime.","type":"boolean"}}},"IncidentActivity":{"type":"object","description":"Communicates an update of an incident, the special type `resolved` will close an incident.","required":["type","description"],"properties":{"id":{"type":"integer","description":"ID of the record","readOnly":true},"inserted_at":{"type":"string","description":"Datetime at which the record was inserted","format":"date-time","readOnly":true},"updated_at":{"type":"string","description":"Datetime at which the record was last updated","format":"date-time","readOnly":true},"posted_at":{"type":"string","description":"Editable datetime at which the record was posted","format":"date-time"},"type":{"type":"string","description":"The type of an incident update:\n * `investigating` - Investigating.\n * `issue` - Issue.\n * `monitoring` - Monitoring.\n * `resolved` - Resolved will close the associated incident by settings its `ends_at` to the current time.\n * `scheduled` - Scheduled Maintenance's first update shall have this type.\n * `essential` - Essential Maintenance's first update shall have this type.\n * `retroactive` - Retroactive.\n * `update` - Standard update on an incident.\n * `escalate` - Escalate will switch the incident type from `minor` to `major`.\n * `deescalate` - De-escalate will switch the incident type from `major` to `minor`.\n * `postmortem` - A Post-mortem update.\n"},"description":{"type":"string","description":"The provided update description (accepts Markdown format)"},"description_html":{"type":"string","readOnly":true,"description":"The provided update description rendered in HTML"},"translations":{"description":"A translations object. For example:\n```json\n{\n  \"en\": { \"description\": \"English description\" },\n  \"es\": { \"description\": \"Spanish description\" }\n}\n```\n","type":"object","additionalProperties":true,"properties":{"[lang]":{"description":"e.g. `en`.","type":"object","properties":{"description":{"type":"string"}}}}},"notify":{"type":"boolean","description":"Should your subscribers be notified about this update?","writeOnly":true},"subscribers_notified_at":{"type":"string","description":"Datetime at which subscribers were notified for this update","format":"date-time","readOnly":true},"tweet":{"type":"boolean","description":"Tweet this update with your configured Twitter account?"}}},"MaintenanceNotifySettings":{"type":"object","description":"> ### Configure this field only if the `type` is set to `scheduled`. To take effect, the `maintenance_notify` must be set to `true`.\nOverrides the status page auto maintenance notification settings for this specific maintenance.\n","properties":{"before_notice_minutes":{"type":"integer","description":"The number of minutes to notify the subscribers before the maintenance start.\n* `-1` - Immediately\n* `0` - Never\n* Positive integer (`4320`, `5760`, `10080`, ...) - Before the maintenance start minutes\n"},"second_before_notice_minutes":{"type":"integer","description":"The number of minutes to notify the subscribers the second time before the maintenance start. It needs to be after the first \"before maintenance start\" notice.\n* `0` - Never\n* Positive integer (`720`, `1440`, `2880`, ...) - Before the maintenance start minutes\n"},"on_start":{"type":"boolean","description":"Notify subscribers when the maintenance starts."},"on_end":{"type":"boolean","description":"Notify subscribers when the maintenance ends."}}},"Maintenance":{"allOf":[{"$ref":"#/components/schemas/Incident"},{"type":"object","properties":{"type":{"$ref":"#/components/schemas/MaintenanceType"}}}]},"MaintenanceType":{"type":"string","description":"The type of the incident:\n * `scheduled` - Should be used for maintenances.\n","enum":["scheduled"]},"InfoNotice":{"type":"object","description":"An information notice","required":["updates","title"],"properties":{"id":{"type":"integer","description":"ID of the record","readOnly":true},"inserted_at":{"type":"string","description":"Datetime at which the record was inserted","format":"date-time","readOnly":true},"updated_at":{"type":"string","description":"Datetime at which the record was last updated","format":"date-time","readOnly":true},"title":{"type":"string","description":"The title of the information notice"},"featured_from":{"type":"string","description":"The time at which the information notice will display on the status page.","format":"date-time"},"featured_until":{"type":"string","description":"The time at which the information notice will not display on the status page.","format":"date-time"},"service_ids":{"type":"array","description":"An array of service Ids, at least 1 must be included","items":{"type":"integer"}},"updates":{"type":"array","description":"The information notice's updates. On information notice creation you must pass exactly one update object in the array.","items":{"$ref":"#/components/schemas/IncidentActivity"}},"url":{"readOnly":true,"type":"string","description":"URL to the information notice"},"translations":{"description":"A translations object. For example:\n```json\n{\n  \"en\": { \"title\": \"English Title\" },\n  \"es\": { \"title\": \"Spanish Title\" }\n}\n```\n","type":"object","additionalProperties":true,"properties":{"[lang]":{"description":"e.g. `en`.","type":"object","properties":{"title":{"type":"string"}}}}}}},"ForbiddenError":{"type":"object","properties":{"error":{"type":"string","description":"Forbidden"}}},"NotFoundError":{"type":"object","properties":{"error":{"type":"string","description":"Resource not found!"}}},"ServerError":{"type":"object","properties":{"error":{"type":"string","description":"Internal server error :("}}}},"responses":{"ForbiddenError":{"description":"You lack the necessary permissions to access this resource.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenError"}}}},"NotFoundError":{"description":"A resource with the provided ID was not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundError"}}}},"ServerError":{"description":"Unexpected error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServerError"}}}}}}}
````
