Delete Webhook
Remove a webhook destination from your GetXAPI account. Webhooks that still have active monitors attached must be repointed or removed before deletion.
/twitter/monitor/webhook/deleteRemove a webhook. Its signing secret is destroyed and it can no longer receive deliveries.
Headers
| Header | Type | Required | Description |
|---|---|---|---|
Authorization | string | Yes | Bearer YOUR_API_KEY, the same key used for every other GetXAPI endpoint |
Content-Type | string | Yes | application/json |
Parameters
| Field | Type | Required | Description |
|---|---|---|---|
webhook_id | string | Yes | UUID of the webhook to delete. Accepted in the request body or as a query parameter. |
Notes
- A webhook with active monitors attached cannot be deleted. You'll get
409 WEBHOOK_IN_USE. Repoint those monitors with Update monitor or remove them first. This is deliberate: silently orphaning monitors would stop deliveries with no visible cause. - Deletion is permanent. The signing secret is gone; recreating the same URL issues a new secret.
- Deleting a webhook does not free plan slots. Slots are held by monitors. See Remove monitor.
If your HTTP client can't send a body with DELETE, pass it as a query parameter instead, ?webhook_id=…, or use POST /twitter/monitor/webhook/delete, which is accepted on the same route and behaves identically.
Response (200)
{ "status": "deleted", "webhook_id": "8f14e45f-ceea-467a-9f2b-1c3d4e5f6a7b" }Rate limit
10 requests per minute, shared across both verbs. POST and DELETE to this path draw on the same allowance, so alternating between them does not double it.
Limits use a fixed 60-second window and are shared across every API key on your account, so creating extra keys does not raise the ceiling. Every response carries RateLimit-Limit, RateLimit-Remaining, and RateLimit-Reset; a 429 adds Retry-After. See rate limits for the full table.
Errors
| Status | Code | Meaning |
|---|---|---|
400 | n/a | webhook_id missing or not a valid UUID |
403 | n/a | Monitoring is not enabled for this account |
404 | n/a | No webhook with that ID on your account |
409 | WEBHOOK_IN_USE | Active monitors still deliver here. Repoint or remove them first |
429 | n/a | Rate limit exceeded. Wait retry_after seconds, then retry |
Example
curl -X DELETE https://api.getxapi.com/twitter/monitor/webhook/delete \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "webhook_id": "8f14e45f-ceea-467a-9f2b-1c3d4e5f6a7b" }'Or with the ID in the query string:
curl -X DELETE "https://api.getxapi.com/twitter/monitor/webhook/delete?webhook_id=8f14e45f-ceea-467a-9f2b-1c3d4e5f6a7b" \
-H "Authorization: Bearer YOUR_API_KEY"Test WebhookNew
Send a real HMAC-signed test payload to your webhook and get back the HTTP status your server returned. Verify your integration before live tweets depend on it.
Add MonitorNew
Start watching an X/Twitter account and receive every new tweet at your webhook within seconds. Pick 15-second standard or 2-second fast detection, no polling.