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
Crea una nueva definición de evento de comportamiento en la cuenta de HubSpot. Este punto de terminación te permite definir la estructura y las propiedades de un nuevo evento de comportamiento, que luego puedes usar para rastrear acciones o comportamientos específicos de los usuarios. El cuerpo de la solicitud debe incluir los detalles del evento y las definiciones de propiedades necesarios.
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
Autorizaciones
The access token received from the authorization server in the OAuth 2.0 flow.
Cuerpo
Un booleano que indica si se deben incluir las propiedades predeterminadas.
Una cadena que representa la etiqueta del tipo de evento.
Un conjunto de definiciones de propiedades, cada una representada por un objeto ExternalBehavioralEventPropertyCreate.
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Una cadena que proporciona una descripción del tipo de evento.
Una cadena que representa el nombre del tipo de evento.
Una cadena que indica el objeto principal asociado al tipo de evento.
Respuesta
successful operation
Un booleano que indica si el tipo de evento está archivado.
Un conjunto de definiciones de asociación relacionadas con el tipo de evento.
Show child attributes
Show child attributes
Una cadena que representa el nombre completo del tipo de evento.
Una cadena que representa el identificador único del tipo de evento.
Show child attributes
Show child attributes
Una cadena que representa el nombre del tipo de evento.
Una cadena que representa el ID del tipo de objeto asociado al tipo de evento.
Un conjunto de objetos de propiedades asociados con el tipo de evento.
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Una cadena que representa la fecha y hora en que se creó el tipo de evento, en formato ISO 8601.
Un número entero que representa el ID del usuario que creó el tipo de evento.
Show child attributes
Show child attributes
Una cadena que proporciona una descripción del tipo de evento.
La plantilla de renderizado para el cuerpo de la tarjeta de actividad de la cronología del CRM.
La plantilla de renderizado para el encabezado de la tarjeta de actividad de la cronología del CRM.
Una cadena que representa el objeto principal asociado con el tipo de evento.
Una cadena que representa el ID del objeto principal asociado al tipo de evento.
Una cadena que indica el tipo de seguimiento del evento. Los valores válidos incluyen "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 Una cadena que representa la fecha y hora de la última actualización del tipo de evento, en formato ISO 8601.
Un número entero que representa el ID del usuario que actualizó por última vez el tipo de evento.