---
title: "Update stream monitor"
method: PATCH
path: "/v1/twitter/stream/monitors/{monitor_id}"
tags: ["Stream Monitors"]
---

# Update stream monitor

`PATCH /v1/twitter/stream/monitors/{monitor_id}`

Update an existing stream monitor. All fields are optional; only provided fields will be updated. Use status field to pause or resume monitoring.

## Path parameters

- `monitor_id` string, required

## Request body

- object
  - `name` string — Updated name for the stream monitor.
  - `usernames` string[] — Updated list of Twitter usernames to monitor.
  - `status` 'active' | 'paused' — Set monitor status. Use "paused" to stop monitoring and "active" to resume.
  - `webhook_url` string, nullable — Updated webhook URL. Set to null to remove webhook delivery.
  - `webhook_secret` string, nullable — Updated webhook secret. Set to null to remove.
  - `filter_types` string[], nullable — Updated tweet type filter. Set to null to deliver all types.

## Response `200`

Stream monitor updated successfully.

- StreamMonitorResponse — Stream monitor configuration and status.
  - `id` string, required — Unique stream monitor identifier.
  - `name` string, required — Human-readable name of the monitor.
  - `usernames` string[], required — List of monitored Twitter usernames.
  - `status` 'active' | 'paused' | 'suspended', required — Current status of the monitor. Suspended indicates the monitor was auto-paused due to insufficient credits.
  - `status_reason` string, nullable — Reason for the current status, if applicable (e.g., "insufficient_credits").
  - `webhook_url` string, nullable — HTTPS URL receiving webhook deliveries.
  - `webhook_secret_set` boolean — Whether a webhook secret is configured. The actual secret is never returned.
  - `filter_types` string[], nullable — Tweet types being delivered. Null means all types.
  - `credits_per_account_per_day` number — Credit cost per monitored account per day.
  - `estimated_credits_per_day` number — Estimated total credit cost per day based on current account count.
  - `pricing_tier` string — Current pricing tier label.
  - `created_at` string, date-time, required — Timestamp when the monitor was created.
  - `updated_at` string, date-time, required — Timestamp when the monitor was last updated.

## Other responses

- `401` — Authentication failed. The API key is missing, invalid, or expired.
- `402` — Insufficient credits. Your account balance has been exhausted. Purchase more credits at https://scrapebadger.com/dashboard/billing.
- `429` — Rate limit exceeded. Too many requests in a given time period. Implement exponential backoff and retry.

---

[API](https://skmtc.dev/scrapebadger/apis/scrapebadger-account-api.md) · [All operations](https://skmtc.dev/scrapebadger/apis/scrapebadger-account-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/scrapebadger/scrapebadger-account-api/revisions/4a1ef8777baf/schema)
