Update webhook settings
curl --request PUT \
--url https://api.hubapi.com/webhooks/v3/{appId}/settings \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"targetUrl": "https://www.example.com/hubspot/target",
"throttling": {
"maxConcurrentRequests": 10,
"period": "SECONDLY"
}
}
'import requests
url = "https://api.hubapi.com/webhooks/v3/{appId}/settings"
payload = {
"targetUrl": "https://www.example.com/hubspot/target",
"throttling": {
"maxConcurrentRequests": 10,
"period": "SECONDLY"
}
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
targetUrl: 'https://www.example.com/hubspot/target',
throttling: {maxConcurrentRequests: 10, period: 'SECONDLY'}
})
};
fetch('https://api.hubapi.com/webhooks/v3/{appId}/settings', 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.hubapi.com/webhooks/v3/{appId}/settings",
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([
'targetUrl' => 'https://www.example.com/hubspot/target',
'throttling' => [
'maxConcurrentRequests' => 10,
'period' => 'SECONDLY'
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"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.hubapi.com/webhooks/v3/{appId}/settings"
payload := strings.NewReader("{\n \"targetUrl\": \"https://www.example.com/hubspot/target\",\n \"throttling\": {\n \"maxConcurrentRequests\": 10,\n \"period\": \"SECONDLY\"\n }\n}")
req, _ := http.NewRequest("PUT", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
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.hubapi.com/webhooks/v3/{appId}/settings")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"targetUrl\": \"https://www.example.com/hubspot/target\",\n \"throttling\": {\n \"maxConcurrentRequests\": 10,\n \"period\": \"SECONDLY\"\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.hubapi.com/webhooks/v3/{appId}/settings")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"targetUrl\": \"https://www.example.com/hubspot/target\",\n \"throttling\": {\n \"maxConcurrentRequests\": 10,\n \"period\": \"SECONDLY\"\n }\n}"
response = http.request(request)
puts response.read_body{
"createdAt": "2020-01-24T16:27:59Z",
"targetUrl": "https://www.example.com/hubspot/target",
"throttling": {
"maxConcurrentRequests": 10,
"period": "SECONDLY"
},
"updatedAt": "2020-01-24T16:32:43Z"
}{
"message": "Invalid input (details will vary based on the error)",
"correlationId": "aeb5f871-7f07-4993-9211-075dc63e7cbf",
"category": "VALIDATION_ERROR",
"links": {
"knowledge-base": "https://www.hubspot.com/products/service/knowledge-base"
}
}Settings
Update webhook setting
Update webhook settings for the specified app.
PUT
/
webhooks
/
v3
/
{appId}
/
settings
Update webhook settings
curl --request PUT \
--url https://api.hubapi.com/webhooks/v3/{appId}/settings \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"targetUrl": "https://www.example.com/hubspot/target",
"throttling": {
"maxConcurrentRequests": 10,
"period": "SECONDLY"
}
}
'import requests
url = "https://api.hubapi.com/webhooks/v3/{appId}/settings"
payload = {
"targetUrl": "https://www.example.com/hubspot/target",
"throttling": {
"maxConcurrentRequests": 10,
"period": "SECONDLY"
}
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
targetUrl: 'https://www.example.com/hubspot/target',
throttling: {maxConcurrentRequests: 10, period: 'SECONDLY'}
})
};
fetch('https://api.hubapi.com/webhooks/v3/{appId}/settings', 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.hubapi.com/webhooks/v3/{appId}/settings",
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([
'targetUrl' => 'https://www.example.com/hubspot/target',
'throttling' => [
'maxConcurrentRequests' => 10,
'period' => 'SECONDLY'
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"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.hubapi.com/webhooks/v3/{appId}/settings"
payload := strings.NewReader("{\n \"targetUrl\": \"https://www.example.com/hubspot/target\",\n \"throttling\": {\n \"maxConcurrentRequests\": 10,\n \"period\": \"SECONDLY\"\n }\n}")
req, _ := http.NewRequest("PUT", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
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.hubapi.com/webhooks/v3/{appId}/settings")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"targetUrl\": \"https://www.example.com/hubspot/target\",\n \"throttling\": {\n \"maxConcurrentRequests\": 10,\n \"period\": \"SECONDLY\"\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.hubapi.com/webhooks/v3/{appId}/settings")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"targetUrl\": \"https://www.example.com/hubspot/target\",\n \"throttling\": {\n \"maxConcurrentRequests\": 10,\n \"period\": \"SECONDLY\"\n }\n}"
response = http.request(request)
puts response.read_body{
"createdAt": "2020-01-24T16:27:59Z",
"targetUrl": "https://www.example.com/hubspot/target",
"throttling": {
"maxConcurrentRequests": 10,
"period": "SECONDLY"
},
"updatedAt": "2020-01-24T16:32:43Z"
}{
"message": "Invalid input (details will vary based on the error)",
"correlationId": "aeb5f871-7f07-4993-9211-075dc63e7cbf",
"category": "VALIDATION_ERROR",
"links": {
"knowledge-base": "https://www.hubspot.com/products/service/knowledge-base"
}
}Supported products
Supported products
Authorizations
oauth2oauth2
The access token received from the authorization server in the OAuth 2.0 flow.
Path Parameters
The ID of the target app.
Body
application/json
New webhook settings to configure for the app, or updated settings to replace existing configuration.
New or updated webhook settings for an app.
Response
successful operation
Webhook settings for an app.
When this subscription was created, formatted as a date-time string.
A publicly available URL for HubSpot to call where event payloads will be delivered.
Configuration details for webhook throttling.
Show child attributes
Show child attributes
When this subscription was last updated, formatted as a date-time string.
Last modified on March 30, 2026
Was this page helpful?
⌘I