---
title: "Update Monitor"
method: POST
path: "/monitor/{id}"
tags: ["Monitoring"]
---

# Update Monitor

`POST /monitor/{id}`

## Request

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

Partial update of an existing monitor. Send status to pause or resume it, webhook_ids to change which webhooks receive its events, or both in the same call (applied atomically). Resuming a paused monitor re-runs the same capacity and per-account cap checks as creating a new one, since it adds load back to monitoring capacity. Cost: Free per call.

## Path parameters

- `id` string, required

## Request body

- object
  - `status` string: "active" to resume, "paused" to pause. Omit to leave status unchanged.
  - `webhook_ids` string[]: Array of webhook ids to restrict delivery to. Send an empty array to clear the restriction back to "deliver to every active webhook". Omit the field entirely to leave it unchanged.
  - `domain_filter` string: A bare hostname or full URL to restrict delivery to. Send null or an empty string to clear an existing filter (deliver every new post again). Omit the field entirely to leave it unchanged. Same normalization and hostname-shape validation as Create Monitor.
  - `include_replies` boolean: `true` to deliver the account's replies as well as its own posts, `false` to hold replies back. Omit the field entirely to leave it unchanged. Same boolean-only validation as Create Monitor: a non-boolean is a 400 rather than a coercion.

## Response `200`

Pause, resume, or change which webhooks a monitor delivers to.

- object
  - `id` string: The monitor's id.
  - `subject` string: The monitor's query expression, e.g. from:elonmusk.
  - `kind` string: Monitor type.
  - `status` string: "active" or "paused" after the update.
  - `degraded` boolean: Whether monitoring is currently serving this monitor slower than the published interval.
  - `events_possibly_missed` integer: Running count of possibly-missed events, never reset by an update.
  - `webhook_ids` string[], nullable: The current restriction set, or null for the default (deliver to all).
  - `domain_filter` string, nullable: The current normalized domain filter after this update, or null if none is set (deliver every new post).
  - `updated_at` string: ISO 8601 timestamp of this update.

## Other responses

- `400`: Bad request
- `401`: Unauthorized
- `404`: Not found
- `429`: Rate limited
- `5XX`: Server error

---

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