Update Monitor
Pause, resume, change detection tier, toggle replies, or repoint a monitor at a different webhook without recreating it. Resuming re-baselines from now on.
/twitter/monitor/updateChange an existing monitor in place: pause it, resume it, switch tier, toggle replies, or send it to a different webhook.
Headers
| Header | Type | Required | Description |
|---|---|---|---|
Authorization | string | Yes | Bearer YOUR_API_KEY, the same key used for every other GetXAPI endpoint |
Content-Type | string | Yes | application/json |
Request Body
| Field | Type | Required | Description |
|---|---|---|---|
monitor_id | string | Yes | UUID of the monitor to change |
action | string | No | pause or resume |
tier | string | No | standard or fast |
webhook_id | string | No | Repoint deliveries to a different webhook |
include_replies | boolean | No | Turn reply delivery on or off |
At least one of action, tier, webhook_id, or include_replies is required. You can combine them in a single call.
Notes
- Pausing does not free a plan slot. A paused monitor stops delivering but still holds its slot, because your configuration is kept intact for when you resume. To free a slot, use Remove monitor.
resumere-baselines. Tweets posted while the monitor was paused are not replayed. Resuming starts fresh from the account's current newest tweet, exactly like adding a monitor for the first time.resumealso revives a monitor suspended by a plan lapse (statusdisabled). The revival re-checks your current plan's quota — on a smaller plan than before, reviving past the limit returns403 QUOTA_EXCEEDED. If the monitor wasfastbut your current plan doesn't include fast detection, it resumes atstandard.- Changing
tiertakes effect on the next poll cycle. - Repointing
webhook_idaffects future deliveries only. Deliveries already queued or retrying still go to the old webhook.
Pausing is not a way to buffer tweets. Nothing is stored while paused. If you need continuity, leave the monitor running and filter on your side.
Response (200)
{
"monitor_id": "b7e2c910-4f38-4a5d-9c81-2e6a7f0d3b45",
"status": "active",
"requested_tier": "fast",
"include_replies": false,
"webhook_id": "8f14e45f-ceea-467a-9f2b-1c3d4e5f6a7b"
}Response Fields
| Field | Type | Description |
|---|---|---|
monitor_id | string | The monitor that was changed |
status | string | active or paused after the change |
requested_tier | string | Tier after the change |
include_replies | boolean | Reply setting after the change |
webhook_id | string | Webhook after the change |
Rate limit
30 requests per minute for most updates, but 20 requests per minute for action: "resume".
Resume is stricter because it re-reads the account from X to set a fresh start point, while pause, tier changes, and webhook changes only touch our database. The two draw on separate allowances, so heavy pausing does not eat into your resume budget.
Limits use a fixed 60-second window and are shared across every API key on your account, so creating extra keys does not raise the ceiling. Every response carries RateLimit-Limit, RateLimit-Remaining, and RateLimit-Reset; a 429 adds Retry-After. See rate limits for the full table.
Errors
| Status | Code | Meaning |
|---|---|---|
400 | n/a | monitor_id missing or invalid, no fields to change, or an invalid tier / action |
403 | n/a | Monitoring is not enabled for this account |
403 | QUOTA_EXCEEDED | Reviving a suspended monitor would exceed your current plan's limit |
404 | n/a | No monitor with that ID on your account, or the target webhook_id doesn't exist |
429 | n/a | Rate limit exceeded. Wait retry_after seconds, then retry |
502 | BASELINE_FAILED | Couldn't read the timeline to re-baseline on resume. Retry |
Examples
Pause:
curl -X POST https://api.getxapi.com/twitter/monitor/update \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "monitor_id": "b7e2c910-4f38-4a5d-9c81-2e6a7f0d3b45", "action": "pause" }'Upgrade to fast and start delivering replies, in one call:
curl -X POST https://api.getxapi.com/twitter/monitor/update \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"monitor_id": "b7e2c910-4f38-4a5d-9c81-2e6a7f0d3b45",
"tier": "fast",
"include_replies": true
}'List MonitorsNew
List every X/Twitter account you are monitoring, with detection tier, status, webhook, the last tweet delivered and a rolling 24-hour match count per monitor.
Remove MonitorNew
Stop watching an X/Twitter account and free the plan slot it was using. Removed monitors can be re-added later and will re-baseline from the newest tweet.