---
id: inbox-rule-deactivate
title: Deactivate an inbox rule
description: >-
  Deactivates one of your organization's inbox rules: it stops sending right
  away and frees one of your slots. Notifications it already sent stay in
  people's inboxes.
sidebar_label: Deactivate an inbox rule
hide_title: true
hide_table_of_contents: true
api: >-
  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
sidebar_class_name: delete api-method
info_path: docs/api/communications
custom_edit_url: null
canonical: 'https://docs.nullplatform.com/docs/api/inbox-rule-deactivate'
---
<Heading
  as={"h1"}
  className={"openapi__heading"}
  children={"Deactivate an inbox rule"}
>
</Heading>

<MethodEndpoint
  method={"delete"}
  path={"/communications/inbox_rule/{id}"}
  context={"endpoint"}
>

</MethodEndpoint>

Deactivates one of your organization's inbox rules: it stops sending right away and frees one of your slots. Notifications it already sent stay in people's inboxes.

To activate it again, update it with `"status": "active"`. Built-in rules and the built-in rules your organization edited can't be deactivated this way.

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

<ParamsDetails
  parameters={[{"in":"path","name":"id","required":true,"schema":{"type":"string","minLength":1,"maxLength":120},"description":"The ID of the inbox rule, like `acme.security_finding` or `deployment.failed`.","example":"acme.security_finding"}]}
>

</ParamsDetails>

<RequestSchema
  title={"Body"}
  body={undefined}
>

</RequestSchema>

<StatusCodes
  id={undefined}
  label={undefined}
  responses={{"200":{"description":"The deactivated inbox rule, with `status` set to `deprecated`.","content":{"application/json":{"schema":{"title":"InboxRule","type":"object","properties":{"id":{"type":"string","description":"The ID of the inbox rule.","example":"acme.security_finding"},"organization_id":{"type":"integer","nullable":true,"description":"Your organization's ID for its own rules, or `null` for a built-in rule.","example":1},"publisher":{"type":"string","description":"Who published the rule: `organization` for your organization's rules.","example":"organization"},"status":{"type":"string","enum":["active","deprecated"],"description":"Whether the rule is active. `deprecated` means deactivated.","example":"active"},"document":{"title":"InboxRuleDefinition","type":"object","description":"The definition of an inbox rule. The main fields are listed here. For every field, including conditions, delays, and batching, read the schema from `GET /communications/inbox_rule/schema`.\n","required":["id","source","category","severity","audience"],"additionalProperties":true,"properties":{"id":{"type":"string","pattern":"^[a-z_]+\\.[a-z_]+$","description":"Lowercase words with exactly one dot. It also identifies the rule in inbox settings, and it can't change later.\n\n> ℹ️ **Note:** It can't start with `platform.`. Using a built-in rule's ID edits that rule for your organization.\n","example":"acme.security_finding"},"status":{"type":"string","enum":["active","deprecated"],"description":"Whether the rule is active. Defaults to `active`. `deprecated` means deactivated.","example":"active"},"source":{"description":"What makes the rule fire:\n\n- `{ \"kind\": \"invoked\" }`: your code calls the emission endpoint.\n- A source name, like `\"deployment\"`: the entity changes status in nullplatform. See `GET /communications/inbox_rule/source`.\n- `{ \"kind\": \"stale\", ... }`: an entity stays in a status for too long.\n","oneOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"example":{"kind":"invoked"}},"context_schema":{"type":"object","additionalProperties":true,"description":"A JSON Schema for the data each send carries. An invoked rule must require `id`, because sends are idempotent by it.","example":{"type":"object","required":["id","service","owner_id"],"properties":{"id":{"type":"string"},"service":{"type":"string"},"summary":{"type":"string"},"owner_id":{"type":"integer"}}}},"category":{"type":"object","description":"How the rule shows up in inbox settings. All six fields are required.","required":["group","label","description","configurable","allows_all","default_mode"],"properties":{"group":{"type":"string","description":"The group the rule is listed under in inbox settings.","example":"security"},"label":{"type":"string","description":"The rule's name in inbox settings.","example":"Security findings"},"description":{"type":"string","maxLength":70,"description":"One line on what the rule announces.","example":"Vulnerabilities your CI scanners report."},"configurable":{"type":"boolean","description":"Whether people can change their mode for this rule.","example":true},"allows_all":{"type":"boolean","description":"Whether people can choose **Everything** for this rule under a resource. Requires `configurable`.","example":true},"default_mode":{"type":"string","enum":["off","involved","all"],"description":"What people get until they change it.","example":"involved"}}},"severity":{"type":"string","enum":["informational","maintenance","degraded","outage"],"description":"Sets the icon and the color of the notification.","example":"degraded"},"audience":{"type":"array","description":"One entry per reading. Each entry is a separate notification with its own wording.","items":{"type":"object","required":["as","action","content"],"additionalProperties":true,"properties":{"as":{"type":"string","description":"The name of this reading.","example":"owner"},"who":{"type":"object","additionalProperties":true,"description":"Who receives this reading: `{ \"user\": \"${{ context.owner_id }}\" }` for a user from the context, or `{ \"can\": \"approval_request:approve\" }` for everyone who holds that action on the resource. Without `who`, only the people who chose **Everything** receive it.","example":{"user":"${{ context.owner_id }}"}},"action":{"type":"string","description":"The rule's ID, or an ID that starts with it.","example":"acme.security_finding"},"content":{"type":"object","required":["title"],"properties":{"title":{"type":"string","description":"The notification's title. Accepts templates like `${{ context.service }}` and inline Markdown.","example":"Security finding on ${{ context.service }}"},"body":{"type":"string","description":"The notification's body. Accepts templates, inline Markdown, links, and lists.","example":"${{ context.summary }}"}}},"fallback":{"type":"object","additionalProperties":true,"description":"Another reading, with the same fields, for when `who` resolves nobody."}}}},"visible_to":{"type":"array","maxItems":1,"items":{"type":"string"},"description":"The one NRN the rule applies under. Defaults to your organization. Sends for resources outside it are refused.","example":["organization=1:account=2"]}}},"created_at":{"type":"string","format":"date-time","description":"When the rule was created.","example":"2026-10-20T14:03:11.000Z"},"updated_at":{"type":"string","format":"date-time","description":"When the rule was last updated.","example":"2026-10-20T14:03:11.000Z"},"organization_state":{"type":"object","description":"Only on built-in rules, in the list: how the rule stands in your organization.","properties":{"enabled":{"type":"boolean","description":"Whether the rule is on for your organization.","example":true},"customized":{"type":"boolean","description":"Whether your organization edited the rule.","example":false},"linked":{"type":"array","items":{"type":"string"},"description":"Built-in rules that turn on and off together with this one.","example":[]},"replaced_by":{"type":"string","nullable":true,"description":"The ID of your rule that takes this one's place, if any.","example":null}}}}}}}},"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>

