---
title: "Check Rule Silence"
method: POST
path: "/notifications/rules/silence-check"
tags: ["notification-rules"]
---

# Check Rule Silence

`POST /notifications/rules/silence-check`

## Request

- Base URL: `https://api-docs.upsmith.com` (the document declares no server; this is the origin it was published from)
- URL: `https://api-docs.upsmith.com/notifications/rules/silence-check`
- Auth: one of:
  - API key in header `x-api-key`
  - HTTP bearer

What a proposed version of a rule would stop telling anybody about.

Organization admin for the same reason as ``/preview``, which it is built on: it runs a
caller-supplied document against this organization's real escalations and calls. It stores
nothing and decides nothing -- a change it warns about is still the author's to make.

## Headers

- `organization-id` string, nullable
- `x-user-id` string, nullable
- `timezone` string
- `x-actor-email` string, nullable
- `x-request-source` string, nullable
- `x-operation-id` string, nullable
- `x-commit-message` string, nullable
- `x-confirmation-id` string, nullable
- `x-chat-id` string, nullable

## Request body

- RuleSilenceCheckRequest: A proposed version of a rule, to be judged against what this organization's events do now. ``rule_key`` null says the change creates a rule, which can only add reach. ``event_types`` is required and is what the **proposed** version would be keyed to, so a check can tell an edit that keeps the event type from one that drops it. It is required because the two readings are opposite: an omitted list would say the rule is keyed to nothing any more, which reports every event it alone covered as silenced -- the loudest possible warning for a caller that merely forgot a field. Unknown types are refused the way the save that follows refuses them.
  - `rule_key` string, nullable
  - `decision` object, required
  - `event_types` string[], required
  - `limit` integer

## Response `200`

Successful Response

- RuleSilenceCheckResponse: One check per previewable event type the rule is in service for. Empty means the question does not arise -- a new rule, or a chain with no version in service -- rather than "nothing would be silenced", which is a check with ``silenced`` 0.
  - `checks` RuleSilenceCheck[]
    - `event_type` string, required
    - `considered` integer, required
    - `silenced` integer, required
    - `inconclusive` integer, required
    - `delayed` integer
    - `shortest_delay_minutes` integer, nullable
    - `headline` string, nullable
    - `delayed_headline` string, nullable
    - `examples` RuleSilenceExample[]
      - `subject_id` string, required
      - `occurred_at` string, date-time, required
      - `description` string, required
    - `delayed_examples` RuleSilenceExample[]
      - `subject_id` string, required
      - `occurred_at` string, date-time, required
      - `description` string, required

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/upsmith/apis/upsmith-api.md) - [All operations](https://skmtc.dev/upsmith/apis/upsmith-api/llms.txt) - [OpenAPI document](https://skmtc.dev/upsmith/apis/upsmith-api/revisions/cce8b07a5787?raw)
