Enable or disable a webhook
toggle_site_webhook
Turns one webhook on a site on or off without deleting it.
A disabled webhook keeps its configuration and delivery history but stops receiving events, which makes this the way to pause a noisy endpoint. A delivery still waiting for a retry gives up at its next attempt while the webhook is off.
Modulify also switches a webhook off on its own after 20 deliveries in a row have used up all their attempts. Turning one back on resets that count and clears the reason in Disabled_Reason. The webhook comes back with its destination as Host only. See Webhooks.
Request
Call it with a POST to https://api.modulify.ai/v1/toggle_site_webhook, sending the inputs below as a JSON object. The token needs the config:write scope.
It makes changes, so send an Idempotency-Key header whenever you might retry it. A retry with the same key gets the first answer back instead of running again.
curl -X POST https://api.modulify.ai/v1/toggle_site_webhook \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{"projectId":"PROJECT_ID","webhookId":"WEBHOOK_ID","enabled":true}'Over MCP, the same method is the toggle_site_webhook tool.
Inputs
| Input | Type | Required | Description |
|---|---|---|---|
projectId |
string | Yes | The site id. |
webhookId |
string | Yes | The webhook id from list_site_webhooks. |
enabled |
boolean | Yes | True to turn it on, false to turn it off. |
Response
Every call answers with the JSON envelope of success, message, data, code and version. data holds the result described above, and on a method that returns a total, count carries it. The response headers carry the call's X-Request-Id and what is left of your per-minute budget in X-RateLimit-Limit, X-RateLimit-Remaining and X-RateLimit-Reset. Errors explains every status code a call can answer with.