---
title: "Fetch a webhook endpoint (secret never included)"
method: GET
path: "/v1/webhook_endpoints/{id}"
tags: ["webhook_endpoints"]
---

# Fetch a webhook endpoint (secret never included)

`GET /v1/webhook_endpoints/{id}`

## Request

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

## Path parameters

- `id` string, required

## Response `200`

The endpoint.

- WebhookEndpoint: A customer webhook endpoint (§4.5). Standard Webhooks signing.
  - `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

## 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)
