Skip to main content
PATCH
/
monitors
/
keywords
/
{id}
Update keyword monitor
curl --request PATCH \
  --url https://xquik.com/api/v1/monitors/keywords/{id} \
  --header 'Content-Type: <content-type>' \
  --header 'x-api-key: <api-key>' \
  --data '
{
  "eventTypes": [
    "<string>"
  ],
  "isActive": true
}
'

Documentation Index

Fetch the complete documentation index at: https://docs.xquik.com/llms.txt

Use this file to discover all available pages before exploring further.

Free - does not consume credits
curl -X PATCH https://xquik.com/api/v1/monitors/keywords/21 \
  -H "x-api-key: xq_YOUR_KEY_HERE" \
  -H "Content-Type: application/json" \
  -d '{
    "eventTypes": ["tweet.new", "tweet.reply"],
    "isActive": true
  }' | jq
The Node.js, Python, and Go examples convert the updated keyword monitor into one state row. Store keyword_monitor_id, query, event_types, is_active, next_billing_at, verify_endpoint, and events_endpoint before resuming alerts or webhook checks.

Path parameters

id
string
required
The unique keyword monitor ID.

Headers

x-api-key
string
required
Your API key. Session cookie authentication is also supported. Generate a key from the dashboard.
Content-Type
string
required
Must be application/json.

Body

At least 1 field is required.
eventTypes
string[]
Updated array of event types. Must contain at least 1 valid keyword monitor type: tweet.new, tweet.quote, tweet.reply, tweet.retweet, tweet.media, tweet.link, tweet.poll, tweet.mention, tweet.hashtag, tweet.longform.
isActive
boolean
Set to false to pause monitoring, or true to resume. Paused keyword monitors do not consume hourly monitor credits.
The monitored query is immutable. Delete this monitor and create another one to track a different query.

Update handoff

Use this endpoint when a keyword alert changes scope, needs a temporary pause, or must resume without creating a new monitor ID.

Returned State

Store returned id, query, eventTypes, isActive, createdAt, and nextBillingAt as the current keyword monitor configuration.

Event Filter

eventTypes replaces the current filter. Keep webhook subscriptions aligned with the monitor event types you expect to deliver.

Pause Monitoring

isActive: false pauses keyword polling, stored events, future webhook deliveries, and hourly monitor billing for this monitor.

Resume Monitoring

isActive: true resumes polling for matching future tweets. Check nextBillingAt, then run Test Webhook before relying on production alerts.

Query Change

PATCH cannot change query. Delete this monitor and create a new keyword monitor when the X search query changes.

Downstream Join

Keep using keywordMonitorId and query from List Events to reconcile stored events and signed webhook payloads after the update.

Response

id
string
Unique keyword monitor ID.
query
string
Normalized X search query.
eventTypes
string[]
Updated event types.
isActive
boolean
Current active status after update.
createdAt
string
ISO 8601 creation timestamp.
nextBillingAt
string
Next hourly credit charge time for active monitor billing.
{
  "id": "21",
  "query": "xquik api",
  "eventTypes": ["tweet.new", "tweet.reply"],
  "isActive": true,
  "createdAt": "2026-02-24T10:30:00.000Z",
  "nextBillingAt": "2026-02-24T11:30:00.000Z"
}
Related: Get Keyword Monitor to verify state, or Delete Keyword Monitor to remove it.
Last modified on May 20, 2026