Use POST /monitors when a queue, CRM, warehouse, Slack alert, or agent needs real-time tweet alerts from one X account. Create the monitor first, then create a signed webhook with POST /webhooks and test it with POST /webhooks/{id}/test.
Monitor ID
Store id as monitorId for GET /events, updates, pauses, and deletes.
Stored Account
Store username after trimming the @ prefix and xUserId for identity
joins, dedupe, and downstream account mapping.
Event Filter
Store eventTypes; subscribe webhooks to matching event types so expected
account activity delivers.
Active State
Read isActive and nextBillingAt before enabling alerts or estimating
hourly monitor burn.
Stored Event Join
Use monitorType: "account", monitorId, and username from GET /events
to join stored events back to the monitored account.
Webhook Delivery Join
Use deliveryId for receiver idempotency and streamEventId to join the
signed webhook back to GET /events/{id}. Store eventType, occurredAt,
and data with the downstream job.
Active account monitors check every 1 second and cost 21 credits per active monitor-hour. Creation or reactivation requires 22 available credits: 1 credit for the username lookup plus 21 credits for the first active monitor hour. Pause with PATCH /monitors/{id} and { "isActive": false } when the alert should stop.
At least 22 available credits are required for the username lookup and first active monitor hour. Possible errors include no_credits and insufficient_credits.
{ "error": "user_not_found", "message": "X user not found" }
The specified X username does not exist or could not be resolved.