---
title: "GET /v1/origin/app/webhook/deliveries"
method: GET
path: "/v1/origin/app/webhook/deliveries"
tags: ["OriginService"]
---

# GET /v1/origin/app/webhook/deliveries

`GET /v1/origin/app/webhook/deliveries`

## Request

- Base URL: `https://api.cursor.com`
- URL: `https://api.cursor.com/v1/origin/app/webhook/deliveries`
- Auth: HTTP bearer

Lists webhook deliveries for the authenticated app, newest first.

 A delivery is one event owed to one app; its id is the `webhook-id`
 header value the receiver sees. `delivered=false` is the recovery
 predicate: every delivery the receiver has never acknowledged with a 2xx,
 regardless of where retries stand.

 Deliveries are listable for 7 days after creation, and only while the app
 has an active installation in the delivery's namespace. App-targeted
 lifecycle events (for example `installation.deleted`) stay visible after
 the uninstall they describe.

## Query parameters

- `delivered` boolean
- `eventType` string
- `installationId` string
- `createdAfter` string, date-time
- `createdBefore` string, date-time
- `pageSize` integer
- `pageToken` string

## Response `200`

OK

- ListWebhookDeliveriesResponse
  - `deliveries` WebhookDelivery[]
    - `id` string
    - `event` WebhookEventReference: The event a delivery carries. `type` is the subscription event type, e.g. `pull_request.created`; `id` is shared by every app's delivery of the same event.
      - `id` string
      - `type` string
    - `installation` InstallationReference: Stable identity for an app installation: the installation id plus the owner entity it is installed into, matching AppInstallation.
      - `id` string
      - `target` Owner: The owner of a repo.
        - `slug` string: Unique URL-friendly name of the owner.
        - `id` string: Unique ID of the owner namespace.
        - `type` 'team' | 'user': `team` or `user`. Output-only; unset when unknown.
    - `createdAt` string, date-time
    - `deliveredAt` string, date-time: First 2xx from any attempt, automatic or manual. Set once, never cleared. Unset means the receiver has never acknowledged this delivery.
    - `lastAttempt` WebhookDeliveryAttempt: One HTTP POST of a delivery's payload to the app's webhook URL.
      - `id` string
      - `deliveryId` string
      - `trigger` 'automatic' | 'manual'
      - `responseStatusCode` integer: Unset when the POST produced no HTTP response (transport error, timeout).
      - `latencyMs` integer
      - `errorMessage` string: Transport error detail when there was no HTTP response; empty otherwise.
      - `attemptedAt` string, date-time
  - `nextPageToken` string: Opaque cursor for the next page; empty when there are no more pages.

## Other responses

- `400`: Bad Request
- `401`: Unauthorized
- `403`: Forbidden
- `429`: Too Many Requests
- `default`: Default error response

---

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