Skip to main content

GET /webhooks

List webhook subscriptions

Scopewebhooks:read
CostFree

An absent filter really is "no filter".

Query parameters

NameTypeRequiredExampleDescription
typeAccountRealTimeCalls | AccountEndedCalls | UserEndedCalls | AccountSMS | AccountAITranscriptionnoOnly subscriptions for this event type. An unknown type is a 400.
enabledtruenoOnly enabled subscriptions. enabled=false is not supported — omit the parameter and filter the result client-side.

Responses

200

The account's subscriptions.

FieldTypeDescription
[].idinteger
[].namestring
[].descriptionstring
[].urlstringWhere events are delivered. http or https, max 1024 characters.
[].typeAccountRealTimeCalls | AccountEndedCalls | UserEndedCalls | AccountSMS | AccountAITranscriptionThe event a subscription fires on. Fetch the live list from GET /webhooks/types.
[].enabledbooleanWhether events are being delivered.
[].createdAtstring (RFC 3339)
[].updatedAtstring (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

StatusMeaning
400invalid_request — a missing or malformed field, an unknown enum value, or an unknown field in the body. Nothing was charged.
401unauthenticated — no credential, or one that is invalid, revoked or expired. The WWW-Authenticate header names the scope the endpoint wanted.
403Two different failures share this status, and the type tells them apart:
500internal_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"

Try it in the playground →