# delete_site_email_suppression

Source: https://modulify.ai/docs/api/emails/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.

- Title: Unblock an email address of a site
- Scope: `config:write`
- Access: Destructive
- Endpoint: `POST /v1/delete_site_email_suppression`

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](https://modulify.ai/docs/automations/emails#automatic-switch-off) 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](https://modulify.ai/docs/automations/emails#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.

> **Warning**
>
> This method is marked destructive: it deletes or overwrites data. Check the inputs before you call it, and send an [Idempotency-Key](https://modulify.ai/docs/api/idempotency) header whenever you might retry it.

```bash
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](https://modulify.ai/docs/mcp/emails/delete-site-email-suppression).

## 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](https://modulify.ai/docs/api/requests-and-responses#the-response) 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](https://modulify.ai/docs/api/requests-and-responses#headers-on-every-method-call) 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](https://modulify.ai/docs/api/errors) explains every status code a call can answer with.