Unblock an email address of a site
delete_site_email_suppression
Takes one address, or one whole domain blocked by hand, off a site's blocked list, so the site emails it again from the next message on.
It needs the Delete projects permission in the workspace. The tool tells the client to say what unblocking means before doing it. An address that bounced for good, or whose owner marked the site's email as spam, is on the list for a reason, and emailing it again is exactly what pushes the bounce and spam rates up, until sending is turned off for the whole site on its own.
The tool tells the client to remove one only when you know the address works now or that the report was a mistake, for example once a mistyped address has been corrected in your own records. Nothing else changes: the messages already sent keep the status they have, and the address lands straight back on the list the moment the next message to it bounces or gets reported. See Blocked addresses.
Request
Call it with a POST to https://api.modulify.ai/v1/delete_site_email_suppression, sending the inputs below as a JSON object. The token needs the config:write scope.
This method is marked destructive: it deletes or overwrites data. Check the inputs before you call it, and send an Idempotency-Key header whenever you might retry it.
curl -X POST https://api.modulify.ai/v1/delete_site_email_suppression \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{"projectId":"PROJECT_ID","suppressionId":"SUPPRESSION_ID"}'Over MCP, the same method is the delete_site_email_suppression tool.
Inputs
| Input | Type | Required | Description |
|---|---|---|---|
projectId |
string | Yes | The site id. |
suppressionId |
string | Yes | The id of the blocked address or domain, its _id in list_site_email_suppressions. |
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.