---
id: communications-notification-patch
title: Update a notification
description: Changes the fields you send and keeps the rest. Send at least one field.
sidebar_label: Update a notification
hide_title: true
hide_table_of_contents: true
api: >-
  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
sidebar_class_name: patch api-method
info_path: docs/api/communications
custom_edit_url: null
canonical: 'https://docs.nullplatform.com/docs/api/communications-notification-patch'
---
<Heading
  as={"h1"}
  className={"openapi__heading"}
  children={"Update a notification"}
>
</Heading>

<MethodEndpoint
  method={"patch"}
  path={"/communications/notification/{id}"}
  context={"endpoint"}
>

</MethodEndpoint>

Changes the fields you send and keeps the rest. Send at least one field.

Set `status` to `closed` to close it for everyone, or to `open` to reopen it. `kind`, `nrn`, `key`, `group_key`, and `recipients` can't change. On a notification nullplatform sent your organization (`publisher: nullplatform`), only `status` can change.

<Heading
  id={"request"}
  as={"h2"}
  className={"openapi-tabs__heading"}
  children={"Request"}
>
</Heading>

<ParamsDetails
  parameters={[{"in":"path","name":"id","required":true,"schema":{"type":"string","format":"uuid"},"description":"The ID of the notification, as returned when it was created or listed.","example":"6f1c2b9e-3a41-4f0e-9d55-2b7c1e0a9f13"}]}
>

</ParamsDetails>

<RequestSchema
  title={"Body"}
  body={{"required":true,"content":{"application/json":{"schema":{"title":"NotificationPatch","type":"object","description":"The fields to change. Fields you leave out keep their value, and `null` removes an optional one.","properties":{"status":{"type":"string","enum":["open","closed"],"description":"`closed` closes it for everyone, and `open` reopens it.","example":"closed"},"title":{"type":"string","maxLength":250,"description":"The headline. It can't be empty.","example":"Maintenance moved to Sunday"},"body":{"type":"string","nullable":true,"maxLength":2000,"description":"The text under the title."},"severity":{"type":"string","enum":["informational","maintenance","degraded","outage"]},"category":{"type":"string","maxLength":60,"description":"As on create."},"audience":{"type":"object","nullable":true,"description":"Announcements only, as on create."},"surfaces":{"type":"array","description":"Where it shows, as on create. It can't be empty."},"places":{"type":"array","nullable":true,"description":"Announcements only: the Slack channels, as on create."},"cta":{"type":"object","nullable":true,"description":"The button, as on create."},"media":{"type":"object","nullable":true,"description":"Wording by email or in Slack, as on create."},"publish_at":{"type":"string","format":"date-time","nullable":true,"description":"When it starts showing. `null` shows it now.","example":"2026-11-01T09:00:00Z"},"expires_at":{"type":"string","format":"date-time","nullable":true,"description":"When it stops showing. `null` keeps it until you close it."}}}}}}}
>

</RequestSchema>

<StatusCodes
  id={undefined}
  label={undefined}
  responses={{"200":{"description":"The updated notification.","content":{"application/json":{"schema":{"title":"Notification","type":"object","properties":{"id":{"type":"string","format":"uuid","description":"The ID of the notification.","example":"6f1c2b9e-3a41-4f0e-9d55-2b7c1e0a9f13"},"organization_id":{"type":"integer","description":"Your organization's ID.","example":1},"kind":{"type":"string","enum":["broadcast","personal"],"example":"broadcast"},"category":{"type":"string","example":"platform.maintenance"},"severity":{"type":"string","enum":["informational","maintenance","degraded","outage"],"example":"maintenance"},"status":{"type":"string","enum":["open","closed"],"example":"open"},"nrn":{"type":"string","example":"organization=1"},"title":{"type":"string","example":"Scheduled maintenance on Saturday"},"body":{"type":"string","nullable":true},"audience":{"type":"object","nullable":true},"surfaces":{"type":"array","example":[{"type":"banner","sections":["development"],"dismissible":true}]},"places":{"type":"array"},"cta":{"type":"object","nullable":true},"media":{"type":"object","nullable":true},"key":{"type":"string","nullable":true},"group_key":{"type":"string","nullable":true},"publisher":{"type":"string","enum":["nullplatform","organization"],"description":"`organization` for your organization's notifications, and `nullplatform` for the ones nullplatform sends your organization. Only the `status` of a `nullplatform` one can change.","example":"organization"},"publish_at":{"type":"string","format":"date-time","nullable":true},"expires_at":{"type":"string","format":"date-time","nullable":true},"closed_at":{"type":"string","format":"date-time","nullable":true},"closed_by":{"type":"integer","nullable":true},"created_by":{"type":"integer","description":"The ID of the user who created it.","example":12345},"created_at":{"type":"string","format":"date-time","example":"2026-10-27T14:03:11.000Z"},"updated_at":{"type":"string","format":"date-time","example":"2026-10-27T14:03:11.000Z"}}}}}},"4XX":{"description":"The request couldn't be processed. For example, a parameter is invalid, the resource doesn't exist, or you don't have permission. The body is a problem details object (RFC 9457).","content":{"application/problem+json":{"schema":{"type":"object","description":"Describes what went wrong, following the RFC 9457 problem details format.","required":["type","title","status"],"properties":{"type":{"type":"string","description":"A URI that identifies the kind of problem. It's an identifier, not a link, and it's the same every time this problem occurs.","example":"urn:nullplatform:error:routes-helper:invalid-params"},"title":{"type":"string","description":"A short, human-readable summary of the problem.","example":"There are invalid parameters on the request"},"status":{"type":"integer","description":"The HTTP status code of the response.","example":400},"code":{"type":"string","description":"A stable, machine-readable error code. Use it to handle specific errors in your integrations.","example":"ROUTES_HELPER.INVALID_PARAMS"},"detail":{"type":"string","nullable":true,"description":"More information about what went wrong in this request, when available.","example":null},"errors":{"type":"array","description":"One entry per invalid field or parameter. Only present on validation errors.","items":{"type":"object","properties":{"field":{"type":"string","description":"The name of the invalid field or parameter.","example":"application_id"},"in":{"type":"string","description":"Where the field was sent: `body`, `query`, or `params` (path parameters).","example":"query"},"issue":{"type":"string","description":"What's wrong with the field, such as `required` or `invalid`.","example":"invalid"},"value":{"description":"The value that was sent, when relevant.","example":"not-a-number"},"message":{"type":"string","description":"A human-readable explanation of the issue."}}}},"message":{"type":"string","deprecated":true,"description":"Same value as `title`, kept for backward compatibility. Use `title` or `code` instead.","example":"There are invalid parameters on the request"},"traceId":{"type":"string","description":"An identifier for this request, when available. Include it when you contact nullplatform support."}}}}}},"5XX":{"description":"Something went wrong on nullplatform's side. The body is a problem details object (RFC 9457).","content":{"application/problem+json":{"schema":{"type":"object","description":"Describes what went wrong, following the RFC 9457 problem details format.","required":["type","title","status"],"properties":{"type":{"type":"string","description":"A URI that identifies the kind of problem. It's an identifier, not a link, and it's the same every time this problem occurs.","example":"about:blank"},"title":{"type":"string","description":"A short, human-readable summary of the problem.","example":"Oops.. there was an internal error"},"status":{"type":"integer","description":"The HTTP status code of the response.","example":500},"code":{"type":"string","description":"A stable, machine-readable error code. Use it to handle specific errors in your integrations."},"detail":{"type":"string","nullable":true,"description":"More information about what went wrong in this request, when available.","example":null},"message":{"type":"string","deprecated":true,"description":"Same value as `title`, kept for backward compatibility. Use `title` or `code` instead.","example":"Oops.. there was an internal error"},"traceId":{"type":"string","description":"An identifier for this request, when available. Include it when you contact nullplatform support."}}}}}}}}
>

</StatusCodes>

