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

# POST /v1/subscriptions/:id/events/:eventId/retry

> Manually re-queue a failed event for delivery. Resets the attempt counter and restarts the automatic retry schedule from the beginning.

Use this endpoint to re-queue an event that failed after exhausting all automatic retry attempts. Retrying resets the `attempts` counter to `0` and restarts the full retry schedule from the beginning, as if the event were being delivered for the first time.

## Request

```
POST /v1/subscriptions/:id/events/:eventId/retry
```

No request body is required.

### Path parameters

<ParamField path="id" type="string" required>
  The subscription ID (e.g. `sub_2QkP9aB7xN...`).
</ParamField>

<ParamField path="eventId" type="string" required>
  The event ID to re-queue (e.g. `evt_8xN9kP2QbA...`).
</ParamField>

```bash theme={null}
curl -X POST https://api.offthehook.dev/v1/subscriptions/sub_2QkP9aB7xN.../events/evt_8xN9kP2QbA.../retry \
  -H "Authorization: Bearer oth_YOUR_API_KEY"
```

## Response

**200 OK** — the updated `EventView` with `status: "pending"` and `attempts` reset to `0`.

```json theme={null}
{
  "id": "evt_8xN9kP2QbA...",
  "subscriptionId": "sub_2QkP9aB7xN...",
  "kind": "wallet.transfer.broadcasted",
  "chainId": "tron:mainnet",
  "status": "pending",
  "attempts": 0,
  "deliveryCount": 0,
  "responseStatus": 503,
  "responseBody": "Service Unavailable",
  "payload": { "id": "evt_8xN9kP2QbA...", "kind": "wallet.transfer.broadcasted", "date": "...", "data": {} },
  "dateCreated": "2026-05-08T12:34:56Z"
}
```

<Tip>
  Before retrying, confirm your endpoint is returning a 2xx response and that signature verification is working correctly. If neither is fixed, the event will fail again after running through the full automatic retry schedule: **200ms → 1s → 5s → 1m → 5m → 30m → 2h**.
</Tip>

## Errors

| Code           | HTTP | Description                                                                                                                 |
| -------------- | ---- | --------------------------------------------------------------------------------------------------------------------------- |
| `not_found`    | 404  | The event ID does not exist, does not belong to the given subscription, or the subscription belongs to a different API key. |
| `unauthorized` | 401  | The `Authorization` header is missing or the key is invalid.                                                                |
