---
title: "List Webhook Endpoints"
method: GET
path: "/v2/projects/{project_id}/webhook_endpoints"
tags: ["Webhooks V2"]
---

# List Webhook Endpoints

`GET /v2/projects/{project_id}/webhook_endpoints`

Returns a list of webhook endpoints for the project. Supports pagination. Requires webhooks:read scope.

## Path parameters

- `project_id` string, required — Project ID

## Query parameters

- `limit` string — Maximum number of items to return (1-100, default: 20)
- `iterator` string
- `format` 'superwall' | 'superwall_v2' — Which webhook delivery application this endpoint belongs to. `superwall_v2` receives typed Superwall V2 payloads. Defaults to `superwall`.

## Response `200`

Success

- object
  - `object` 'list', required — Object type, always `list`
  - `data` object[], required — List of webhook endpoints
    - `id` string, required — Unique identifier for the webhook endpoint
    - `object` 'webhook_endpoint', required — Object type, always `webhook_endpoint`
    - `url` string, required — The URL where webhook events are sent
    - `description` string, nullable, required — Description of the webhook endpoint
    - `version` number, required — Webhook endpoint version
    - `disabled` boolean, required — Whether the webhook endpoint is disabled
    - `filter_types` string[], nullable, required — List of event types being filtered, or null for all events
    - `channels` string[], nullable, required — Webhook channels
    - `headers` object — Deprecated compatibility field. Stored header values are never returned; use `header_names` instead.
    - `secret` string — Deprecated compatibility field. Omitted from ordinary endpoint responses; signing secrets are returned only on creation or rotation.
    - `header_names` string[] — Names of configured custom headers. Header values are never returned
    - `integration_id` string — Safe integration identifier derived from the managed integration header. Other header values are never returned
    - `format` 'superwall' | 'superwall_v2' — Which webhook delivery format this endpoint belongs to (`superwall` or `superwall_v2`)
    - `created_at` string, required — ISO 8601 timestamp of when the endpoint was created
    - `updated_at` string, required — ISO 8601 timestamp of when the endpoint was last updated
  - `has_more` boolean, required — Whether there are more results available
  - `iterator` string — Cursor for forward pagination
  - `prev_iterator` string — Cursor for backward pagination
  - `can_write` boolean, required — Whether the current actor may mutate webhook endpoints in this project

## Other responses

- `400` — The request did not match the expected schema
- `401` — No API key was provided in the request
- `403` — The API key does not have permission to perform this action
- `404` — The requested resource was not found
- `429` — Too many requests have been made in a short period
- `500` — An unexpected error occurred on the server
- `502` — The upstream webhook provider request failed

---

[API](https://skmtc.dev/superwall/apis/superwall-api-v2.md) · [All operations](https://skmtc.dev/superwall/apis/superwall-api-v2/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/superwall/superwall-api-v2/revisions/44900ad77d2c/schema)
