Modulify

Send a test webhook

test_site_webhook

Sends a publish.succeeded test payload to one webhook endpoint so you can confirm it is wired up.

POST /v1/test_site_webhookScopeconfig:writeMakes changes

It makes a real outbound call to your endpoint, with the webhook's own URL, payload type and signing secret. It fires even when the webhook is switched off or does not subscribe to publish.succeeded.

The call succeeds whether or not the endpoint accepted it. It returns delivered, the response status and any error, so read those rather than treating success as proof the endpoint is healthy. The message reads Test event delivered successfully. or Test event sent, but the endpoint did not accept it.

Every test is recorded in the delivery log, failed or not, and a failed test is never retried. Tests do not count toward the webhook's sent and failed totals or toward switching it off automatically. See Webhooks.

Request

Call it with a POST to https://api.modulify.ai/v1/test_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/test_site_webhook \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"projectId":"PROJECT_ID","webhookId":"WEBHOOK_ID"}'

Over MCP, the same method is the test_site_webhook tool.

Inputs

Input Type Required Description
projectId string Yes The site id.
webhookId string Yes The webhook to test, by its id from list_site_webhooks.

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.