---
title: "List webhook endpoints"
method: GET
path: "/v1/projects/{projectId}/webhooks"
tags: ["Webhooks"]
---

# List webhook endpoints

`GET /v1/projects/{projectId}/webhooks`

## Request

- Base URL: `https://hootlens-api-368877148687.us-east1.run.app`
- URL: `https://hootlens-api-368877148687.us-east1.run.app/v1/projects/{projectId}/webhooks`
- Auth: HTTP bearer

The site's webhook endpoints, newest first, with their events, whether they are enabled and how their latest deliveries went. The signing secret is never listed. `available` is false when the server cannot seal secrets, so none can be added. A site can have 5. Needs an owner or editor; personal access tokens receive 403.

Required token scopes are listed in x-hootlens-scopes. A signed-in person needs the matching permission on the site instead (the viewer and editor roles are presets of the permissions).

## Path parameters

- `projectId` string, required: An identifier: 1 to 80 letters, digits, underscores or hyphens.

## Response `200`

The endpoints.

- object
  - `endpoints` WebhookEndpoint[], required
    - `id` string, required: An identifier: 1 to 80 letters, digits, underscores or hyphens.
    - `url` string, uri, required
    - `label` string
    - `events` string[], required
    - `createdAt` integer, required: Epoch milliseconds.
    - `secretRotatedAt` integer: Epoch milliseconds.
    - `enabled` boolean, required
    - `disabledAt` integer: Epoch milliseconds.
    - `disabledReason` 'manual' | 'failures': failures: switched off after sustained failure.
    - `consecutiveFailures` integer, required
    - `lastSuccessAt` integer: Epoch milliseconds.
    - `lastFailureAt` integer: Epoch milliseconds.
    - `lastStatus` integer: The last HTTP status the endpoint answered with.
  - `available` boolean, required
  - `limit` integer, required

## Other responses

- `401`: The credential is missing, expired or revoked.
- `403`: The credential or the person's permissions on the site do not permit this action.
- `404`: The site, or the record inside it, does not exist or the caller is not a member (a non-member cannot tell the two apart).
- `429`: A rate limit or a per-site limit was reached.

---

[API](https://skmtc.dev/hootlens/apis/hoot-lens-api.md) · [All operations](https://skmtc.dev/hootlens/apis/hoot-lens-api/llms.txt) · [OpenAPI document](https://skmtc.dev/hootlens/apis/hoot-lens-api/revisions/f64f8dc7b84e?raw)
