> ## Documentation Index
> Fetch the complete documentation index at: https://docs.drin.run/llms.txt
> Use this file to discover all available pages before exploring further.

# Retrieve a webhook

> GET /v1/webhooks/{id} — fetch a single webhook endpoint by id. The signing secret is redacted.

Fetch a single endpoint by id, including its current URL, enabled state, and subscribed event types.

**`GET /v1/webhooks/{id}`**

## Path parameters

<ParamField body="id" type="string" required>
  The webhook endpoint id, e.g. `wh_3kQ9p2`.
</ParamField>

## Request

<CodeGroup>
  ```bash cURL theme={null}
  curl https://api.drin.run/v1/webhooks/wh_3kQ9p2 \
    -H "Authorization: Bearer $DRIN_API_KEY"
  ```

  ```typescript Node.js theme={null}
  import { DrinClient } from "@drin00/sdk";

  const drin = new DrinClient({ apiKey: process.env.DRIN_API_KEY });

  const hook = await drin.webhooks.get("wh_3kQ9p2");
  ```
</CodeGroup>

## Response

Returns `200 OK` with the endpoint. `signingSecret` is redacted to an empty string. An id that is unknown or not visible to this project returns `404 not_found`.

```json 200 OK theme={null}
{
  "id": "wh_3kQ9p2",
  "url": "https://example.com/hooks/drin",
  "enabled": true,
  "eventTypes": ["delivery", "bounce", "complaint"],
  "signingSecret": ""
}
```
