---
updatedAt: 2026-09-17T21:36:07.000Z
agentTools:
  projectIndex: https://docs.observeinc.com/llms.txt
---

# Create a monitor mute

# OpenAPI definition

````json
{
  "openapi": "3.1.0",
  "info": {
    "title": "Observe API",
    "description": "# Overview\nWelcome to the Observe API Docs!\n\nThe Observe API is a RESTful API. POST bodies and responses are typically JSON-encoded.\n\n## Authentication\nRequests to the Observe API are authenticated with an API token. The token can be supplied using HTTP Bearer authentication:\n```\n// passing token as bearer token\ncurl -H \"Authorization: Bearer <customerid> <token>\" https://<customerid>.<observe-domain>.com/v1/...\n```\n",
    "version": "1.0.230307"
  },
  "servers": [
    {
      "url": "https://{customerid}.observeinc.com",
      "description": "US west server",
      "variables": {
        "customerid": {
          "default": "OBSERVE_CUSTOMERID",
          "description": "The customer ID for your instance."
        }
      }
    },
    {
      "url": "https://{customerid}.{cluster}.observeinc.com",
      "description": "Specific regional cluster (prod)",
      "variables": {
        "customerid": {
          "default": "OBSERVE_CUSTOMERID",
          "description": "The customer ID for your instance."
        },
        "cluster": {
          "enum": [
            "eu-1",
            "ap-1"
          ],
          "default": "eu-1",
          "description": "For regional clusters, choose one."
        }
      }
    },
    {
      "url": "https://{customerid}.{domain}.com",
      "description": "Specific Observe server",
      "variables": {
        "customerid": {
          "default": "OBSERVE_CUSTOMERID",
          "description": "The customer ID for your instance."
        },
        "domain": {
          "default": "OBSERVE_DOMAIN",
          "description": "The Observe domain for your instance."
        }
      }
    }
  ],
  "security": [
    {
      "bearerAuth": []
    }
  ],
  "tags": [
    {
      "name": "MonitorMute",
      "x-displayName": "Monitor Mute",
      "description": "Manage monitor mute rules. Mute rules suppress alert notifications for one or more monitors during a defined time window. Learn more about [monitor mute rules](https://docs.observeinc.com/docs/mute-a-monitor).\n"
    }
  ],
  "paths": {
    "/v1/monitor-mutes": {
      "post": {
        "summary": "Create a monitor mute",
        "operationId": "CreateMonitorMute",
        "tags": [
          "MonitorMute"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/MonitorMute-CreateRequest"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Monitor mute created successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MonitorMute-Resource"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/ErrorResponse-400"
          },
          "401": {
            "$ref": "#/components/responses/ErrorResponse-401"
          },
          "403": {
            "$ref": "#/components/responses/ErrorResponse-403"
          },
          "429": {
            "$ref": "#/components/responses/ErrorResponse-429"
          },
          "5XX": {
            "$ref": "#/components/responses/ErrorResponse-5XX"
          }
        }
      }
    }
  },
  "components": {
    "securitySchemes": {
      "bearerAuth": {
        "type": "http",
        "scheme": "bearer",
        "bearerFormat": "Authorization: Bearer <customerid> <apitoken>\n"
      }
    },
    "schemas": {
      "ObjectId": {
        "type": "string",
        "format": "ObjectId"
      },
      "User": {
        "title": "User",
        "type": "object",
        "required": [
          "id"
        ],
        "properties": {
          "id": {
            "title": "User Identifier",
            "$ref": "#/components/schemas/ObjectId"
          },
          "label": {
            "title": "User Label",
            "type": "string"
          },
          "timezone": {
            "type": "string"
          },
          "locale": {
            "type": "string"
          }
        }
      },
      "ErrorMessage": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "description": "A stable, machine-readable identifier for the kind of error."
          },
          "message": {
            "type": "string",
            "description": "Error message"
          }
        },
        "required": [
          "type",
          "message"
        ]
      },
      "Time": {
        "type": "string",
        "format": "RFC3339"
      },
      "NullableTime": {
        "type": [
          "string",
          "null"
        ],
        "format": "RFC3339"
      },
      "Monitor-Brief": {
        "title": "MonitorBrief",
        "type": "object",
        "description": "Brief monitor metadata included when a reference is expanded.",
        "required": [
          "name",
          "label",
          "description"
        ],
        "properties": {
          "name": {
            "type": "string",
            "description": "Name of the monitor, unique within its workspace.\n"
          },
          "label": {
            "type": "string",
            "deprecated": true,
            "description": "Same as `name`. Deprecated; read `name` instead."
          },
          "description": {
            "type": [
              "string",
              "null"
            ],
            "description": "The monitor's description. Null when no description is configured."
          }
        }
      },
      "Monitor-Ref": {
        "title": "MonitorRef",
        "type": "object",
        "description": "Reference to a monitor. Always carries the `id`. The `record` field is\npopulated with brief metadata only when `expand=true`.\n",
        "required": [
          "id"
        ],
        "properties": {
          "id": {
            "$ref": "#/components/schemas/ObjectId"
          },
          "record": {
            "$ref": "#/components/schemas/Monitor-Brief"
          }
        }
      },
      "MonitorMute-TargetKind": {
        "title": "MonitorMuteTargetKind",
        "type": "string",
        "description": "`Global` suppresses all monitors (requires a non-empty `filter`). `Monitors` targets a specific set of monitors by ID.\n",
        "enum": [
          "Global",
          "Monitors"
        ]
      },
      "MonitorMute-Target": {
        "title": "MonitorMuteTarget",
        "description": "Describes which monitors this mute rule applies to. `monitors` is always present: empty when `kind` is `Global`, non-empty when `kind` is `Monitors`.\n",
        "type": "object",
        "required": [
          "kind",
          "monitors"
        ],
        "properties": {
          "kind": {
            "$ref": "#/components/schemas/MonitorMute-TargetKind"
          },
          "monitors": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Monitor-Ref"
            }
          }
        }
      },
      "MonitorMute-ScheduleKind": {
        "title": "MonitorMuteScheduleKind",
        "type": "string",
        "description": "`OneTime` defines a fixed window with an explicit start and optional end. `Recurring` fires on a cron schedule for a specified duration.\n",
        "enum": [
          "OneTime",
          "Recurring"
        ]
      },
      "MonitorMute-OneTime": {
        "title": "MonitorMuteOneTime",
        "description": "A one-time mute window. Always fully populated in responses.",
        "type": "object",
        "required": [
          "startTime",
          "endTime"
        ],
        "properties": {
          "startTime": {
            "$ref": "#/components/schemas/Time",
            "description": "Start of the mute window."
          },
          "endTime": {
            "$ref": "#/components/schemas/NullableTime",
            "description": "End of the mute window. `null` means until manually deleted."
          }
        }
      },
      "MonitorMute-CronSchedule": {
        "title": "MonitorMuteCronSchedule",
        "type": "object",
        "required": [
          "rawCron",
          "timezone"
        ],
        "properties": {
          "rawCron": {
            "type": "string",
            "description": "POSIX 5-field cron expression (`minute hour day-of-month month day-of-week`). No seconds field, no year field, no Quartz extensions, no `@daily`-style macros. Fields support `*` (any), `,` (list), `-` (range), and `/` (step). The server rejects expressions outside this dialect with `invalid_schedule`. Examples: `0 2 * * *` (daily at 02:00), `0 9-17 * * 1-5` (every hour 09:00–17:00 Mon–Fri), `0-59/15 * * * *` (every 15 min).\n"
          },
          "timezone": {
            "type": "string",
            "description": "IANA timezone name. Example: \"America/Los_Angeles\"."
          }
        }
      },
      "MonitorMute-Recurring": {
        "title": "MonitorMuteRecurring",
        "description": "A recurring mute window driven by a cron schedule.",
        "type": "object",
        "required": [
          "cronSchedule",
          "durationSeconds"
        ],
        "properties": {
          "cronSchedule": {
            "$ref": "#/components/schemas/MonitorMute-CronSchedule"
          },
          "durationSeconds": {
            "type": "integer",
            "format": "int64",
            "minimum": 1,
            "description": "Wall-clock length of each fired window in seconds. Must be at least 1."
          }
        }
      },
      "MonitorMute-Schedule": {
        "title": "MonitorMuteSchedule",
        "description": "Discriminated schedule. Both `oneTime` and `recurring` are always present in responses; the inactive sibling is `null`.\n",
        "type": "object",
        "required": [
          "kind",
          "oneTime",
          "recurring"
        ],
        "properties": {
          "kind": {
            "$ref": "#/components/schemas/MonitorMute-ScheduleKind"
          },
          "oneTime": {
            "description": "Populated when `kind` is `OneTime`; `null` otherwise.",
            "oneOf": [
              {
                "$ref": "#/components/schemas/MonitorMute-OneTime"
              },
              {
                "type": "null"
              }
            ]
          },
          "recurring": {
            "description": "Populated when `kind` is `Recurring`; `null` otherwise.",
            "oneOf": [
              {
                "$ref": "#/components/schemas/MonitorMute-Recurring"
              },
              {
                "type": "null"
              }
            ]
          }
        }
      },
      "MonitorMute-Resource": {
        "title": "MonitorMuteResource",
        "description": "A mute rule suppresses alert notifications during a defined time window. Use `target.kind: Global` to mute all monitors, or `target.kind: Monitors` to target a specific set.\n",
        "type": "object",
        "required": [
          "id",
          "label",
          "description",
          "target",
          "schedule",
          "filter",
          "startTime",
          "endTime",
          "createdBy",
          "createdAt",
          "updatedBy",
          "updatedAt"
        ],
        "properties": {
          "id": {
            "$ref": "#/components/schemas/ObjectId"
          },
          "label": {
            "type": "string",
            "description": "Human-readable name for this mute rule."
          },
          "description": {
            "type": [
              "string",
              "null"
            ],
            "description": "Free-form description. `null` when unset."
          },
          "target": {
            "$ref": "#/components/schemas/MonitorMute-Target"
          },
          "schedule": {
            "$ref": "#/components/schemas/MonitorMute-Schedule"
          },
          "filter": {
            "type": [
              "string",
              "null"
            ],
            "description": "Optional CEL boolean expression evaluated against each fired alarm row at notification time. `null` means every firing is suppressed. Required and non-empty when `target.kind` is `Global` to prevent accidental fleet-wide suppression. Example: `level == \"Critical\" && context[\"service\"] == \"payments\"`.\n"
          },
          "startTime": {
            "$ref": "#/components/schemas/NullableTime",
            "description": "Computed start of the current or next active window. For `OneTime` schedules this mirrors `schedule.oneTime.startTime`. For `Recurring` schedules this is the next computed firing time. `null` between recurring windows.\n"
          },
          "endTime": {
            "$ref": "#/components/schemas/NullableTime",
            "description": "Computed end of the current or next active window. For `OneTime` schedules this mirrors `schedule.oneTime.endTime` (`null` for open-ended mutes). For `Recurring` schedules this is `startTime + durationSeconds`.\n"
          },
          "createdBy": {
            "$ref": "#/components/schemas/User"
          },
          "createdAt": {
            "$ref": "#/components/schemas/Time"
          },
          "updatedBy": {
            "$ref": "#/components/schemas/User"
          },
          "updatedAt": {
            "$ref": "#/components/schemas/Time"
          }
        }
      },
      "MonitorMute-TargetInput": {
        "title": "MonitorMuteTargetInput",
        "description": "Input shape for a mute target. `kind` is optional in PATCH — if provided it must match the existing value since `kind` is immutable after creation. `monitors` is required and non-empty when `kind` is `Monitors`; omit or leave empty when `kind` is `Global`.\n",
        "type": "object",
        "properties": {
          "kind": {
            "$ref": "#/components/schemas/MonitorMute-TargetKind"
          },
          "monitors": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Monitor-Ref"
            }
          }
        }
      },
      "MonitorMute-OneTimeInput": {
        "title": "MonitorMuteOneTimeInput",
        "description": "Input shape for a one-time schedule. `startTime` is required. Omit `endTime` or pass `null` to create an open-ended mute.\n",
        "type": "object",
        "required": [
          "startTime"
        ],
        "properties": {
          "startTime": {
            "$ref": "#/components/schemas/Time",
            "description": "Start of the mute window."
          },
          "endTime": {
            "$ref": "#/components/schemas/NullableTime",
            "description": "End of the mute window. Omit or pass `null` for open-ended."
          }
        }
      },
      "MonitorMute-RecurringInput": {
        "title": "MonitorMuteRecurringInput",
        "description": "Input shape for a recurring schedule. Mirrors `MonitorMute-Recurring`; kept separate so server-computed response fields can be added to the response type without widening the write contract.\n",
        "type": "object",
        "required": [
          "cronSchedule",
          "durationSeconds"
        ],
        "properties": {
          "cronSchedule": {
            "$ref": "#/components/schemas/MonitorMute-CronSchedule"
          },
          "durationSeconds": {
            "type": "integer",
            "format": "int64",
            "minimum": 1,
            "description": "Wall-clock length of each fired window in seconds. Must be at least 1."
          }
        }
      },
      "MonitorMute-ScheduleInput": {
        "title": "MonitorMuteScheduleInput",
        "description": "Input shape for a schedule. `kind` is required; send only the sibling matching `kind` (`oneTime` or `recurring`).\n",
        "type": "object",
        "required": [
          "kind"
        ],
        "properties": {
          "kind": {
            "$ref": "#/components/schemas/MonitorMute-ScheduleKind"
          },
          "oneTime": {
            "$ref": "#/components/schemas/MonitorMute-OneTimeInput"
          },
          "recurring": {
            "$ref": "#/components/schemas/MonitorMute-RecurringInput"
          }
        }
      },
      "MonitorMute-CreateRequest": {
        "title": "MonitorMuteCreateRequest",
        "type": "object",
        "required": [
          "label",
          "target",
          "schedule"
        ],
        "properties": {
          "label": {
            "type": "string"
          },
          "description": {
            "type": "string",
            "description": "Free-form description. Omit to leave blank."
          },
          "target": {
            "$ref": "#/components/schemas/MonitorMute-TargetInput"
          },
          "schedule": {
            "$ref": "#/components/schemas/MonitorMute-ScheduleInput"
          },
          "filter": {
            "type": "string",
            "description": "CEL boolean expression evaluated against each fired alarm row. Required and non-empty when `target.kind` is `Global` (prevents accidental fleet-wide suppression). When `target.kind` is `Monitors`, omit to suppress all firings for those monitors unconditionally. Example: `level == \"Critical\" && context[\"service\"] == \"payments\"`.\n"
          }
        }
      }
    },
    "responses": {
      "ErrorResponse-400": {
        "description": "Bad request",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ErrorMessage"
            }
          }
        }
      },
      "ErrorResponse-401": {
        "description": "Unauthorized",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ErrorMessage"
            }
          }
        }
      },
      "ErrorResponse-403": {
        "description": "Forbidden",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ErrorMessage"
            }
          }
        }
      },
      "ErrorResponse-429": {
        "description": "Rate limit reached",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ErrorMessage"
            }
          }
        }
      },
      "ErrorResponse-5XX": {
        "description": "Internal server error",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ErrorMessage"
            }
          }
        }
      }
    }
  }
}
````