Webhooks
Resend Delivery
Send a webhook delivery again
POST
/
api
/
v1
/
webhooks
/
{id}
/
deliveries
/
{delivery_id}
/
resend
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'
{
"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"
}
{
"error": "Delivery not found"
}
{
"error": "An attempt is running. Try again in two minutes."
}
Send a delivery again, whatever its status. Aniva sends the same event with the same
webhook-id
and restarts the retry schedule.
Requires the
webhooks_manage scope.Request
Path parameters
string
required
Webhook identifier (UUID).
string
required
Delivery identifier (UUID), from List Deliveries.
Response
On success, the API returns202 Accepted with the delivery. Its status is pending.
string
required
Delivery identifier (UUID). One delivery sends one event to one webhook.
string
required
pending, succeeded, failed (all attempts failed or the endpoint answered 410 Gone) or
cancelled (the webhook was disabled while it was pending).integer
required
Attempts made so far. A resend starts again at
0.string
ISO 8601 UTC instant of the next attempt.
null when no attempt is planned.string
ISO 8601 UTC instant of the last attempt. May be
null.integer
HTTP status of the last attempt.
null when no response arrived, for example on a timeout.string
A network error, or the status and the start of the response body.
null after a success.object[]
required
The last 20 attempts, oldest first. Each has
at, status (HTTP status or null), duration_ms
and error.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. |
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'
{
"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"
}
{
"error": "Delivery not found"
}
{
"error": "An attempt is running. Try again in two minutes."
}
⌘I
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'
{
"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"
}
{
"error": "Delivery not found"
}
{
"error": "An attempt is running. Try again in two minutes."
}