Skip to main content

PATCH /webhooks/{id}

Update a subscription (merge)

Scopewebhooks:write
CostFree

PUT and PATCH both merge — fields you omit are left unchanged. There is no replace-everything variant, and rather than have PUT quietly behave like PATCH, both are documented as a merge.

A body with no updatable field is a 400, not a silent no-op.

Path parameters

NameTypeRequiredExampleDescription
idintegeryes2074The subscription id.

Request body

FieldTypeRequiredDescription
namestringno
descriptionstringno
urlstringno
typeAccountRealTimeCalls | AccountEndedCalls | UserEndedCalls | AccountSMS | AccountAITranscriptionnoThe event a subscription fires on. Fetch the live list from GET /webhooks/types.
enabledbooleanno

Point it at a new URL:

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

Responses

200

The stored subscription, re-read after the write.

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)

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:
404not_found — no such object, or it is not this account's. The two are deliberately indistinguishable.
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 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 →