curl --request POST \
--url https://api.hubapi.com/webhooks/2026-03/{appId}/subscriptions/batch/update \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"inputs": [
{
"active": true,
"id": 123
}
]
}
'import requests
url = "https://api.hubapi.com/webhooks/2026-03/{appId}/subscriptions/batch/update"
payload = { "inputs": [
{
"active": True,
"id": 123
}
] }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({inputs: [{active: true, id: 123}]})
};
fetch('https://api.hubapi.com/webhooks/2026-03/{appId}/subscriptions/batch/update', 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/2026-03/{appId}/subscriptions/batch/update",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'inputs' => [
[
'active' => true,
'id' => 123
]
]
]),
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/2026-03/{appId}/subscriptions/batch/update"
payload := strings.NewReader("{\n \"inputs\": [\n {\n \"active\": true,\n \"id\": 123\n }\n ]\n}")
req, _ := http.NewRequest("POST", 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.post("https://api.hubapi.com/webhooks/2026-03/{appId}/subscriptions/batch/update")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"inputs\": [\n {\n \"active\": true,\n \"id\": 123\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.hubapi.com/webhooks/2026-03/{appId}/subscriptions/batch/update")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"inputs\": [\n {\n \"active\": true,\n \"id\": 123\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"completedAt": "2023-11-07T05:31:56Z",
"results": [
{
"active": true,
"createdAt": "2023-11-07T05:31:56Z",
"id": "<string>",
"eventTypeName": "<string>",
"objectTypeId": "<string>",
"propertyName": "<string>",
"updatedAt": "2023-11-07T05:31:56Z"
}
],
"startedAt": "2023-11-07T05:31:56Z",
"links": {},
"requestedAt": "2023-11-07T05:31:56Z"
}{
"completedAt": "2023-11-07T05:31:56Z",
"results": [
{
"active": true,
"createdAt": "2023-11-07T05:31:56Z",
"id": "<string>",
"eventTypeName": "<string>",
"objectTypeId": "<string>",
"propertyName": "<string>",
"updatedAt": "2023-11-07T05:31:56Z"
}
],
"startedAt": "2023-11-07T05:31:56Z",
"errors": [
{
"category": "<string>",
"context": {},
"errors": [
{
"message": "<string>",
"code": "<string>",
"context": "{missingScopes=[scope1, scope2]}",
"in": "<string>",
"subCategory": "<string>"
}
],
"links": {},
"message": "<string>",
"status": "<string>",
"id": "<string>",
"subCategory": {}
}
],
"links": {},
"numErrors": 123,
"requestedAt": "2023-11-07T05:31:56Z"
}{
"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"
}
}Update event subscriptions in batch
Batch create event subscriptions for the specified app.
curl --request POST \
--url https://api.hubapi.com/webhooks/2026-03/{appId}/subscriptions/batch/update \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"inputs": [
{
"active": true,
"id": 123
}
]
}
'import requests
url = "https://api.hubapi.com/webhooks/2026-03/{appId}/subscriptions/batch/update"
payload = { "inputs": [
{
"active": True,
"id": 123
}
] }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({inputs: [{active: true, id: 123}]})
};
fetch('https://api.hubapi.com/webhooks/2026-03/{appId}/subscriptions/batch/update', 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/2026-03/{appId}/subscriptions/batch/update",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'inputs' => [
[
'active' => true,
'id' => 123
]
]
]),
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/2026-03/{appId}/subscriptions/batch/update"
payload := strings.NewReader("{\n \"inputs\": [\n {\n \"active\": true,\n \"id\": 123\n }\n ]\n}")
req, _ := http.NewRequest("POST", 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.post("https://api.hubapi.com/webhooks/2026-03/{appId}/subscriptions/batch/update")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"inputs\": [\n {\n \"active\": true,\n \"id\": 123\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.hubapi.com/webhooks/2026-03/{appId}/subscriptions/batch/update")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"inputs\": [\n {\n \"active\": true,\n \"id\": 123\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"completedAt": "2023-11-07T05:31:56Z",
"results": [
{
"active": true,
"createdAt": "2023-11-07T05:31:56Z",
"id": "<string>",
"eventTypeName": "<string>",
"objectTypeId": "<string>",
"propertyName": "<string>",
"updatedAt": "2023-11-07T05:31:56Z"
}
],
"startedAt": "2023-11-07T05:31:56Z",
"links": {},
"requestedAt": "2023-11-07T05:31:56Z"
}{
"completedAt": "2023-11-07T05:31:56Z",
"results": [
{
"active": true,
"createdAt": "2023-11-07T05:31:56Z",
"id": "<string>",
"eventTypeName": "<string>",
"objectTypeId": "<string>",
"propertyName": "<string>",
"updatedAt": "2023-11-07T05:31:56Z"
}
],
"startedAt": "2023-11-07T05:31:56Z",
"errors": [
{
"category": "<string>",
"context": {},
"errors": [
{
"message": "<string>",
"code": "<string>",
"context": "{missingScopes=[scope1, scope2]}",
"in": "<string>",
"subCategory": "<string>"
}
],
"links": {},
"message": "<string>",
"status": "<string>",
"id": "<string>",
"subCategory": {}
}
],
"links": {},
"numErrors": 123,
"requestedAt": "2023-11-07T05:31:56Z"
}{
"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
The access token received from the authorization server in the OAuth 2.0 flow.
Path Parameters
The identifier for the app.
Body
An array of SubscriptionBatchUpdateRequest objects, each representing a subscription to be updated. This property is required.
Show child attributes
Show child attributes
Response
successful operation
The date and time when the batch operation was completed, in ISO 8601 format.
An array containing the results of the batch operation, with each item representing an individual subscription response.
Show child attributes
Show child attributes
The date and time when the batch operation started, in ISO 8601 format.
The current status of the batch operation. Valid values include 'PENDING', 'PROCESSING', 'CANCELED', and 'COMPLETE'.
CANCELED, COMPLETE, PENDING, PROCESSING A map of link names to associated URIs providing additional information about the batch operation.
Show child attributes
Show child attributes
The date and time when the batch operation was requested, in ISO 8601 format.
Was this page helpful?