curl --request POST \
--url https://api.hubapi.com/webhooks-journal/subscriptions/2026-03/filters \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"filter": {
"conditions": [
{
"filterType": "CRM_OBJECT_PROPERTY",
"property": "<string>",
"value": "<string>",
"values": [
"<string>"
]
}
]
},
"subscriptionId": 123
}
'import requests
url = "https://api.hubapi.com/webhooks-journal/subscriptions/2026-03/filters"
payload = {
"filter": { "conditions": [
{
"filterType": "CRM_OBJECT_PROPERTY",
"property": "<string>",
"value": "<string>",
"values": ["<string>"]
}
] },
"subscriptionId": 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({
filter: {
conditions: [
{
filterType: 'CRM_OBJECT_PROPERTY',
property: '<string>',
value: '<string>',
values: ['<string>']
}
]
},
subscriptionId: 123
})
};
fetch('https://api.hubapi.com/webhooks-journal/subscriptions/2026-03/filters', 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-journal/subscriptions/2026-03/filters",
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([
'filter' => [
'conditions' => [
[
'filterType' => 'CRM_OBJECT_PROPERTY',
'property' => '<string>',
'value' => '<string>',
'values' => [
'<string>'
]
]
]
],
'subscriptionId' => 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-journal/subscriptions/2026-03/filters"
payload := strings.NewReader("{\n \"filter\": {\n \"conditions\": [\n {\n \"filterType\": \"CRM_OBJECT_PROPERTY\",\n \"property\": \"<string>\",\n \"value\": \"<string>\",\n \"values\": [\n \"<string>\"\n ]\n }\n ]\n },\n \"subscriptionId\": 123\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-journal/subscriptions/2026-03/filters")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"filter\": {\n \"conditions\": [\n {\n \"filterType\": \"CRM_OBJECT_PROPERTY\",\n \"property\": \"<string>\",\n \"value\": \"<string>\",\n \"values\": [\n \"<string>\"\n ]\n }\n ]\n },\n \"subscriptionId\": 123\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.hubapi.com/webhooks-journal/subscriptions/2026-03/filters")
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 \"filter\": {\n \"conditions\": [\n {\n \"filterType\": \"CRM_OBJECT_PROPERTY\",\n \"property\": \"<string>\",\n \"value\": \"<string>\",\n \"values\": [\n \"<string>\"\n ]\n }\n ]\n },\n \"subscriptionId\": 123\n}"
response = http.request(request)
puts response.read_body{
"filterId": 123
}{
"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"
}
}Create a subscription filter
Create a new filter for a webhook subscription in your HubSpot account. This endpoint allows you to define specific conditions that a webhook event must meet to trigger the subscription. It is useful for managing and customizing the behavior of webhook subscriptions based on specific criteria.
curl --request POST \
--url https://api.hubapi.com/webhooks-journal/subscriptions/2026-03/filters \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"filter": {
"conditions": [
{
"filterType": "CRM_OBJECT_PROPERTY",
"property": "<string>",
"value": "<string>",
"values": [
"<string>"
]
}
]
},
"subscriptionId": 123
}
'import requests
url = "https://api.hubapi.com/webhooks-journal/subscriptions/2026-03/filters"
payload = {
"filter": { "conditions": [
{
"filterType": "CRM_OBJECT_PROPERTY",
"property": "<string>",
"value": "<string>",
"values": ["<string>"]
}
] },
"subscriptionId": 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({
filter: {
conditions: [
{
filterType: 'CRM_OBJECT_PROPERTY',
property: '<string>',
value: '<string>',
values: ['<string>']
}
]
},
subscriptionId: 123
})
};
fetch('https://api.hubapi.com/webhooks-journal/subscriptions/2026-03/filters', 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-journal/subscriptions/2026-03/filters",
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([
'filter' => [
'conditions' => [
[
'filterType' => 'CRM_OBJECT_PROPERTY',
'property' => '<string>',
'value' => '<string>',
'values' => [
'<string>'
]
]
]
],
'subscriptionId' => 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-journal/subscriptions/2026-03/filters"
payload := strings.NewReader("{\n \"filter\": {\n \"conditions\": [\n {\n \"filterType\": \"CRM_OBJECT_PROPERTY\",\n \"property\": \"<string>\",\n \"value\": \"<string>\",\n \"values\": [\n \"<string>\"\n ]\n }\n ]\n },\n \"subscriptionId\": 123\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-journal/subscriptions/2026-03/filters")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"filter\": {\n \"conditions\": [\n {\n \"filterType\": \"CRM_OBJECT_PROPERTY\",\n \"property\": \"<string>\",\n \"value\": \"<string>\",\n \"values\": [\n \"<string>\"\n ]\n }\n ]\n },\n \"subscriptionId\": 123\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.hubapi.com/webhooks-journal/subscriptions/2026-03/filters")
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 \"filter\": {\n \"conditions\": [\n {\n \"filterType\": \"CRM_OBJECT_PROPERTY\",\n \"property\": \"<string>\",\n \"value\": \"<string>\",\n \"values\": [\n \"<string>\"\n ]\n }\n ]\n },\n \"subscriptionId\": 123\n}"
response = http.request(request)
puts response.read_body{
"filterId": 123
}{
"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.
Body
Defines a single condition for searching CRM objects, specifying the property to filter on, the operator to use (such as equals, greater than, or contains), and the value(s) to compare against.
Show child attributes
Show child attributes
The unique identifier of the subscription to which the filter will be applied. It is an integer formatted as int64.
Response
successful operation
The unique identifier for the created filter. It is an integer formatted as int64.
Was this page helpful?