---
title: "Recover recorded subscription events"
method: GET
path: "/v1/webhooks/{id}/events"
tags: ["Webhooks"]
---

# Recover recorded subscription events

`GET /v1/webhooks/{id}/events`

## Request

- Base URL: `https://api.planwire.io`
- URL: `https://api.planwire.io/v1/webhooks/{id}/events`
- Auth: API key in header `X-API-Key`

Returns durable payloads in committed cursor order. Starts at durable capture for this subscription, not historical council changes. Persist nextCursor after storing the full page and deduplicate by payload.id. Recovery requests count against the API allowance; pushed deliveries do not. See /docs#webhooks-recovery for the runnable cache example.

## Path parameters

- `id` string, uuid, required

## Query parameters

- `after` string
- `limit` integer

## Response `200`

data contains payload, cursor, status and attempts; meta contains nextCursor and hasMore

## Other responses

- `400`: Invalid cursor or limit
- `404`: Webhook not owned by this key
- `503`: Durable recovery not yet enabled

---

[API](https://skmtc.dev/planwire/apis/planwire-uk-planning-data-infrastructure-api.md) · [All operations](https://skmtc.dev/planwire/apis/planwire-uk-planning-data-infrastructure-api/llms.txt) · [OpenAPI document](https://skmtc.dev/planwire/apis/planwire-uk-planning-data-infrastructure-api/revisions/4ccb7f811da9?raw)
