---
title: "List webhook endpoints (secrets never included)"
method: GET
path: "/v1/webhook_endpoints"
tags: ["webhook_endpoints"]
---

# List webhook endpoints (secrets never included)

`GET /v1/webhook_endpoints`

## Request

- Base URL: `https://api.primateintelligence.ai`
- URL: `https://api.primateintelligence.ai/v1/webhook_endpoints`
- Auth: HTTP bearer

## Response `200`

List envelope.

- WebhookEndpointList
  - `object` 'list', required
  - `data` WebhookEndpoint[], required
    - `id` string, required: Webhook endpoint id (prefixed ULID).
    - `object` 'webhook_endpoint', required
    - `url` string, uri, required
    - `events` WebhookEventType[], required
    - `description` string, nullable, required
    - `status` 'enabled' | 'disabled', required
    - `disabled_reason` 'auto_failure' | 'user', nullable, required: auto_failure = 72h of 100% delivery failure (§16.3). Re-enable via POST …/enable.
    - `secret` string: Signing secret — returned EXACTLY ONCE (create / rotate_secret), never readable again.
    - `last_success_at` string, date-time, nullable, required
    - `created_at` string, date-time, required
  - `has_more` boolean, required

## Other responses

- `400`: validation_failed / url_forbidden / prompt errors (§15)
- `401`: invalid_api_key / key_revoked / key_expired
- `404`: resource_not_found (account-scoped; no existence oracle)
- `409`: resource_conflict / idempotency_key_reused / idempotency_unavailable
- `429`: rate_limit_exceeded / concurrency_limit_exceeded / quota_exceeded (always with Retry-After)

---

[API](https://skmtc.dev/primateintelligence/apis/primate-vision-api.md) · [All operations](https://skmtc.dev/primateintelligence/apis/primate-vision-api/llms.txt) · [OpenAPI document](https://skmtc.dev/primateintelligence/apis/primate-vision-api/revisions/aa51b01dc8ad?raw)
