List Webhooks API
Returns every non-deleted webhook on your account. Never returns the signing secret; that is shown once, at creation. Cost: Free per call.
GET webhook lists every non-deleted webhook registered on the caller's twitterapis.com account. It returns a webhooks array (each entry with id, url, status, and created_at) plus a count field showing how many webhooks were returned. The call takes no parameters, costs 0 credits, and never includes the signing secret, which is shown only once at creation time.
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
curl -X GET "https://example.com/webhook"{ "webhooks": [ { "id": "e4a1f9c2-3b7d-4a88-9f1e-2c6d8b4a5e10", "url": "https://example.com/webhooks/twitterapis", "status": "active", "created_at": "2026-08-13T10:00:00.000Z" } ], "count": 1}{ "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": "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 GET webhook to enumerate all webhooks currently registered on your account, for example to audit active endpoints or check a webhook's status before deciding whether to create or delete one. Reach for it instead of a status-check on a single webhook ID when you need the full list, since this endpoint takes no parameters and always returns every non-deleted webhook.
Notes
- The signing secret is never included here; if you lost it, delete the webhook and create a new one.
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
Does this endpoint return the webhook signing secret?
No. The signing secret is returned once, at the moment the webhook is created, and is never included in the response from GET webhook. If you lose it, you need to delete and recreate the webhook to get a new one.
Does listing webhooks cost anything?
No. This endpoint has a cost of 0, so you can poll it as often as needed to check webhook status or count without consuming request credits.
Compat: List Tweet-Monitored Users GET
An x_user_stream-shaped response envelope for listing monitored users, backed by the same monitor rows GET /twitter/monitor returns. Honest field mapping, not fabricated: our monitors table stores no numeric Twitter user id and no separate display name, so x_user_id is always null and x_user_name/x_user_screen_name both carry the handle we actually store. is_monitor_profile (profile-change monitoring) is not a capability this API has -- always 0, never reported as on. Cost: Free per call.
Create Webhook POST
Register your HTTPS endpoint to receive signed monitor events. The signing secret is returned exactly once in this response; store it immediately, it cannot be retrieved again. Cost: Free per call.