> ## Documentation Index
> Fetch the complete documentation index at: https://docs.anivahealth.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Resend Delivery

> Send a webhook delivery again

Send a delivery again, whatever its status. Aniva sends the same event with the same `webhook-id`
and restarts the retry schedule.

> [!NOTE]
>
> Requires the `webhooks_manage` scope.

## Request

### Path parameters

**id** `string` *required*

Webhook identifier (UUID).

**delivery\_id** `string` *required*

Delivery identifier (UUID), from [List Deliveries](/api/webhooks/list-deliveries).

## Response

On success, the API returns `202 Accepted` with the delivery. Its `status` is `pending`.

**id** `string` *required*

Delivery identifier (UUID). One delivery sends one event to one webhook.

**event** `object` *required*

The event exactly as sent in the request body. See [Payload](/concepts/webhooks#payload).

**status** `string` *required*

`pending`, `succeeded`, `failed` (all attempts failed or the endpoint answered `410 Gone`) or
`cancelled` (the webhook was disabled while it was pending).

**attempt\_count** `integer` *required*

Attempts made so far. A resend starts again at `0`.

**next\_attempt\_at** `string`

ISO 8601 UTC instant of the next attempt. `null` when no attempt is planned.

**last\_attempt\_at** `string`

ISO 8601 UTC instant of the last attempt. May be `null`.

**last\_response\_status** `integer`

HTTP status of the last attempt. `null` when no response arrived, for example on a timeout.

**last\_error** `string`

A network error, or the status and the start of the response body. `null` after a success.

**attempts** `object[]` *required*

The last 20 attempts, oldest first. Each has `at`, `status` (HTTP status or `null`), `duration_ms`
and `error`.

**created\_at** `string` *required*

ISO 8601 UTC instant the delivery was created.

## Error responses

| Status | Description |
| - | - |
| `400` | Invalid request. See the `error` message. |
| `401` | Invalid API key. |
| `403` | No API key, or an API key without the `webhooks_manage` scope. |
| `404` | Webhook or delivery not found, or the webhook belongs to another API key. |
| `409` | An attempt of this delivery is running: try again in two minutes. Or the webhook is disabled: enable it first. |
| `500` | Internal server error. |

```bash cURL theme={null}
curl --request POST \
  --url https://anivahealth.com/api/v1/webhooks/4a6c8e0f-2b4d-4f6a-8c0e-2a4c6e8f0b1d/deliveries/7c9e1a3b-5d7f-4b2d-9e4a-6c8e0a2b4d6f/resend \
  --header 'x-api-key: YOUR_API_KEY'
```

```json 202 theme={null}
{
  "id": "7c9e1a3b-5d7f-4b2d-9e4a-6c8e0a2b4d6f",
  "event": {
    "id": "0b8e6f3a-2c4d-4e7f-9a1b-3c5d7e9f1a2b",
    "type": "appointment.confirmed",
    "timestamp": "2026-10-15T09:12:44.512Z",
    "data": {
      "object": "appointment",
      "id": "c9f3e2a1-7d6b-4c5e-b3a2-1f0e9d8c7b6a",
      "url": "https://anivahealth.com/api/v1/appointments/c9f3e2a1-7d6b-4c5e-b3a2-1f0e9d8c7b6a",
      "status": "confirmed",
      "previous_status": "pending",
      "status_revision": 2
    }
  },
  "status": "pending",
  "attempt_count": 0,
  "next_attempt_at": "2026-10-16T10:00:00.000Z",
  "last_attempt_at": "2026-10-15T09:13:06.000Z",
  "last_response_status": 204,
  "last_error": null,
  "attempts": [
    {
      "at": "2026-10-15T09:13:01.000Z",
      "status": 503,
      "duration_ms": 412,
      "error": "HTTP 503: Service Unavailable"
    },
    {
      "at": "2026-10-15T09:13:06.000Z",
      "status": 204,
      "duration_ms": 88,
      "error": null
    }
  ],
  "created_at": "2026-10-15T09:13:00.000Z"
}
```

```json 404 theme={null}
{
  "error": "Delivery not found"
}
```

```json 409 theme={null}
{
  "error": "An attempt is running. Try again in two minutes."
}
```


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.