---
title: "Update a monitor (goal, assertions, sampling, alerts, enable/disable)"
method: PATCH
path: "/api/monitor/{id}"
tags: ["Monitoring"]
---

# Update a monitor (goal, assertions, sampling, alerts, enable/disable)

`PATCH /api/monitor/{id}`

## Request

- Base URL: `https://api.wordis-bond.com`
- URL: `https://api.wordis-bond.com/api/monitor/{id}`
- Auth: HTTP bearer

A supplied `alertWebhookUrl` must be a public https URL and is SSRF-validated at set time.

## Path parameters

- `id` string, uuid, required

## Request body

- MonitorInput: A production monitor. `scenarioGoal` (+ optional `assertions` / `rubric`) is what the judge scores each call against — the same inputs a test suite uses. `sampleRate` and the plan monthly cap bound cost.
  - `name` string, required
  - `scenarioGoal` string, required
  - `assertions` string[]: Optional natural-language checks the agent must satisfy.
  - `rubric` string, nullable: Optional free-text rubric appended to the judge instructions.
  - `language` string
  - `enabled` boolean
  - `sampleRate` number: Fraction of ingested calls to score.
  - `baselineWindow` integer: Rolling-window size for the health baseline.
  - `minBaseline` integer: Scored events required before drift can fire.
  - `alertEmail` boolean
  - `alertWebhookUrl` string, uri, nullable: Optional signed outbound alert webhook. Public https, SSRF-validated at set time.

## Response `200`

Updated

- object
  - `data` Monitor, required: A monitor as returned — never includes the ingest secret (read it from /secret).
    - `name` string, required
    - `scenarioGoal` string, required
    - `assertions` string[]: Optional natural-language checks the agent must satisfy.
    - `rubric` string, nullable: Optional free-text rubric appended to the judge instructions.
    - `language` string
    - `enabled` boolean
    - `sampleRate` number: Fraction of ingested calls to score.
    - `baselineWindow` integer: Rolling-window size for the health baseline.
    - `minBaseline` integer: Scored events required before drift can fire.
    - `alertEmail` boolean
    - `alertWebhookUrl` string, uri, nullable: Optional signed outbound alert webhook. Public https, SSRF-validated at set time.
    - `id` string, uuid, required
    - `health` 'unknown' | 'healthy' | 'degraded' | 'critical', required
    - `createdAt` string, date-time
  - `error` union, required
    - object
    - string

## Other responses

- `402`: The plan does not permit this action, or the monthly quota is spent with no overage (e.g. a starter plan attempting a PSTN run). Body carries an upgrade hint; see GET /api/billing/plans.
- `404`: The resource does not exist or is not owned by the tenant.
- `422`: The request body failed validation.

---

[API](https://skmtc.dev/wordis-bond/apis/word-is-bond-voice-agent-testing-api.md) · [All operations](https://skmtc.dev/wordis-bond/apis/word-is-bond-voice-agent-testing-api/llms.txt) · [OpenAPI document](https://skmtc.dev/wordis-bond/apis/word-is-bond-voice-agent-testing-api/revisions/66c2d5480d84?raw)
