> The full uetr.ai documentation index is at https://uetr.ai/llms.txt, and every page under https://uetr.ai/docs/api is also Markdown at its address plus `.md`.

# Get a webhook endpoint

Read one webhook endpoint: its masked address, status and events. The signing secret is never returned. Only the account owner's API keys and connected apps can read webhooks. Reading changes nothing.

`GET https://uetr.ai/api/v1/webhooks/{id}`

- MCP tool: `get_webhook_endpoint`
- Access: any key or connection
- Only the account owner's keys and connections

## Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `id` | path | string (uuid) | Yes | The webhook endpoint's id. |

## Response

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `id` | string (uuid) | Yes |  |
| `url` | string | Yes | The address's host and a masked path. The full address is never shown. |
| `destination` | `json`, `slack`, `teams` | Yes | json: signed JSON. slack and teams: a readable message for a Slack or Microsoft Teams incoming webhook. |
| `events` | array of `status_changed`, `final_state`, `checks_ended` | Yes |  |
| `status` | `pending`, `active`, `paused` | Yes | pending: waiting for the account owner to confirm it on the website; until then it receives test events only. active: receiving events. paused: deliveries stopped after sustained failures; a test event that succeeds resumes it. |
| `paused_at` | string or null | Yes |  |
| `created_at` | string | Yes |  |
| `created_by` | `website`, `api` | Yes | website: added on the website. api: added by an API key or a connected app. |
| `api_version` | string | Yes |  |

## Example

```sh
curl -X GET "https://uetr.ai/api/v1/webhooks/3b1f8c2e-6a4d-4f5e-9c7b-2d8e1a0f4b6c" \
  -H "Authorization: Bearer $UETR_API_KEY"
```

The answer:

```json
{
  "id": "3b1f8c2e-6a4d-4f5e-9c7b-2d8e1a0f4b6c",
  "url": "hooks.slack.com/services/••••",
  "destination": "slack",
  "events": [
    "status_changed"
  ],
  "status": "active",
  "paused_at": null,
  "created_at": "2026-10-14T09:35:00.000Z",
  "created_by": "api",
  "api_version": "2026-10-14"
}
```

## Refusals

Besides the [access refusals](/docs/api/errors#access-refusals) every call can meet, this call can answer:

- [`not_permitted`](/docs/api/errors#not_permitted) (403): Not permitted.
- [`not_found`](/docs/api/errors#not_found) (404): Not found.