---
id: inbox-rule-read
title: Read an inbox rule
description: >-
  Returns one inbox rule. For a built-in rule your organization edited, it
  returns your edited version.
sidebar_label: Read an inbox rule
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-read'
---
<Heading
  as={"h1"}
  className={"openapi__heading"}
  children={"Read an inbox rule"}
>
</Heading>

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

</MethodEndpoint>

Returns one inbox rule. For a built-in rule your organization edited, it returns your edited version.

<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 requested inbox rule.","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>

