Developer docs
List webhook endpoints
List the account's webhook endpoints with their status and events, oldest first. Addresses show only their host and a masked path, and signing secrets are 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- MCP tool:
list_webhook_endpoints - Access: any key or connection
- Only the account owner's keys and connections
Response
| Field | Type | Required | Description |
|---|---|---|---|
endpoints | array of object | Yes | |
endpoints[].id | string (uuid) | Yes | |
endpoints[].url | string | Yes | The address's host and a masked path. The full address is never shown. |
endpoints[].destination | json, slack, teams | Yes | json: signed JSON. slack and teams: a readable message for a Slack or Microsoft Teams incoming webhook. |
endpoints[].events | array of status_changed, final_state, checks_ended | Yes | |
endpoints[].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. |
endpoints[].paused_at | string or null | Yes | |
endpoints[].created_at | string | Yes | |
endpoints[].created_by | website, api | Yes | website: added on the website. api: added by an API key or a connected app. |
endpoints[].api_version | string | Yes |
Example
curl -X GET "https://uetr.ai/api/v1/webhooks" \ -H "Authorization: Bearer $UETR_API_KEY"
The answer:
{
"endpoints": [
{
"id": "8e2c4a6b-0d3f-4e7a-9b1c-5f8d2a4c6e0b",
"url": "hooks.example.com/••••",
"destination": "json",
"events": [
"status_changed",
"final_state",
"checks_ended"
],
"status": "active",
"paused_at": null,
"created_at": "2026-10-14T08:40:00.000Z",
"created_by": "website",
"api_version": "2026-10-14"
},
{
"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 every call can meet, this call can answer:
not_permitted(403): Not permitted.