Monitor Health API
Returns a single monitor's current status, degradation flag, and cursor position, for building your own health dashboard. Cost: Free per call.
GET monitor/{id}/health returns the current health snapshot for one monitor: its status (active or paused), a degraded flag indicating the shared poll pool is running slower than the published interval, the current poll_interval_ms, a running events_possibly_missed count, and the last_tweet_id and last_poll_at cursor values. It costs 0 credits and takes no parameters beyond the monitor id.
Authorization
bearerAuth Pass your API key as a bearer token on every request: Authorization: Bearer <API_KEY>.
In: header
Response Body
application/json
application/json
application/json
application/json
application/json
application/json
application/json
curl -X GET "https://example.com/monitor/{id}/health"{ "id": "b6f2c1a4-9e3d-4c11-8a2f-7d5e6c9b0a11", "status": "active", "degraded": false, "poll_interval_ms": 120000, "events_possibly_missed": 0, "last_tweet_id": "1899999999999999999", "last_poll_at": "2026-08-13T11:58:00.000Z"}{ "error": "bad_request", "message": "Missing or malformed parameter. Fix the request before retrying."}{ "error": "unauthorized", "message": "The API key is missing, malformed, or revoked. Check the Authorization header."}{ "error": "insufficient_credits", "message": "Your balance is exhausted. Top up your credits to continue."}{ "error": "not_found", "message": "The resource does not exist, for example a deleted tweet or a private account."}{ "error": "rate_limited", "message": "Too many requests. Back off and retry with exponential backoff."}{ "error": "server_error", "message": "Something failed on our side. Retry with backoff; if it persists, contact support."}Pricing
| Unit | Price |
|---|---|
| Per call | Free |
When to use
Use this endpoint to check a single monitor's current poll status, cursor position, and degradation flag when building a health dashboard or alerting on stalled polling. Use the monitor list or monitor deliveries endpoints instead when you need status across all monitors or the actual delivered tweet payloads rather than one monitor's health snapshot.
Notes
- Replace {id} with the monitor's id.
- 404 not_found if the id does not exist or belongs to a different API key.
Related endpoints
- Create Monitor: Watch an X account for new posts and push them to your webhook(s).
- List Monitors: List every monitor on your account.
FAQ
What does the degraded flag actually mean, and should I do anything when it's true?
degraded is true when the shared poll pool is serving this monitor slower than its published poll_interval_ms, which means events may arrive later than expected and events_possibly_missed can start climbing. It is a signal to check back or lower your expectations on delivery latency, not an error state you need to fix on your end.
Does calling this endpoint cost credits or affect my monitor's poll cadence?
No. The cost is 0, and this is a read-only status check, it does not touch poll_interval_ms or reset events_possibly_missed. You can poll it as often as you like to drive a dashboard without any usage impact.
Overview
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.
Test Webhook POST
Sends a single HMAC-signed test event to this webhook's URL right now and returns the outcome synchronously. Unlike a real monitor event, a test send is never queued, retried, or dead-lettered: it is a one-shot diagnostic so you can confirm your endpoint and signature verification both work before relying on the webhook. Cost: Free per call.