> 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/next/platform/api-reference/notice-updates.md).

# Notice Updates

Manage timeline entries for a notice

## Add an update to a notice

> Appends a timeline entry. Optionally transitions the notice to a new \`status\`\
> in the same request (e.g., \`investigating\` → \`identified\` → \`resolved\`).\
> A \`notify: true\` update (the default) triggers email/Slack notifications.<br>

```json
{"openapi":"3.1.0","info":{"title":"StatusPal Public API","version":"1"},"tags":[{"name":"Notice Updates","description":"Manage timeline entries for a notice"}],"servers":[{"url":"https://next.statuspal.io/api/v1","description":"Production"},{"url":"http://spage.test:7070/api/v1","description":"Local development"}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","description":"Organization API key — issue one via the Rails console (management UI coming soon)"}},"schemas":{"NoticeUpdateCreate":{"type":"object","required":["body"],"properties":{"status":{"type":"string","description":"Transitions the notice to this status. Defaults to the current notice status\n(i.e. adds an update without changing status).\n"},"body":{"type":"string","description":"HTML or plain-text content for the update.","maxLength":10000},"posted_at":{"type":"string","format":"date-time","description":"Defaults to current time."},"notify":{"type":"boolean","default":true,"description":"Whether to send email/Slack notifications for this update."},"service_statuses":{"type":"array","items":{"$ref":"#/components/schemas/ServiceStatus"},"description":"Sets the live status of one or more services on the status page. Omit to leave\nall service statuses unchanged.\n"}}},"ServiceStatus":{"type":"object","required":["service_slug","status"],"description":"Sets the status of a service (optionally scoped to a specific container).","properties":{"service_slug":{"type":"string"},"container_slug":{"type":"string","description":"Only needed if you have configured multiple containers and want to target a specific\none (e.g. \"API in EU Region\" vs \"API in US Region\"). Omit to target the default container.\n"},"status":{"type":"string","enum":["ok","minor","major","critical","maintenance"]}}},"NoticeUpdateObject":{"type":"object","properties":{"id":{"type":"string","format":"uuid","readOnly":true},"status":{"type":"string","description":"The notice status at the time of this update"},"body":{"type":"string","description":"HTML content of the update"},"posted_at":{"type":"string","format":"date-time"},"service_statuses":{"type":"array","description":"The service statuses that were set as part of this timeline entry.","items":{"type":"object","properties":{"service_slug":{"type":"string"},"service_name":{"type":"string"},"container_slug":{"type":"string"},"container_name":{"type":"string"},"status":{"type":"string","enum":["ok","minor","major","critical","maintenance"]}}}}}},"Error":{"type":"object","properties":{"error":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":{"type":"array","items":{"type":"string"}}}}}},"responses":{"Unauthorized":{"description":"Missing or invalid API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"AccountPendingActivation":{"description":"The account is pending activation. A newly created account must be activated by an administrator before its API key can be used.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"NotFound":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"UnprocessableEntity":{"description":"Validation failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"paths":{"/status_pages/{subdomain}/notices/{notice_id}/updates":{"post":{"summary":"Add an update to a notice","operationId":"createNoticeUpdate","tags":["Notice Updates"],"description":"Appends a timeline entry. Optionally transitions the notice to a new `status`\nin the same request (e.g., `investigating` → `identified` → `resolved`).\nA `notify: true` update (the default) triggers email/Slack notifications.\n","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NoticeUpdateCreate"}}}},"responses":{"201":{"description":"Created","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/NoticeUpdateObject"}}}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/AccountPendingActivation"},"404":{"$ref":"#/components/responses/NotFound"},"422":{"$ref":"#/components/responses/UnprocessableEntity"}}}}}}
```

## DELETE /status\_pages/{subdomain}/notices/{notice\_id}/updates/{update\_id}

> Delete a notice update

```json
{"openapi":"3.1.0","info":{"title":"StatusPal Public API","version":"1"},"tags":[{"name":"Notice Updates","description":"Manage timeline entries for a notice"}],"servers":[{"url":"https://next.statuspal.io/api/v1","description":"Production"},{"url":"http://spage.test:7070/api/v1","description":"Local development"}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","description":"Organization API key — issue one via the Rails console (management UI coming soon)"}},"responses":{"Unauthorized":{"description":"Missing or invalid API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"AccountPendingActivation":{"description":"The account is pending activation. A newly created account must be activated by an administrator before its API key can be used.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"NotFound":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"schemas":{"Error":{"type":"object","properties":{"error":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":{"type":"array","items":{"type":"string"}}}}}}},"paths":{"/status_pages/{subdomain}/notices/{notice_id}/updates/{update_id}":{"delete":{"summary":"Delete a notice update","operationId":"deleteNoticeUpdate","tags":["Notice Updates"],"responses":{"204":{"description":"Deleted"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/AccountPendingActivation"},"404":{"$ref":"#/components/responses/NotFound"}}}}}}
```

## PATCH /status\_pages/{subdomain}/notices/{notice\_id}/updates/{update\_id}

> Edit a notice update

```json
{"openapi":"3.1.0","info":{"title":"StatusPal Public API","version":"1"},"tags":[{"name":"Notice Updates","description":"Manage timeline entries for a notice"}],"servers":[{"url":"https://next.statuspal.io/api/v1","description":"Production"},{"url":"http://spage.test:7070/api/v1","description":"Local development"}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","description":"Organization API key — issue one via the Rails console (management UI coming soon)"}},"schemas":{"NoticeUpdateEdit":{"type":"object","properties":{"status":{"type":"string"},"body":{"type":"string","maxLength":10000},"posted_at":{"type":"string","format":"date-time"},"notify":{"type":"boolean"},"service_statuses":{"type":"array","items":{"$ref":"#/components/schemas/ServiceStatus"},"description":"Replaces the service statuses recorded for this timeline entry."}}},"ServiceStatus":{"type":"object","required":["service_slug","status"],"description":"Sets the status of a service (optionally scoped to a specific container).","properties":{"service_slug":{"type":"string"},"container_slug":{"type":"string","description":"Only needed if you have configured multiple containers and want to target a specific\none (e.g. \"API in EU Region\" vs \"API in US Region\"). Omit to target the default container.\n"},"status":{"type":"string","enum":["ok","minor","major","critical","maintenance"]}}},"NoticeUpdateObject":{"type":"object","properties":{"id":{"type":"string","format":"uuid","readOnly":true},"status":{"type":"string","description":"The notice status at the time of this update"},"body":{"type":"string","description":"HTML content of the update"},"posted_at":{"type":"string","format":"date-time"},"service_statuses":{"type":"array","description":"The service statuses that were set as part of this timeline entry.","items":{"type":"object","properties":{"service_slug":{"type":"string"},"service_name":{"type":"string"},"container_slug":{"type":"string"},"container_name":{"type":"string"},"status":{"type":"string","enum":["ok","minor","major","critical","maintenance"]}}}}}},"Error":{"type":"object","properties":{"error":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":{"type":"array","items":{"type":"string"}}}}}},"responses":{"Unauthorized":{"description":"Missing or invalid API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"AccountPendingActivation":{"description":"The account is pending activation. A newly created account must be activated by an administrator before its API key can be used.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"NotFound":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"UnprocessableEntity":{"description":"Validation failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"paths":{"/status_pages/{subdomain}/notices/{notice_id}/updates/{update_id}":{"patch":{"summary":"Edit a notice update","operationId":"updateNoticeUpdate","tags":["Notice Updates"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NoticeUpdateEdit"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/NoticeUpdateObject"}}}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/AccountPendingActivation"},"404":{"$ref":"#/components/responses/NotFound"},"422":{"$ref":"#/components/responses/UnprocessableEntity"}}}}}}
```
