# delete_webhook_delivery

Source: https://modulify.ai/docs/api/webhooks/delete-webhook-delivery

Hides a single delivery record from a site's webhook delivery log.

- Title: Remove one delivery from the log
- Scope: `config:write`
- Access: Destructive
- Endpoint: `POST /v1/delete_webhook_delivery`

The delivery stops appearing in `list_webhook_deliveries` and in the counts of `get_webhook_delivery_stats`. A record holds the request body Modulify sent, the response status code and any error, so reach for this when a stored request body carries something somebody does not want kept.

The row is flagged rather than erased and is removed for good 30 days after it is hidden, or at once when the webhook is deleted. It changes the record only, since the call itself already happened, but a delivery that was still being retried is not tried again. See [Webhooks](https://modulify.ai/docs/automations/webhooks#read-the-delivery-log).

## Request

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

Over MCP, the same method is the [delete_webhook_delivery tool](https://modulify.ai/docs/mcp/webhooks/delete-webhook-delivery).

## Inputs

| Input | Type | Required | Description |
| --- | --- | --- | --- |
| `projectId` | string | Yes | The site id. |
| `deliveryId` | string | Yes | The delivery id from `list_webhook_deliveries`. |

## 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.