X Account Monitoring API | Webhooks for New Posts
Monitoring: Watch an X account for new posts and get them pushed to your own webhook, HMAC-signed, retried for 21 minutes on failure. Polls on a shared interval and never spends your read credits: monitor and webhook management are free account administration, not metered reads.
Watch an X account for new posts and get them pushed to your own webhook, HMAC-signed, retried for 21 minutes on failure. Polls on a shared interval and never spends your read credits: monitor and webhook management are free account administration, not metered reads.
This category has 15 endpoints. Each is a pay-per-call REST endpoint with bearer auth, JSON in and out.
| Method | Path | Cost | Description |
|---|---|---|---|
POST | /monitor | Free | Watch an X account for new posts and push them to your webhook(s). |
GET | /monitor | Free | List every monitor on your account. |
POST | /monitor/{id} | Free | Pause, resume, or change which webhooks a monitor delivers to. |
DELETE | /monitor/{id} | Free | Stop watching an account and remove the monitor. |
GET | /monitor/{id}/health | Free | Check one monitor's poll status and last-seen tweet id. |
GET | /monitor/health | Free | Account-wide monitoring rollup: service status, active/paused counts, 24h delivery outcomes, in one call. |
GET | /monitor/deliveries | Free | Recent delivery events across every monitor, with real detection and delivery latency. |
POST | /oapi/x_user_stream/add_user_to_monitor_tweet | Free | x_user_stream-shaped drop-in for Create Monitor. |
POST | /oapi/x_user_stream/remove_user_to_monitor_tweet | Free | x_user_stream-shaped drop-in for Delete Monitor. |
GET | /oapi/x_user_stream/get_user_to_monitor_tweet | Free | x_user_stream-shaped drop-in for List Monitors. |
POST | /webhook | Free | Register a URL to receive monitor events. |
GET | /webhook | Free | List every webhook on your account. |
POST | /webhook/{id}/test | Free | Fire one real signed test delivery and see the result immediately. |
POST | /webhook/{id}/redrive | Free | Re-send deliveries that were dead-lettered while your endpoint was down. |
DELETE | /webhook/{id} | Free | Remove a webhook. |
Create Monitor
Watch an X account for new posts and push them to your webhook(s).
List Monitors
List every monitor on your account.
Update Monitor
Pause, resume, or change which webhooks a monitor delivers to.
Delete Monitor
Stop watching an account and remove the monitor.
Monitor Health
Check one monitor's poll status and last-seen tweet id.
Account Monitor Health
Account-wide monitoring rollup: service status, active/paused counts, 24h delivery outcomes, in one call.
Monitor Deliveries
Recent delivery events across every monitor, with real detection and delivery latency.
Compat: Add User to Tweet Monitoring
x_user_stream-shaped drop-in for Create Monitor.
Compat: Remove User from Tweet Monitoring
x_user_stream-shaped drop-in for Delete Monitor.
Compat: List Tweet-Monitored Users
x_user_stream-shaped drop-in for List Monitors.
Create Webhook
Register a URL to receive monitor events.
List Webhooks
List every webhook on your account.
Test Webhook
Fire one real signed test delivery and see the result immediately.
Replay Dead Deliveries
Re-send deliveries that were dead-lettered while your endpoint was down.
Delete Webhook
Remove a webhook.
Delete Article POST
Delete an article you own, identified by its entity id. A Draft is hard-deleted directly. A Published article is unpublished first (reverting it to Draft) and then its announcement tweet is deleted, which is what makes it stop being publicly reachable, a two-step reversal for Publish Article. Pass lifecycle and tweet_id as optional fast-path hints when you already know them (from a prior list/create response); omitted, the server resolves them itself by scanning your Draft then Published lists, costing a couple of extra round trips. Requires a registered session. Billed at $0.0008 per call. Cost: $0.0008 per call.
List Monitors GET
Returns every non-deleted monitor on your account, most recently created first. Each entry includes its id, subject, status, and delivery configuration, so you can enumerate what already exists before creating, updating, or deleting a specific monitor. Cost: Free per call.