curl --request POST \
--url https://api.hubapi.com/webhooks-journal/subscriptions/2026-09/filters \
--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-09/filters"
payload = {
"filter": { "conditions": [
{
"filterType": "CRM_OBJECT_PROPERTY",
"property": "<string>",
"value": "<string>",
"values": ["<string>"]
}
] },
"subscriptionId": 123
}
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'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-09/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-09/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 => [
"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-09/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("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-09/filters")
.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-09/filters")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
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
Créer un nouveau filtre pour un abonnement de webhook spécifique dans le compte HubSpot. Ce point de terminaison vous permet de définir les conditions qui déterminent le déclenchement d’un webhook. Le filtre est associé à un abonnement identifié par son ID, et la requête doit inclure les détails du filtre.
curl --request POST \
--url https://api.hubapi.com/webhooks-journal/subscriptions/2026-09/filters \
--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-09/filters"
payload = {
"filter": { "conditions": [
{
"filterType": "CRM_OBJECT_PROPERTY",
"property": "<string>",
"value": "<string>",
"values": ["<string>"]
}
] },
"subscriptionId": 123
}
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'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-09/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-09/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 => [
"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-09/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("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-09/filters")
.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-09/filters")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
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
Corps
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
Un entier représentant l'identifiant unique de l'abonnement auquel le filtre sera appliqué. Il est obligatoire et utilise le format int64.
Réponse
successful operation
L'identifiant unique du filtre créé. Il s'agit d'un entier au format int64.