curl --request PUT \
--url https://api.extole.io/v6/webhooks/{webhook_id} \
--header 'Authorization: <api-key>' \
--header 'Content-Type: application/json' \
--data '
{
"client_key_id": {},
"component_ids": [
"component_id"
],
"component_references": [
{
"component_id": "component_id",
"socket_names": [
"socket_name"
]
}
],
"default_method": "default_method",
"description": "description",
"enabled": true,
"name": "name",
"request": {
"body": "body",
"headers": {
"headers_key": [
"headers_key"
]
},
"method": "method",
"url": "url",
"urlTemplateParameters": {
"urlTemplateParameters_key": "urlTemplateParameters_key"
}
},
"response_body_handler": {
"response_body_handler_key": {}
},
"response_handler": "response_handler",
"tags": [
"tag"
],
"url": "url"
}
'import requests
url = "https://api.extole.io/v6/webhooks/{webhook_id}"
payload = {
"client_key_id": {},
"component_ids": ["component_id"],
"component_references": [
{
"component_id": "component_id",
"socket_names": ["socket_name"]
}
],
"default_method": "default_method",
"description": "description",
"enabled": True,
"name": "name",
"request": {
"body": "body",
"headers": { "headers_key": ["headers_key"] },
"method": "method",
"url": "url",
"urlTemplateParameters": { "urlTemplateParameters_key": "urlTemplateParameters_key" }
},
"response_body_handler": { "response_body_handler_key": {} },
"response_handler": "response_handler",
"tags": ["tag"],
"url": "url"
}
headers = {
"Authorization": "<api-key>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {Authorization: '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
client_key_id: {},
component_ids: ['component_id'],
component_references: [{component_id: 'component_id', socket_names: ['socket_name']}],
default_method: 'default_method',
description: 'description',
enabled: true,
name: 'name',
request: {
body: JSON.stringify('body'),
headers: {headers_key: ['headers_key']},
method: 'method',
url: 'url',
urlTemplateParameters: {urlTemplateParameters_key: 'urlTemplateParameters_key'}
},
response_body_handler: {response_body_handler_key: {}},
response_handler: 'response_handler',
tags: ['tag'],
url: 'url'
})
};
fetch('https://api.extole.io/v6/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://api.extole.io/v6/webhooks/{webhook_id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'client_key_id' => [
],
'component_ids' => [
'component_id'
],
'component_references' => [
[
'component_id' => 'component_id',
'socket_names' => [
'socket_name'
]
]
],
'default_method' => 'default_method',
'description' => 'description',
'enabled' => true,
'name' => 'name',
'request' => [
'body' => 'body',
'headers' => [
'headers_key' => [
'headers_key'
]
],
'method' => 'method',
'url' => 'url',
'urlTemplateParameters' => [
'urlTemplateParameters_key' => 'urlTemplateParameters_key'
]
],
'response_body_handler' => [
'response_body_handler_key' => [
]
],
'response_handler' => 'response_handler',
'tags' => [
'tag'
],
'url' => 'url'
]),
CURLOPT_HTTPHEADER => [
"Authorization: <api-key>",
"Content-Type: application/json"
],
]);
$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://api.extole.io/v6/webhooks/{webhook_id}"
payload := strings.NewReader("{\n \"client_key_id\": {},\n \"component_ids\": [\n \"component_id\"\n ],\n \"component_references\": [\n {\n \"component_id\": \"component_id\",\n \"socket_names\": [\n \"socket_name\"\n ]\n }\n ],\n \"default_method\": \"default_method\",\n \"description\": \"description\",\n \"enabled\": true,\n \"name\": \"name\",\n \"request\": {\n \"body\": \"body\",\n \"headers\": {\n \"headers_key\": [\n \"headers_key\"\n ]\n },\n \"method\": \"method\",\n \"url\": \"url\",\n \"urlTemplateParameters\": {\n \"urlTemplateParameters_key\": \"urlTemplateParameters_key\"\n }\n },\n \"response_body_handler\": {\n \"response_body_handler_key\": {}\n },\n \"response_handler\": \"response_handler\",\n \"tags\": [\n \"tag\"\n ],\n \"url\": \"url\"\n}")
req, _ := http.NewRequest("PUT", url, payload)
req.Header.Add("Authorization", "<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.put("https://api.extole.io/v6/webhooks/{webhook_id}")
.header("Authorization", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"client_key_id\": {},\n \"component_ids\": [\n \"component_id\"\n ],\n \"component_references\": [\n {\n \"component_id\": \"component_id\",\n \"socket_names\": [\n \"socket_name\"\n ]\n }\n ],\n \"default_method\": \"default_method\",\n \"description\": \"description\",\n \"enabled\": true,\n \"name\": \"name\",\n \"request\": {\n \"body\": \"body\",\n \"headers\": {\n \"headers_key\": [\n \"headers_key\"\n ]\n },\n \"method\": \"method\",\n \"url\": \"url\",\n \"urlTemplateParameters\": {\n \"urlTemplateParameters_key\": \"urlTemplateParameters_key\"\n }\n },\n \"response_body_handler\": {\n \"response_body_handler_key\": {}\n },\n \"response_handler\": \"response_handler\",\n \"tags\": [\n \"tag\"\n ],\n \"url\": \"url\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.extole.io/v6/webhooks/{webhook_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["Authorization"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"client_key_id\": {},\n \"component_ids\": [\n \"component_id\"\n ],\n \"component_references\": [\n {\n \"component_id\": \"component_id\",\n \"socket_names\": [\n \"socket_name\"\n ]\n }\n ],\n \"default_method\": \"default_method\",\n \"description\": \"description\",\n \"enabled\": true,\n \"name\": \"name\",\n \"request\": {\n \"body\": \"body\",\n \"headers\": {\n \"headers_key\": [\n \"headers_key\"\n ]\n },\n \"method\": \"method\",\n \"url\": \"url\",\n \"urlTemplateParameters\": {\n \"urlTemplateParameters_key\": \"urlTemplateParameters_key\"\n }\n },\n \"response_body_handler\": {\n \"response_body_handler_key\": {}\n },\n \"response_handler\": \"response_handler\",\n \"tags\": [\n \"tag\"\n ],\n \"url\": \"url\"\n}"
response = http.request(request)
puts response.read_body{
"client_key_id": "<string>",
"component_ids": [
"<string>"
],
"component_references": [
{
"component_id": "<string>",
"socket_names": [
"<string>"
]
}
],
"created_at": "2025-10-24T02:00:00-07:00",
"default_method": "<string>",
"description": "<string>",
"enabled": true,
"id": "<string>",
"name": "<string>",
"request": {
"headers": {},
"method": "<string>",
"url": "<string>",
"urlTemplateParameters": {},
"body": "<string>"
},
"response_handler": "<string>",
"retry_intervals": [
"PT42S"
],
"tags": [
"<string>"
],
"type": "CLIENT",
"updated_at": "2025-10-24T02:00:00-07:00",
"url": "<string>"
}Update a webhook
Applies a partial update to the supplied webhook. Only the fields present in the body are changed; omitted fields are left intact. Returns the persisted webhook after the update. Returns 400 webhook_not_found if the id does not exist.
curl --request PUT \
--url https://api.extole.io/v6/webhooks/{webhook_id} \
--header 'Authorization: <api-key>' \
--header 'Content-Type: application/json' \
--data '
{
"client_key_id": {},
"component_ids": [
"component_id"
],
"component_references": [
{
"component_id": "component_id",
"socket_names": [
"socket_name"
]
}
],
"default_method": "default_method",
"description": "description",
"enabled": true,
"name": "name",
"request": {
"body": "body",
"headers": {
"headers_key": [
"headers_key"
]
},
"method": "method",
"url": "url",
"urlTemplateParameters": {
"urlTemplateParameters_key": "urlTemplateParameters_key"
}
},
"response_body_handler": {
"response_body_handler_key": {}
},
"response_handler": "response_handler",
"tags": [
"tag"
],
"url": "url"
}
'import requests
url = "https://api.extole.io/v6/webhooks/{webhook_id}"
payload = {
"client_key_id": {},
"component_ids": ["component_id"],
"component_references": [
{
"component_id": "component_id",
"socket_names": ["socket_name"]
}
],
"default_method": "default_method",
"description": "description",
"enabled": True,
"name": "name",
"request": {
"body": "body",
"headers": { "headers_key": ["headers_key"] },
"method": "method",
"url": "url",
"urlTemplateParameters": { "urlTemplateParameters_key": "urlTemplateParameters_key" }
},
"response_body_handler": { "response_body_handler_key": {} },
"response_handler": "response_handler",
"tags": ["tag"],
"url": "url"
}
headers = {
"Authorization": "<api-key>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {Authorization: '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
client_key_id: {},
component_ids: ['component_id'],
component_references: [{component_id: 'component_id', socket_names: ['socket_name']}],
default_method: 'default_method',
description: 'description',
enabled: true,
name: 'name',
request: {
body: JSON.stringify('body'),
headers: {headers_key: ['headers_key']},
method: 'method',
url: 'url',
urlTemplateParameters: {urlTemplateParameters_key: 'urlTemplateParameters_key'}
},
response_body_handler: {response_body_handler_key: {}},
response_handler: 'response_handler',
tags: ['tag'],
url: 'url'
})
};
fetch('https://api.extole.io/v6/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://api.extole.io/v6/webhooks/{webhook_id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'client_key_id' => [
],
'component_ids' => [
'component_id'
],
'component_references' => [
[
'component_id' => 'component_id',
'socket_names' => [
'socket_name'
]
]
],
'default_method' => 'default_method',
'description' => 'description',
'enabled' => true,
'name' => 'name',
'request' => [
'body' => 'body',
'headers' => [
'headers_key' => [
'headers_key'
]
],
'method' => 'method',
'url' => 'url',
'urlTemplateParameters' => [
'urlTemplateParameters_key' => 'urlTemplateParameters_key'
]
],
'response_body_handler' => [
'response_body_handler_key' => [
]
],
'response_handler' => 'response_handler',
'tags' => [
'tag'
],
'url' => 'url'
]),
CURLOPT_HTTPHEADER => [
"Authorization: <api-key>",
"Content-Type: application/json"
],
]);
$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://api.extole.io/v6/webhooks/{webhook_id}"
payload := strings.NewReader("{\n \"client_key_id\": {},\n \"component_ids\": [\n \"component_id\"\n ],\n \"component_references\": [\n {\n \"component_id\": \"component_id\",\n \"socket_names\": [\n \"socket_name\"\n ]\n }\n ],\n \"default_method\": \"default_method\",\n \"description\": \"description\",\n \"enabled\": true,\n \"name\": \"name\",\n \"request\": {\n \"body\": \"body\",\n \"headers\": {\n \"headers_key\": [\n \"headers_key\"\n ]\n },\n \"method\": \"method\",\n \"url\": \"url\",\n \"urlTemplateParameters\": {\n \"urlTemplateParameters_key\": \"urlTemplateParameters_key\"\n }\n },\n \"response_body_handler\": {\n \"response_body_handler_key\": {}\n },\n \"response_handler\": \"response_handler\",\n \"tags\": [\n \"tag\"\n ],\n \"url\": \"url\"\n}")
req, _ := http.NewRequest("PUT", url, payload)
req.Header.Add("Authorization", "<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.put("https://api.extole.io/v6/webhooks/{webhook_id}")
.header("Authorization", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"client_key_id\": {},\n \"component_ids\": [\n \"component_id\"\n ],\n \"component_references\": [\n {\n \"component_id\": \"component_id\",\n \"socket_names\": [\n \"socket_name\"\n ]\n }\n ],\n \"default_method\": \"default_method\",\n \"description\": \"description\",\n \"enabled\": true,\n \"name\": \"name\",\n \"request\": {\n \"body\": \"body\",\n \"headers\": {\n \"headers_key\": [\n \"headers_key\"\n ]\n },\n \"method\": \"method\",\n \"url\": \"url\",\n \"urlTemplateParameters\": {\n \"urlTemplateParameters_key\": \"urlTemplateParameters_key\"\n }\n },\n \"response_body_handler\": {\n \"response_body_handler_key\": {}\n },\n \"response_handler\": \"response_handler\",\n \"tags\": [\n \"tag\"\n ],\n \"url\": \"url\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.extole.io/v6/webhooks/{webhook_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["Authorization"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"client_key_id\": {},\n \"component_ids\": [\n \"component_id\"\n ],\n \"component_references\": [\n {\n \"component_id\": \"component_id\",\n \"socket_names\": [\n \"socket_name\"\n ]\n }\n ],\n \"default_method\": \"default_method\",\n \"description\": \"description\",\n \"enabled\": true,\n \"name\": \"name\",\n \"request\": {\n \"body\": \"body\",\n \"headers\": {\n \"headers_key\": [\n \"headers_key\"\n ]\n },\n \"method\": \"method\",\n \"url\": \"url\",\n \"urlTemplateParameters\": {\n \"urlTemplateParameters_key\": \"urlTemplateParameters_key\"\n }\n },\n \"response_body_handler\": {\n \"response_body_handler_key\": {}\n },\n \"response_handler\": \"response_handler\",\n \"tags\": [\n \"tag\"\n ],\n \"url\": \"url\"\n}"
response = http.request(request)
puts response.read_body{
"client_key_id": "<string>",
"component_ids": [
"<string>"
],
"component_references": [
{
"component_id": "<string>",
"socket_names": [
"<string>"
]
}
],
"created_at": "2025-10-24T02:00:00-07:00",
"default_method": "<string>",
"description": "<string>",
"enabled": true,
"id": "<string>",
"name": "<string>",
"request": {
"headers": {},
"method": "<string>",
"url": "<string>",
"urlTemplateParameters": {},
"body": "<string>"
},
"response_handler": "<string>",
"retry_intervals": [
"PT42S"
],
"tags": [
"<string>"
],
"type": "CLIENT",
"updated_at": "2025-10-24T02:00:00-07:00",
"url": "<string>"
}Authorizations
Path Parameters
The id of the webhook to be updated.
Body
WebhookUpdateRequest object
Body of a PUT /v6/webhooks/{webhook_id} request.
Choose between static or dynamic client key id. Buildtime expressions use WebhookBuildtimeContext.
Show child attributes
Show child attributes
Choose between static or dynamic default method. Buildtime expressions use WebhookBuildtimeContext.
Choose between static or dynamic description. Buildtime expressions use WebhookBuildtimeContext.
Choose between static or dynamic enabled. Buildtime expressions use WebhookBuildtimeContext.
Choose between static or dynamic name. Buildtime expressions use WebhookBuildtimeContext.
Choose between static or dynamic request. Buildtime expressions use WebhookBuildtimeContext. Runtime expressions use WebhookRuntimeContext.
Show child attributes
Show child attributes
Choose between static or dynamic response body handler. Buildtime expressions use WebhookBuildtimeContext. Runtime expressions use WebhookResponseContext.
Show child attributes
Show child attributes
if no webhook response status is provided, we will retry non 2xx webhook requests. Buildtime expressions use WebhookBuildtimeContext. Runtime expressions use WebhookResponseContext.
Choose between static or dynamic url. Buildtime expressions use WebhookBuildtimeContext.
Response
Updated webhook.
- Option 1
- Option 2
- Option 3
- Option 4
Stored client webhook definition. Fields name, url, client_key_id, request, response_handler, enabled, description, default_method, and retry_intervals are unevaluated and appear in buildtime-evaluatable form.
The client key id as configured: a literal value, or an expression (type:string) when defined dynamically. Buildtime expressions use WebhookBuildtimeContext.
Show child attributes
Show child attributes
RFC 3339 or RFC 9557 date-time with a numeric UTC offset and an optional IANA time-zone suffix in square brackets. Precision up to milliseconds.
^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d{1,3})?(Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9])(\[[^\]]+\])?$"2025-10-24T02:00:00-07:00"
The default method as configured: a literal value, or an expression (type:string) when defined dynamically. Buildtime expressions use WebhookBuildtimeContext.
The description as configured: a literal value, or an expression (type:string) when defined dynamically. Buildtime expressions use WebhookBuildtimeContext.
The enabled as configured: a literal value, or an expression (type:string) when defined dynamically. Buildtime expressions use WebhookBuildtimeContext.
The name as configured: a literal value, or an expression (type:string) when defined dynamically. Buildtime expressions use WebhookBuildtimeContext.
The request as configured: a literal value, or an expression (type:string) when defined dynamically. Buildtime expressions use WebhookBuildtimeContext. Runtime expressions use WebhookRuntimeContext.
Show child attributes
Show child attributes
if no webhook response status is provided, we will retry non 2xx webhook requests. Buildtime expressions use WebhookBuildtimeContext. Runtime expressions use WebhookResponseContext.
The retry intervals as configured: a literal value, or an expression (type:string) when defined dynamically. Buildtime expressions use WebhookBuildtimeContext.
RFC 5545 duration string.
^[-+]?P(?:(?:[-+]?[0-9]+D)(?:T(?=(?:[-+]?[0-9]+H|[-+]?[0-9]+M|[-+]?[0-9]+(?:[.,][0-9]*)?S))(?:[-+]?[0-9]+H)?(?:[-+]?[0-9]+M)?(?:[-+]?[0-9]+(?:[.,][0-9]*)?S)?)?|T(?=(?:[-+]?[0-9]+H|[-+]?[0-9]+M|[-+]?[0-9]+(?:[.,][0-9]*)?S))(?:[-+]?[0-9]+H)?(?:[-+]?[0-9]+M)?(?:[-+]?[0-9]+(?:[.,][0-9]*)?S)?)$CLIENT RFC 3339 or RFC 9557 date-time with a numeric UTC offset and an optional IANA time-zone suffix in square brackets. Precision up to milliseconds.
^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d{1,3})?(Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9])(\[[^\]]+\])?$"2025-10-24T02:00:00-07:00"
The url as configured: a literal value, or an expression (type:string) when defined dynamically. Buildtime expressions use WebhookBuildtimeContext.
