---
title: "Update Monitor"
method: POST
path: "/v1/monitors/{monitor_id}/update"
tags: ["Monitor"]
---

# Update Monitor

`POST /v1/monitors/{monitor_id}/update`

Update a monitor.

Only fields explicitly included in the request body are changed. Pass
`null` for `webhook` or `metadata` to clear those fields. Pass `type` and
`settings` to update type-specific settings on an `event_stream` monitor.
At least one field must be provided. Cancelled monitors cannot be updated.

## Path parameters

- `monitor_id` string, required

## Request body

- UpdateMonitorRequest — Request body to update a monitor. Only fields that are explicitly included in the request body are updated. Pass `null` for `webhook` or `metadata` to clear those fields. To update type-specific settings on an `event_stream` monitor, include `type` and `settings`; pass `settings.query` to update the prompt, or `null` for `settings.advanced_settings` to clear it. If `settings` is provided, `type` is required to identify the settings shape. The request must still include at least one field to update; empty updates fail validation.
  - `type` 'event_stream' | 'snapshot', nullable — Type of the monitor being updated. Required when `settings` is provided; must be `event_stream` (snapshot monitors have no updatable type-specific settings).
  - `frequency` string, nullable — Frequency of the monitor. Format: '<number><unit>' where unit is 'h' (hours), 'd' (days), or 'w' (weeks). Must be between 1h and 30d (inclusive).
  - `webhook` MonitorWebhook — Webhook configuration for a monitor.
    - `url` string, required — URL for the webhook.
    - `event_types` string[] — Event types to send the webhook notifications for.
  - `metadata` object, nullable — User-provided metadata stored with the monitor and echoed back in webhook notifications and GET responses, so you can map events to objects in your application. Keys: max 16 chars; values: max 512 chars.
  - `settings` UpdateMonitorEventStreamSettings — Type-specific update settings for an `event_stream` monitor.
    - `query` string, nullable — Updated search query for the monitor. Use this for minor updates to prompts and instructions only. Major changes to the query may lead to unexpected results in change detection, as the monitor compares new results with what was previously seen.
    - `advanced_settings` AdvancedMonitorSettings — Advanced monitor configuration.
      - `source_policy` SourcePolicy — Source policy for web search results. This policy governs which sources are allowed/disallowed in results.
        - `include_domains` string[] — List of domains to restrict the results to. If specified, only sources from these domains will be included. Accepts plain domains (e.g., example.com, subdomain.example.gov) or bare domain extension starting with a period (e.g., .gov, .edu, .co.uk). The combined number of domains in include_domains and exclude_domains cannot exceed 200.
        - `exclude_domains` string[] — List of domains to exclude from results. If specified, sources from these domains will be excluded. Accepts plain domains (e.g., example.com, subdomain.example.gov) or bare domain extension starting with a period (e.g., .gov, .edu, .co.uk). The combined number of domains in include_domains and exclude_domains cannot exceed 200.
        - `after_date` string, date, nullable — Optional start date for filtering search results. Results will be limited to content published on or after this date. Provided as an RFC 3339 date string (YYYY-MM-DD).
      - `location` string, nullable — ISO 3166-1 alpha-2 country code for geo-targeted monitor results.

## Response `200`

Monitor updated successfully.

- MonitorResponse — Response object for a monitor. The `type` field at the root determines the concrete shape of `settings`: `event_stream` uses `MonitorEventStreamResponseSettings`, and `snapshot` uses `MonitorSnapshotResponseSettings`. Snapshot monitors also carry an `output` field (`MonitorSnapshotOutput`) with the latest computed state.
  - `type` 'event_stream' | 'snapshot', required — The type of monitor.
  - `monitor_id` string, required — ID of the monitor.
  - `status` 'active' | 'cancelled', required — Status of the monitor.
  - `frequency` string, required — Frequency of the monitor. Format: '<number><unit>' where unit is 'h' (hours), 'd' (days), or 'w' (weeks). Must be between 1h and 30d (inclusive).
  - `processor` 'lite' | 'base', required — Processor to use for the monitor. `lite` is faster and cheaper; `base` performs more thorough analysis at higher cost and latency. Defaults to `lite`.
  - `webhook` MonitorWebhook — Webhook configuration for a monitor.
    - `url` string, required — URL for the webhook.
    - `event_types` string[] — Event types to send the webhook notifications for.
  - `metadata` object, nullable — User-provided metadata stored with the monitor and echoed back in webhook notifications and GET responses, so you can map events to objects in your application. Keys: max 16 chars; values: max 512 chars.
  - `created_at` string, date-time, required — Timestamp of the creation of the monitor, as an RFC 3339 string.
  - `last_run_at` string, nullable — Timestamp of the last run for the monitor, as an RFC 3339 string.
  - `settings` union, required — Type-specific configuration. Shape is determined by `type`: `MonitorEventStreamResponseSettings` for `event_stream`, `MonitorSnapshotResponseSettings` for `snapshot`.
    - MonitorEventStreamResponseSettings — Type-specific response fields for an `event_stream` monitor.
      - `query` string, required — The search query being monitored.
      - `output_schema` JsonSchema — JSON schema for a task input or output.
        - `json_schema` object, required — A JSON Schema object. Only a subset of JSON Schema is supported.
        - `type` 'json' — The type of schema being defined. Always `json`.
      - `include_backfill` boolean, nullable — If true, the first execution returns a sample of recent historical events matching the query (preview only — not exhaustive). If false or omitted, only events from the monitor's creation date onward are returned. Subsequent executions are always incremental.
      - `advanced_settings` AdvancedMonitorSettings — Advanced monitor configuration.
        - `source_policy` SourcePolicy — Source policy for web search results. This policy governs which sources are allowed/disallowed in results.
          - `include_domains` string[] — List of domains to restrict the results to. If specified, only sources from these domains will be included. Accepts plain domains (e.g., example.com, subdomain.example.gov) or bare domain extension starting with a period (e.g., .gov, .edu, .co.uk). The combined number of domains in include_domains and exclude_domains cannot exceed 200.
          - `exclude_domains` string[] — List of domains to exclude from results. If specified, sources from these domains will be excluded. Accepts plain domains (e.g., example.com, subdomain.example.gov) or bare domain extension starting with a period (e.g., .gov, .edu, .co.uk). The combined number of domains in include_domains and exclude_domains cannot exceed 200.
          - `after_date` string, date, nullable — Optional start date for filtering search results. Results will be limited to content published on or after this date. Provided as an RFC 3339 date string (YYYY-MM-DD).
        - `location` string, nullable — ISO 3166-1 alpha-2 country code for geo-targeted monitor results.
    - MonitorSnapshotResponseSettings — Configuration settings for a `snapshot` monitor.
      - `task_run_id` string, required — ID of the task run used as the monitoring baseline.
      - `query` string, required — The original task input from the baseline task run that this monitor tracks.
      - `output_schema` JsonSchema — JSON schema for a task input or output.
        - `json_schema` object, required — A JSON Schema object. Only a subset of JSON Schema is supported.
        - `type` 'json' — The type of schema being defined. Always `json`.
  - `output` MonitorSnapshotOutput — Runtime output state for a `snapshot` monitor.
    - `latest_snapshot` union — Task run output from the most recent completed execution of this snapshot monitor — same structure as the output of the original task run the monitor was created from. `null` until the first run completes.
      - TaskRunTextOutput — Output from a task that returns text.
        - `basis` FieldBasis[], required — Basis for the output. The basis has a single field 'output'.
          - `field` string, required — Name of the output field.
          - `citations` Citation[] — List of citations supporting the output field.
            - `title` string, nullable — Title of the citation.
            - `url` string, required — URL of the citation.
            - `excerpts` string[], nullable — Excerpts from the citation supporting the output. Only certain processors provide excerpts.
          - `reasoning` string, required — Reasoning for the output field.
          - `confidence` string, nullable — Confidence level for the output field. Only certain processors provide confidence levels.
        - `type` 'text', required — The type of output being returned, as determined by the output schema of the task spec.
        - `mcp_tool_calls` McpToolCall[], nullable — MCP tool calls made by the task.
          - `tool_call_id` string, required — Identifier for the tool call.
          - `server_name` string, required — Name of the MCP server.
          - `tool_name` string, required — Name of the tool being called.
          - `arguments` string, required — Arguments used to call the MCP tool.
          - `content` string, nullable — Output received from the tool call, if successful.
          - `error` string, nullable — Error message if the tool call failed.
        - `beta_fields` object, nullable — Deprecated. mcp-server-2025-07-17 is now included directly in the output (e.g. mcp_tool_calls).
        - `content` string, required — Text output from the task.
      - TaskRunJsonOutput — Output from a task that returns JSON.
        - `basis` FieldBasis[], required — Basis for each top-level field in the JSON output. Per-list-element basis entries are available only when the `parallel-beta: field-basis-2025-11-25` header is supplied.
          - `field` string, required — Name of the output field.
          - `citations` Citation[] — List of citations supporting the output field.
            - `title` string, nullable — Title of the citation.
            - `url` string, required — URL of the citation.
            - `excerpts` string[], nullable — Excerpts from the citation supporting the output. Only certain processors provide excerpts.
          - `reasoning` string, required — Reasoning for the output field.
          - `confidence` string, nullable — Confidence level for the output field. Only certain processors provide confidence levels.
        - `type` 'json', required — The type of output being returned, as determined by the output schema of the task spec.
        - `mcp_tool_calls` McpToolCall[], nullable — MCP tool calls made by the task.
          - `tool_call_id` string, required — Identifier for the tool call.
          - `server_name` string, required — Name of the MCP server.
          - `tool_name` string, required — Name of the tool being called.
          - `arguments` string, required — Arguments used to call the MCP tool.
          - `content` string, nullable — Output received from the tool call, if successful.
          - `error` string, nullable — Error message if the tool call failed.
        - `beta_fields` object, nullable — Deprecated. mcp-server-2025-07-17 is now included directly in the output (e.g. mcp_tool_calls).
        - `content` object, required — Output from the task as a native JSON object, as determined by the output schema of the task spec.
        - `output_schema` object, nullable — Output schema for the Task Run. Populated only if the task was executed with an auto schema.

## Other responses

- `401` — Unauthorized: invalid or missing credentials
- `404` — Monitor not found
- `422` — Unprocessable content: request validation error

---

[API](https://skmtc.net/parallel-web/apis/parallel-api.md) · [All operations](https://skmtc.net/parallel-web/apis/parallel-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/parallel-web/parallel-api/versions/973957d74ceb/schema)
