Change a webhook
curl --request PATCH \
--url https://api-vod-express.syncwords.com/v1/webhooks/{id} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"events": [
"file.done",
"file.failed",
"project.error"
]
}
'import requests
url = "https://api-vod-express.syncwords.com/v1/webhooks/{id}"
payload = { "events": ["file.done", "file.failed", "project.error"] }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({events: ['file.done', 'file.failed', 'project.error']})
};
fetch('https://api-vod-express.syncwords.com/v1/webhooks/{id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"data": {
"id": "wh_01m3n2t4k8b5x0c7d2e9f6g1h3",
"url": "https://hooks.example.com/syncwords",
"events": [
"file.done",
"file.failed",
"project.error"
],
"createdAt": "2026-09-28T09:00:00.000Z"
}
}{
"message": "Unauthenticated.",
"code": "unauthenticated"
}{
"message": [
"VOD Express is not enabled for your account."
],
"code": "vod_express_not_enabled"
}{
"message": "Webhook not found.",
"code": "webhook_not_found"
}{
"message": [
"The request body is too large."
],
"code": "payload_too_large"
}{
"message": [
"Send the body as JSON (Content-Type: application/json) or YAML (Content-Type: application/yaml)."
],
"code": "unsupported_media_type"
}{
"message": "This account already has a webhook for this URL.",
"errors": {
"url": [
"This account already has a webhook for this URL."
]
},
"code": "validation_failed"
}{
"message": [
"Too Many Attempts."
],
"code": "too_many_requests"
}Webhooks
Change a webhook
Changes the URL, the events, or both; what is not sent is kept. The id and the secret stay, and deliveries not yet made go to the new URL. The URL is checked as at create.
Guide: Webhooks
PATCH
/
webhooks
/
{id}
Change a webhook
curl --request PATCH \
--url https://api-vod-express.syncwords.com/v1/webhooks/{id} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"events": [
"file.done",
"file.failed",
"project.error"
]
}
'import requests
url = "https://api-vod-express.syncwords.com/v1/webhooks/{id}"
payload = { "events": ["file.done", "file.failed", "project.error"] }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({events: ['file.done', 'file.failed', 'project.error']})
};
fetch('https://api-vod-express.syncwords.com/v1/webhooks/{id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"data": {
"id": "wh_01m3n2t4k8b5x0c7d2e9f6g1h3",
"url": "https://hooks.example.com/syncwords",
"events": [
"file.done",
"file.failed",
"project.error"
],
"createdAt": "2026-09-28T09:00:00.000Z"
}
}{
"message": "Unauthenticated.",
"code": "unauthenticated"
}{
"message": [
"VOD Express is not enabled for your account."
],
"code": "vod_express_not_enabled"
}{
"message": "Webhook not found.",
"code": "webhook_not_found"
}{
"message": [
"The request body is too large."
],
"code": "payload_too_large"
}{
"message": [
"Send the body as JSON (Content-Type: application/json) or YAML (Content-Type: application/yaml)."
],
"code": "unsupported_media_type"
}{
"message": "This account already has a webhook for this URL.",
"errors": {
"url": [
"This account already has a webhook for this URL."
]
},
"code": "validation_failed"
}{
"message": [
"Too Many Attempts."
],
"code": "too_many_requests"
}Authorizations
A token from POST /token/create, made with your API key pair.
Path Parameters
The webhook’s id: wh_….
Body
application/json
Response
OK
Show child attributes
Show child attributes