curl --request POST \
--url https://api.hubapi.com/events/2026-09/event-definitions \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"includeDefaultProperties": true,
"label": "<string>",
"propertyDefinitions": [
{
"label": "<string>",
"type": "<string>",
"description": "<string>",
"name": "<string>",
"options": [
{
"displayOrder": 123,
"hidden": true,
"label": "<string>",
"value": "<string>",
"description": "<string>"
}
]
}
],
"description": "<string>",
"name": "<string>",
"primaryObject": "<string>"
}
'import requests
url = "https://api.hubapi.com/events/2026-09/event-definitions"
payload = {
"includeDefaultProperties": True,
"label": "<string>",
"propertyDefinitions": [
{
"label": "<string>",
"type": "<string>",
"description": "<string>",
"name": "<string>",
"options": [
{
"displayOrder": 123,
"hidden": True,
"label": "<string>",
"value": "<string>",
"description": "<string>"
}
]
}
],
"description": "<string>",
"name": "<string>",
"primaryObject": "<string>"
}
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({
includeDefaultProperties: true,
label: '<string>',
propertyDefinitions: [
{
label: '<string>',
type: '<string>',
description: '<string>',
name: '<string>',
options: [
{
displayOrder: 123,
hidden: true,
label: '<string>',
value: '<string>',
description: '<string>'
}
]
}
],
description: '<string>',
name: '<string>',
primaryObject: '<string>'
})
};
fetch('https://api.hubapi.com/events/2026-09/event-definitions', 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/events/2026-09/event-definitions",
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([
'includeDefaultProperties' => true,
'label' => '<string>',
'propertyDefinitions' => [
[
'label' => '<string>',
'type' => '<string>',
'description' => '<string>',
'name' => '<string>',
'options' => [
[
'displayOrder' => 123,
'hidden' => true,
'label' => '<string>',
'value' => '<string>',
'description' => '<string>'
]
]
]
],
'description' => '<string>',
'name' => '<string>',
'primaryObject' => '<string>'
]),
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/events/2026-09/event-definitions"
payload := strings.NewReader("{\n \"includeDefaultProperties\": true,\n \"label\": \"<string>\",\n \"propertyDefinitions\": [\n {\n \"label\": \"<string>\",\n \"type\": \"<string>\",\n \"description\": \"<string>\",\n \"name\": \"<string>\",\n \"options\": [\n {\n \"displayOrder\": 123,\n \"hidden\": true,\n \"label\": \"<string>\",\n \"value\": \"<string>\",\n \"description\": \"<string>\"\n }\n ]\n }\n ],\n \"description\": \"<string>\",\n \"name\": \"<string>\",\n \"primaryObject\": \"<string>\"\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/events/2026-09/event-definitions")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"includeDefaultProperties\": true,\n \"label\": \"<string>\",\n \"propertyDefinitions\": [\n {\n \"label\": \"<string>\",\n \"type\": \"<string>\",\n \"description\": \"<string>\",\n \"name\": \"<string>\",\n \"options\": [\n {\n \"displayOrder\": 123,\n \"hidden\": true,\n \"label\": \"<string>\",\n \"value\": \"<string>\",\n \"description\": \"<string>\"\n }\n ]\n }\n ],\n \"description\": \"<string>\",\n \"name\": \"<string>\",\n \"primaryObject\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.hubapi.com/events/2026-09/event-definitions")
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 \"includeDefaultProperties\": true,\n \"label\": \"<string>\",\n \"propertyDefinitions\": [\n {\n \"label\": \"<string>\",\n \"type\": \"<string>\",\n \"description\": \"<string>\",\n \"name\": \"<string>\",\n \"options\": [\n {\n \"displayOrder\": 123,\n \"hidden\": true,\n \"label\": \"<string>\",\n \"value\": \"<string>\",\n \"description\": \"<string>\"\n }\n ]\n }\n ],\n \"description\": \"<string>\",\n \"name\": \"<string>\",\n \"primaryObject\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"archived": true,
"associations": [
{
"allowsCustomLabels": true,
"cardinality": "ONE_TO_MANY",
"category": "HUBSPOT_DEFINED",
"fromObjectTypeId": "<string>",
"hasAllAssociatedObjects": true,
"hasCascadingDeletes": true,
"hasUserEnforcedMaxFromObjectIds": true,
"hasUserEnforcedMaxToObjectIds": true,
"hidden": true,
"id": 123,
"inverseAllowsCustomLabels": true,
"inverseCardinality": "ONE_TO_MANY",
"inverseHasAllAssociatedObjects": true,
"inverseId": 123,
"inverseName": "<string>",
"isDefault": true,
"isInversePrimary": true,
"isPrimary": true,
"maxFromObjectIds": 123,
"maxToObjectIds": 123,
"name": "<string>",
"portalUniqueIdentifier": "<string>",
"readOnly": true,
"toObjectTypeId": "<string>",
"fromObjectType": "ABANDONED_CART",
"hiddenReason": "DEFAULT",
"inverseLabel": "<string>",
"label": "<string>",
"toObjectType": "ABANDONED_CART"
}
],
"fullyQualifiedName": "<string>",
"id": "<string>",
"labels": {
"singular": "<string>",
"plural": "<string>"
},
"name": "<string>",
"objectTypeId": "<string>",
"properties": [
{
"description": "<string>",
"fieldType": "<string>",
"groupName": "<string>",
"label": "<string>",
"name": "<string>",
"options": [
{
"hidden": true,
"label": "<string>",
"value": "<string>",
"description": "<string>",
"displayOrder": 123
}
],
"type": "<string>",
"archived": true,
"archivedAt": "2023-11-07T05:31:56Z",
"calculated": true,
"calculationFormula": "<string>",
"createdAt": "2023-11-07T05:31:56Z",
"createdUserId": "<string>",
"currencyPropertyName": "<string>",
"dataSensitivity": "highly_sensitive",
"dateDisplayHint": "absolute",
"displayOrder": 123,
"externalOptions": true,
"formField": true,
"hasUniqueValue": true,
"hidden": false,
"hubspotDefined": true,
"modificationMetadata": {
"archivable": true,
"readOnlyDefinition": true,
"readOnlyValue": true,
"readOnlyOptions": true
},
"numberDisplayHint": "currency",
"referencedObjectType": "<string>",
"sensitiveDataCategories": [
"<string>"
],
"showCurrencySymbol": true,
"textDisplayHint": "domain_name",
"updatedAt": "2023-11-07T05:31:56Z",
"updatedUserId": "<string>"
}
],
"comboEventRules": {
"composingRules": [
{
"count": 123,
"eventTypeId": "<string>",
"propertyFilters": [
{
"filterType": "PROPERTY",
"operation": {
"includeObjectsWithNoValueSet": true,
"operationType": "<string>",
"operator": "HAS_EVER_BEEN_EQUAL_TO",
"operatorName": "<string>",
"propertyType": "bool",
"value": true,
"defaultValue": "<string>",
"propertyAspect": {
"aspect": "TIMERANGE_END",
"qualifier": "<string>"
},
"renderSpec": "<string>"
},
"property": "<string>",
"context": {
"objectTypeId": "<string>"
},
"filterInsightsId": 123,
"frameworkFilterId": 123
}
],
"lookbackWindowDays": 123
}
],
"operationType": "AND",
"ruleBranches": "<array>"
},
"createdAt": "2023-11-07T05:31:56Z",
"createdUserId": 123,
"customMatchingId": {
"primaryObjectRule": {
"eventPropertyName": "<string>",
"targetObjectPropertyName": "<string>"
}
},
"description": "<string>",
"detailTemplate": "<string>",
"headerTemplate": "<string>",
"primaryObject": "<string>",
"primaryObjectId": "<string>",
"trackingType": "APP_EVENT",
"updatedAt": "2023-11-07T05:31:56Z",
"updatedUserId": 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 an event definition
Crie uma nova definição de evento comportamental na sua conta HubSpot. Este endpoint permite definir a estrutura e as propriedades de um novo evento comportamental, que pode ser usado para rastrear ações ou comportamentos específicos do usuário. O corpo da solicitação deve incluir os detalhes do evento e as definições de propriedade necessários.
curl --request POST \
--url https://api.hubapi.com/events/2026-09/event-definitions \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"includeDefaultProperties": true,
"label": "<string>",
"propertyDefinitions": [
{
"label": "<string>",
"type": "<string>",
"description": "<string>",
"name": "<string>",
"options": [
{
"displayOrder": 123,
"hidden": true,
"label": "<string>",
"value": "<string>",
"description": "<string>"
}
]
}
],
"description": "<string>",
"name": "<string>",
"primaryObject": "<string>"
}
'import requests
url = "https://api.hubapi.com/events/2026-09/event-definitions"
payload = {
"includeDefaultProperties": True,
"label": "<string>",
"propertyDefinitions": [
{
"label": "<string>",
"type": "<string>",
"description": "<string>",
"name": "<string>",
"options": [
{
"displayOrder": 123,
"hidden": True,
"label": "<string>",
"value": "<string>",
"description": "<string>"
}
]
}
],
"description": "<string>",
"name": "<string>",
"primaryObject": "<string>"
}
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({
includeDefaultProperties: true,
label: '<string>',
propertyDefinitions: [
{
label: '<string>',
type: '<string>',
description: '<string>',
name: '<string>',
options: [
{
displayOrder: 123,
hidden: true,
label: '<string>',
value: '<string>',
description: '<string>'
}
]
}
],
description: '<string>',
name: '<string>',
primaryObject: '<string>'
})
};
fetch('https://api.hubapi.com/events/2026-09/event-definitions', 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/events/2026-09/event-definitions",
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([
'includeDefaultProperties' => true,
'label' => '<string>',
'propertyDefinitions' => [
[
'label' => '<string>',
'type' => '<string>',
'description' => '<string>',
'name' => '<string>',
'options' => [
[
'displayOrder' => 123,
'hidden' => true,
'label' => '<string>',
'value' => '<string>',
'description' => '<string>'
]
]
]
],
'description' => '<string>',
'name' => '<string>',
'primaryObject' => '<string>'
]),
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/events/2026-09/event-definitions"
payload := strings.NewReader("{\n \"includeDefaultProperties\": true,\n \"label\": \"<string>\",\n \"propertyDefinitions\": [\n {\n \"label\": \"<string>\",\n \"type\": \"<string>\",\n \"description\": \"<string>\",\n \"name\": \"<string>\",\n \"options\": [\n {\n \"displayOrder\": 123,\n \"hidden\": true,\n \"label\": \"<string>\",\n \"value\": \"<string>\",\n \"description\": \"<string>\"\n }\n ]\n }\n ],\n \"description\": \"<string>\",\n \"name\": \"<string>\",\n \"primaryObject\": \"<string>\"\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/events/2026-09/event-definitions")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"includeDefaultProperties\": true,\n \"label\": \"<string>\",\n \"propertyDefinitions\": [\n {\n \"label\": \"<string>\",\n \"type\": \"<string>\",\n \"description\": \"<string>\",\n \"name\": \"<string>\",\n \"options\": [\n {\n \"displayOrder\": 123,\n \"hidden\": true,\n \"label\": \"<string>\",\n \"value\": \"<string>\",\n \"description\": \"<string>\"\n }\n ]\n }\n ],\n \"description\": \"<string>\",\n \"name\": \"<string>\",\n \"primaryObject\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.hubapi.com/events/2026-09/event-definitions")
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 \"includeDefaultProperties\": true,\n \"label\": \"<string>\",\n \"propertyDefinitions\": [\n {\n \"label\": \"<string>\",\n \"type\": \"<string>\",\n \"description\": \"<string>\",\n \"name\": \"<string>\",\n \"options\": [\n {\n \"displayOrder\": 123,\n \"hidden\": true,\n \"label\": \"<string>\",\n \"value\": \"<string>\",\n \"description\": \"<string>\"\n }\n ]\n }\n ],\n \"description\": \"<string>\",\n \"name\": \"<string>\",\n \"primaryObject\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"archived": true,
"associations": [
{
"allowsCustomLabels": true,
"cardinality": "ONE_TO_MANY",
"category": "HUBSPOT_DEFINED",
"fromObjectTypeId": "<string>",
"hasAllAssociatedObjects": true,
"hasCascadingDeletes": true,
"hasUserEnforcedMaxFromObjectIds": true,
"hasUserEnforcedMaxToObjectIds": true,
"hidden": true,
"id": 123,
"inverseAllowsCustomLabels": true,
"inverseCardinality": "ONE_TO_MANY",
"inverseHasAllAssociatedObjects": true,
"inverseId": 123,
"inverseName": "<string>",
"isDefault": true,
"isInversePrimary": true,
"isPrimary": true,
"maxFromObjectIds": 123,
"maxToObjectIds": 123,
"name": "<string>",
"portalUniqueIdentifier": "<string>",
"readOnly": true,
"toObjectTypeId": "<string>",
"fromObjectType": "ABANDONED_CART",
"hiddenReason": "DEFAULT",
"inverseLabel": "<string>",
"label": "<string>",
"toObjectType": "ABANDONED_CART"
}
],
"fullyQualifiedName": "<string>",
"id": "<string>",
"labels": {
"singular": "<string>",
"plural": "<string>"
},
"name": "<string>",
"objectTypeId": "<string>",
"properties": [
{
"description": "<string>",
"fieldType": "<string>",
"groupName": "<string>",
"label": "<string>",
"name": "<string>",
"options": [
{
"hidden": true,
"label": "<string>",
"value": "<string>",
"description": "<string>",
"displayOrder": 123
}
],
"type": "<string>",
"archived": true,
"archivedAt": "2023-11-07T05:31:56Z",
"calculated": true,
"calculationFormula": "<string>",
"createdAt": "2023-11-07T05:31:56Z",
"createdUserId": "<string>",
"currencyPropertyName": "<string>",
"dataSensitivity": "highly_sensitive",
"dateDisplayHint": "absolute",
"displayOrder": 123,
"externalOptions": true,
"formField": true,
"hasUniqueValue": true,
"hidden": false,
"hubspotDefined": true,
"modificationMetadata": {
"archivable": true,
"readOnlyDefinition": true,
"readOnlyValue": true,
"readOnlyOptions": true
},
"numberDisplayHint": "currency",
"referencedObjectType": "<string>",
"sensitiveDataCategories": [
"<string>"
],
"showCurrencySymbol": true,
"textDisplayHint": "domain_name",
"updatedAt": "2023-11-07T05:31:56Z",
"updatedUserId": "<string>"
}
],
"comboEventRules": {
"composingRules": [
{
"count": 123,
"eventTypeId": "<string>",
"propertyFilters": [
{
"filterType": "PROPERTY",
"operation": {
"includeObjectsWithNoValueSet": true,
"operationType": "<string>",
"operator": "HAS_EVER_BEEN_EQUAL_TO",
"operatorName": "<string>",
"propertyType": "bool",
"value": true,
"defaultValue": "<string>",
"propertyAspect": {
"aspect": "TIMERANGE_END",
"qualifier": "<string>"
},
"renderSpec": "<string>"
},
"property": "<string>",
"context": {
"objectTypeId": "<string>"
},
"filterInsightsId": 123,
"frameworkFilterId": 123
}
],
"lookbackWindowDays": 123
}
],
"operationType": "AND",
"ruleBranches": "<array>"
},
"createdAt": "2023-11-07T05:31:56Z",
"createdUserId": 123,
"customMatchingId": {
"primaryObjectRule": {
"eventPropertyName": "<string>",
"targetObjectPropertyName": "<string>"
}
},
"description": "<string>",
"detailTemplate": "<string>",
"headerTemplate": "<string>",
"primaryObject": "<string>",
"primaryObjectId": "<string>",
"trackingType": "APP_EVENT",
"updatedAt": "2023-11-07T05:31:56Z",
"updatedUserId": 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
Required Scopes
Required Scopes
Autorizações
The access token received from the authorization server in the OAuth 2.0 flow.
Corpo
Um booleano que indica se as propriedades padrão devem ser incluídas.
Uma string que representa o rótulo do tipo de evento.
Uma matriz de definições de propriedade, cada uma representada por um objeto ExternalBehavioralEventPropertyCreate.
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Uma string que fornece uma descrição do tipo de evento.
Uma string que representa o nome do tipo de evento.
Uma string que indica o objeto principal associado ao tipo de evento.
Resposta
successful operation
Um booleano que indica se o tipo de evento está arquivado.
Uma matriz de definições de associação relacionadas ao tipo de evento.
Show child attributes
Show child attributes
Uma string que representa o nome totalmente qualificado do tipo de evento.
Uma string que representa o identificador exclusivo do tipo de evento.
Show child attributes
Show child attributes
Uma string que representa o nome do tipo de evento.
Uma string que representa o ID do tipo de objeto associado ao tipo de evento.
Uma matriz de objetos de propriedade associados ao tipo de evento.
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Uma string que representa a data e a hora em que o tipo de evento foi criado, no formato ISO 8601.
Um número inteiro que representa o ID do usuário que criou o tipo de evento.
Show child attributes
Show child attributes
Uma string que fornece uma descrição do tipo de evento.
Modelo de renderização para o corpo do cartão de atividade da linha do tempo do CRM.
Modelo de renderização para o cabeçalho do cartão de atividade da linha do tempo do CRM.
Uma string que representa o objeto principal associado ao tipo de evento.
Uma string que representa o ID do objeto principal associado ao tipo de evento.
String que indica o tipo de rastreamento do evento. Valores válidos incluem "VISITED_URL", "CLICKED_ELEMENT", "CUSTOM_SCRIPT", "MANUAL", "IMPORT", "PROPERTY_CHANGE", "COMBO_EVENT".
APP_EVENT, AUTOCAPTURE_EVENT, CLICKED_ELEMENT, COMBO_EVENT, CUSTOM_SCRIPT, CUSTOM_SIGNAL, IMPORT, MANUAL, POLLING, PROPERTY_CHANGE, VISITED_URL, WEBHOOK Uma string que representa a data e a hora em que o tipo de evento foi atualizado pela última vez, no formato ISO 8601.
Um número inteiro que representa o ID do usuário que atualizou pela última vez o tipo de evento.