Skip to main content

PATCH /webhooks/{id}

Update a subscription (merge)

Scopewebhooks:write
CostFree

PUT and PATCH both merge — any field you leave out keeps its current value. (Normally PUT replaces the whole record, but here it behaves exactly like PATCH; there's no replace-everything option.)

A body that contains no updatable field returns a 400, rather than silently doing nothing.

Path parameters​

NameTypeRequiredExampleDescription
idintegeryes2074The subscription id.

Request body​

FieldTypeRequiredDescription
namestringnoA new label for the subscription. Omit to leave unchanged.
descriptionstringnoA new note for the subscription. Send "" to clear it; omit to leave unchanged.
urlstringnoA new delivery URL. http or https, max 1024 characters. Omit to leave unchanged.
typeAccountRealTimeCalls | AccountEndedCalls | UserEndedCalls | AccountSMS | AccountAITranscriptionnoThe event a subscription fires on. Fetch the live list from GET /webhooks/types.
enabledbooleannoTurn delivery on or off. Omit to leave unchanged.

Point it at a new URL:

{
"url": "https://example.com/hook/v2"
}

Responses​

200​

The stored subscription, re-read after the write.

FieldTypeDescription
idintegerThe subscription's id.
namestringA label for the subscription, for your own reference.
descriptionstringA longer note about the subscription, for your own reference.
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)When the subscription was created, RFC 3339 UTC.
updatedAtstring (RFC 3339)When the subscription was last changed, RFC 3339 UTC.

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; the type field tells them apart — insufficient_scope (the credential lacks the scope) or permission_denied (the scope is fine, but the user's role lacks the permission).
404not_found — no such object, or it is not this account's. The two are deliberately indistinguishable.
500internal_error — something failed on our side, not with your request. Safe to retry.

See Errors for the full catalog and what to do about each.

Example​

curl -X PATCH 'https://api.account.telebroad.com/api/public/v1/webhooks/2074' \
-H "Authorization: Bearer $TB_KEY" \
-H 'Content-Type: application/json' \
-d '{"url":"https://example.com/hook/v2"}'

Try it in the playground →