---
title: "Recover Failed Webhooks"
method: POST
path: "/api/v1/app/{app_id}/endpoint/{endpoint_id}/recover"
tags: ["Endpoint"]
---

# Recover Failed Webhooks

`POST /api/v1/app/{app_id}/endpoint/{endpoint_id}/recover`

## Request

- Base URL: `https://api.eu.svix.com`
- URL: `https://api.eu.svix.com/api/v1/app/{app_id}/endpoint/{endpoint_id}/recover`
- Auth: HTTP bearer

Resend all failed messages since a given time.

Messages that were sent successfully, even if failed initially, are not resent.

A completed task will return a payload like the following:
```json
{
  "id": "qtask_33qen93MNuelBAq1T9G7eHLJRsF",
  "status": "finished",
  "task": "endpoint.recover",
  "data": {
    "messagesSent": 2
  }
}
```

## Path parameters

- `app_id` string, required: The Application's ID or UID.
- `endpoint_id` string, required: The Endpoint's ID or UID.

## Headers

- `idempotency-key` string

## Request body

- RecoverIn
  - `since` string, date-time, required
  - `until` string, date-time, nullable

## Response `202`

- RecoverOut
  - `id` string, required: The QueueBackgroundTask's ID.
  - `status` 'running' | 'finished' | 'failed', required
  - `task` 'endpoint.replay' | 'endpoint.recover' | 'application.stats' | 'message.broadcast' | 'sdk.generate' | 'event-type.aggregate' | 'application.purge_content' | 'endpoint.bulk-replay', required
  - `updatedAt` string, date-time, required

## Other responses

- `400`: Bad request
- `401`: Unauthorized
- `403`: Forbidden
- `404`: Not Found
- `409`: Conflict
- `422`: Validation Error
- `429`: Too Many Requests

## Changes

- **2026-10-19** `cca56e67e5a4`: 1 info
  - added the required property `code` to the response with the `422` status

[Operation history](https://skmtc.dev/svix/apis/svix-api/changes/api/v1/app/:app_id/endpoint/:endpoint_id/recover/post.md)

---

[API](https://skmtc.dev/svix/apis/svix-api.md) - [All operations](https://skmtc.dev/svix/apis/svix-api/llms.txt) - [OpenAPI document](https://skmtc.dev/svix/apis/svix-api/revisions/21bb0f86a732?raw)
