Get a single webhook subscription
Returns a single webhook subscription for the PAT's account.
Returns a single webhook subscription for the PAT's account. Returns 404 whether the subscription does not exist or belongs to a different account. Never returns the plaintext secret.
Endpoint
http
GET /api/v1/webhook-subscriptions/{id}
Authentication
Bearer Personal Access Token. See Authentication.
Path parameters
| Name | Type | Required | Description |
|---|---|---|---|
id | string (uuid) | yes | The Voicegram-issued subscription id (UUID). |
Example request
bash
curl https://www.voicegram.io/api/v1/webhook-subscriptions/:id \
-H "Authorization: Bearer vg_pat_<your-token>"
Responses
200OK
Subscription detail
| Field | Type | Required | Description |
|---|---|---|---|
id | string (uuid) | yes | |
url | string (uri) | yes | |
secret_prefix | string | yes | First 12 characters of the HMAC secret (e.g. vg_whsec_012). Lets customers identify which subscription a logged signature came from without exposing the secret itself. |
channel_id | string | null | yes | Null when the subscription fires for all channels. |
channel_type | string | null | yes | Derived from channel_id at creation. Null when channel_id is null. Read-only; cannot be changed after creation. |
source | enum ("zapier", "dashboard") | yes | |
zapier_subscription_id | string | null | yes | Populated for source=zapier, null for source=dashboard. |
is_active | boolean | yes | False once soft-deleted (via DELETE /api/v1/webhook-subscriptions/{id}) or auto-disabled after 5 consecutive failed events. |
consecutive_failures | integer | yes | Number of consecutive events (full retry cycles) that have failed for this subscription. Resets to 0 on any 2xx delivery. Triggers auto-disable at 5. |
last_delivery_at | string | null | yes | |
last_success_at | string | null | yes | |
last_error | string | null | yes | Most recent error excerpt for ops/support correlation. For URL-redirect failures this carries the literal redirect_blocked: <status> string surfaced by the manual-redirect SSRF guard. |
created_at | string (date-time) | yes | |
created_by_user_id | string | null | yes | Populated for source=dashboard rows (the dashboard user who created the row). Null for source=zapier rows because Zapier does not bind to a single human user. The OAuth-style token is account-scoped. |
401Unauthorized
The PAT is missing, malformed, expired, or revoked.
See Errors for the shared error response shape.
403Forbidden
PAT is valid but the account is on the free plan.
See Errors for the shared error response shape.
404Not Found
Returned whether the subscription does not exist or belongs to a different account.
See Errors for the shared error response shape.
Need help? Email support@voicegram.io.