---
id: inbox-rule-list
title: List inbox rules
description: >-
  Lists the built-in inbox rules and your organization's own, active and
  deactivated.
sidebar_label: List inbox rules
hide_title: true
hide_table_of_contents: true
api: >-
  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
sidebar_class_name: get api-method
info_path: docs/api/communications
custom_edit_url: null
canonical: 'https://docs.nullplatform.com/docs/api/inbox-rule-list'
---
<Heading
  as={"h1"}
  className={"openapi__heading"}
  children={"List inbox rules"}
>
</Heading>

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

</MethodEndpoint>

Lists the built-in inbox rules and your organization's own, active and deactivated.

Built-in rules also carry `organization_state`: whether the rule is on for your organization and whether you edited it.

<ParamsDetails
  parameters={undefined}
>

</ParamsDetails>

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

</RequestSchema>

<StatusCodes
  id={undefined}
  label={undefined}
  responses={{"200":{"description":"The built-in inbox rules and your organization's own.","content":{"application/json":{"schema":{"type":"object","properties":{"results":{"type":"array","description":"Every inbox rule visible to your organization, sorted by ID.","items":{"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>

