GET /webhooks
List webhook subscriptions
| Scope | webhooks:read |
| Cost | Free |
An absent filter really is "no filter".
Query parameters
| Name | Type | Required | Example | Description |
|---|---|---|---|---|
type | AccountRealTimeCalls | AccountEndedCalls | UserEndedCalls | AccountSMS | AccountAITranscription | no | — | Only subscriptions for this event type. An unknown type is a 400. |
enabled | true | no | — | Only enabled subscriptions. enabled=false is not supported — omit the parameter and filter the result client-side. |
Responses
200
The account's subscriptions.
| Field | Type | Description |
|---|---|---|
[].id | integer | |
[].name | string | |
[].description | string | |
[].url | string | Where events are delivered. http or https, max 1024 characters. |
[].type | AccountRealTimeCalls | AccountEndedCalls | UserEndedCalls | AccountSMS | AccountAITranscription | The event a subscription fires on. Fetch the live list from GET /webhooks/types. |
[].enabled | boolean | Whether events are being delivered. |
[].createdAt | string (RFC 3339) | |
[].updatedAt | string (RFC 3339) |
{
"data": [
{
"id": 2074,
"name": "real time",
"description": "",
"url": "https://example.com/hook",
"type": "AccountRealTimeCalls",
"enabled": true,
"createdAt": "2026-08-05T12:00:00Z",
"updatedAt": "2026-08-05T12:00:00Z"
}
]
}
Errors
| Status | Meaning |
|---|---|
400 | invalid_request — a missing or malformed field, an unknown enum value, or an unknown field in the body. Nothing was charged. |
401 | unauthenticated — no credential, or one that is invalid, revoked or expired. The WWW-Authenticate header names the scope the endpoint wanted. |
403 | Two different failures share this status, and the type tells them apart: |
500 | internal_error — something failed on our side. For a send, nothing was charged, guaranteed, which is what makes a retry safe. |
See Errors for the full catalog and what to do about each.
Example
curl -X GET 'https://api.account.telebroad.com/api/public/v1/webhooks' \
-H "Authorization: Bearer $TB_KEY"