Get a webhook endpoint
GET /v1/webhook-endpoints/{endpoint_id} · permission webhook-endpoints:read · all plans
Returns one webhook endpoint. The ETag header is the endpoint's version and the If-Match value for update and delete. The signing secret is never returned here.
Request
| Field | Type | Required | Description |
|---|---|---|---|
endpoint_id |
path | yes | Webhook endpoint ID (whe_…). |
Response
200 OK with the endpoint.
| Field | Description |
|---|---|
id |
Endpoint ID (whe_…). |
key |
Stable key, unique in the environment. |
url |
Receiver URL. |
description |
Free text; empty string if none. |
event_types |
Selected catalog event types; empty means every type except the high-volume ones. |
event_schema_versions |
Event type → schema version overrides. |
payload_mode |
thin or full. |
status |
enabled, disabled_by_user, disabled_by_failure (no successful delivery for 5 days and at least 10 abandoned deliveries) or disabled_by_receiver (the receiver answered 410 Gone). Re-enable with update and "status": "enabled"; use replay for the events of the disabled period. |
rate_limit_per_second |
Delivery rate cap for this endpoint. |
previous_secret_expires_at |
After a rotation, the end of the period in which the old secret still signs deliveries; otherwise null. |
last_success_at |
Last successful delivery, or null. |
failing_since |
Start of uninterrupted failed deliveries, or null. |
version |
Version; equals the ETag header. |
created_at, updated_at |
Timestamps. |
{
"id": "whe_01k8a3m5q7t9v1w3x5y7z9b2c4",
"key": "crm-sync",
"url": "https://hooks.example.com/keenauth",
"description": "CRM sync",
"event_types": ["user.created", "user.updated"],
"event_schema_versions": {"user.created": 1},
"payload_mode": "thin",
"status": "enabled",
"rate_limit_per_second": 50,
"previous_secret_expires_at": null,
"last_success_at": "2026-10-26T09:12:00Z",
"failing_since": null,
"version": 3,
"created_at": "2026-10-26T09:00:00Z",
"updated_at": "2026-10-26T10:00:00Z"
}
Errors
| HTTP | code | When |
|---|---|---|
| 404 | not_found |
No such endpoint in this environment (also for another environment's endpoint or a malformed ID). |
| 401 | unauthenticated |
The credential is missing, invalid or revoked. |
| 403 | insufficient_permissions |
The credential lacks webhook-endpoints:read. |
| 429 | rate_limited |
The rate limit was exceeded; retry after the Retry-After period. |
| 503 | service_unavailable |
Webhook administration is temporarily unavailable; retry after the Retry-After period. |
Example
curl -i https://api.eu.keenauth.com/v1/webhook-endpoints/whe_01k8a3m5q7t9v1w3x5y7z9b2c4 \
-H "Authorization: Bearer $KEENAUTH_SECRET_KEY"
CLI: keenauth webhook-endpoints get whe_01k8a3m5q7t9v1w3x5y7z9b2c4