curl --request PATCH \
--url https://catchall.newscatcherapi.com/catchAll/webhooks/{webhook_id} \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"name": "Layoffs Alert (EU)",
"is_active": false
}
'import requests
url = "https://catchall.newscatcherapi.com/catchAll/webhooks/{webhook_id}"
payload = {
"name": "Layoffs Alert (EU)",
"is_active": False
}
headers = {
"x-api-key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {'x-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({name: 'Layoffs Alert (EU)', is_active: false})
};
fetch('https://catchall.newscatcherapi.com/catchAll/webhooks/{webhook_id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://catchall.newscatcherapi.com/catchAll/webhooks/{webhook_id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => json_encode([
'name' => 'Layoffs Alert (EU)',
'is_active' => false
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"x-api-key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://catchall.newscatcherapi.com/catchAll/webhooks/{webhook_id}"
payload := strings.NewReader("{\n \"name\": \"Layoffs Alert (EU)\",\n \"is_active\": false\n}")
req, _ := http.NewRequest("PATCH", url, payload)
req.Header.Add("x-api-key", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.patch("https://catchall.newscatcherapi.com/catchAll/webhooks/{webhook_id}")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"Layoffs Alert (EU)\",\n \"is_active\": false\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://catchall.newscatcherapi.com/catchAll/webhooks/{webhook_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["x-api-key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"Layoffs Alert (EU)\",\n \"is_active\": false\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"message": "Webhook updated successfully.",
"webhook": {
"id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"name": "Layoffs Alert (EU)",
"url": "https://hooks.slack.com/services/T000/B111/yyyy",
"type": "slack",
"delivery_mode": "full",
"method": "POST",
"headers": {},
"params": {},
"auth": null,
"formatter_config": null,
"is_active": true,
"organization_id": "org-uuid-here",
"created_by_user_id": "user-uuid-here",
"created_at": "2026-05-18T10:00:00Z",
"updated_at": "2026-05-19T08:30:00Z"
}
}{
"detail": "X-API-Key header is required for this endpoint"
}{
"detail": "Invalid API key"
}{
"detail": "Invalid API key"
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>"
}
]
}Update webhook
Updates one or more fields of an existing webhook.
curl --request PATCH \
--url https://catchall.newscatcherapi.com/catchAll/webhooks/{webhook_id} \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"name": "Layoffs Alert (EU)",
"is_active": false
}
'import requests
url = "https://catchall.newscatcherapi.com/catchAll/webhooks/{webhook_id}"
payload = {
"name": "Layoffs Alert (EU)",
"is_active": False
}
headers = {
"x-api-key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {'x-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({name: 'Layoffs Alert (EU)', is_active: false})
};
fetch('https://catchall.newscatcherapi.com/catchAll/webhooks/{webhook_id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://catchall.newscatcherapi.com/catchAll/webhooks/{webhook_id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => json_encode([
'name' => 'Layoffs Alert (EU)',
'is_active' => false
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"x-api-key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://catchall.newscatcherapi.com/catchAll/webhooks/{webhook_id}"
payload := strings.NewReader("{\n \"name\": \"Layoffs Alert (EU)\",\n \"is_active\": false\n}")
req, _ := http.NewRequest("PATCH", url, payload)
req.Header.Add("x-api-key", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.patch("https://catchall.newscatcherapi.com/catchAll/webhooks/{webhook_id}")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"Layoffs Alert (EU)\",\n \"is_active\": false\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://catchall.newscatcherapi.com/catchAll/webhooks/{webhook_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["x-api-key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"Layoffs Alert (EU)\",\n \"is_active\": false\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"message": "Webhook updated successfully.",
"webhook": {
"id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"name": "Layoffs Alert (EU)",
"url": "https://hooks.slack.com/services/T000/B111/yyyy",
"type": "slack",
"delivery_mode": "full",
"method": "POST",
"headers": {},
"params": {},
"auth": null,
"formatter_config": null,
"is_active": true,
"organization_id": "org-uuid-here",
"created_by_user_id": "user-uuid-here",
"created_at": "2026-05-18T10:00:00Z",
"updated_at": "2026-05-19T08:30:00Z"
}
}{
"detail": "X-API-Key header is required for this endpoint"
}{
"detail": "Invalid API key"
}{
"detail": "Invalid API key"
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>"
}
]
}Authorizations
API key for authentication.
Path Parameters
Unique webhook identifier.
Body
All fields are optional. Only supplied fields are updated.
Updated webhook name.
"Layoffs Alert (EU)"
Updated destination URL. Must use HTTPS. Type-specific URL rules apply.
"https://hooks.slack.com/services/T000/B111/yyyy"
Webhook target type.
generic: Sends the raw result payload to any HTTPS endpoint.slack: Sends a formatted Slack Block Kit message. URL must start withhttps://hooks.slack.com/.teams: Sends a formatted Microsoft Teams Adaptive Card. URL hostname must match*webhook.office.comor*.webhook.office365.com.custom: Sends a transformed payload using the configuration informatter_config. Requiresformatter_configto be set.
When type is omitted, it is auto-detected from the URL.
generic, slack, teams, custom Delivery mode for webhook payloads.
full: Sends all records in a single request on each trigger.per_record: Sends one request per record. For large result sets, this may generate many requests.
full, per_record HTTP method used for webhook delivery.
GET, POST, PUT, PATCH, DELETE Updated HTTP headers. Replaces existing headers entirely.
Show child attributes
Show child attributes
{ "Authorization": "Bearer new-token" }
Updated query parameters. Replaces existing params entirely.
Show child attributes
Show child attributes
{}
Updated authentication configuration. Replaces existing auth entirely.
- Option 1
- Option 2
- Option 3
Show child attributes
Show child attributes
Updated custom payload formatter. Set only when type is custom.
Show child attributes
Show child attributes
Set to false to disable delivery without deleting the webhook.
false
Was this page helpful?

