Skip to main content
POST
/
events
/
v3
/
event-definitions
Create custom event definition
curl --request POST \
  --url https://api.hubapi.com/events/v3/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>"
        }
      ]
    }
  ],
  "customMatchingId": {
    "primaryObjectRule": {
      "eventPropertyName": "<string>",
      "targetObjectPropertyName": "<string>"
    }
  },
  "description": "<string>",
  "name": "<string>",
  "primaryObject": "<string>"
}
'
{
  "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>",
      "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
      },
      "referencedObjectType": "<string>",
      "sensitiveDataCategories": [
        "<string>"
      ],
      "showCurrencySymbol": true,
      "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>",
              "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>",
  "primaryObject": "<string>",
  "primaryObjectId": "<string>",
  "trackingType": "APP_EVENT",
  "updatedAt": "2023-11-07T05:31:56Z",
  "updatedUserId": 123
}

Supported products

Authorizations

Authorization
string
header
required

The access token received from the authorization server in the OAuth 2.0 flow.

Body

application/json
includeDefaultProperties
boolean
required
label
string
required

Human readable label for the event. Used in HubSpot UI

propertyDefinitions
object[]
required

List of custom properties on event

customMatchingId
object
description
string

A description of the event that will be shown as help text in HubSpot.

name
string

Internal event name, which must be used when referencing the event from this event definitions API. If a name is not supplied, one will be generated based on the label. The name value will also be used to automatically generate a fullyQualifiedName for the event definition, which you'll use when sending event completions to this event.

primaryObject
string

The object type to associate this event to. Can be one of CONTACT, COMPANY, DEAL, TICKET. If no primaryObject is supplied, we will default to associating the event to CONTACT objects.

Response

successful operation

archived
boolean
required
associations
object[]
required
fullyQualifiedName
string
required
id
string
required
labels
object
required
name
string
required
objectTypeId
string
required
properties
object[]
required
comboEventRules
object
createdAt
string<date-time>
createdUserId
integer<int32>
customMatchingId
object
description
string
primaryObject
string
primaryObjectId
string
trackingType
enum<string>
Available options:
APP_EVENT,
AUTOCAPTURE_EVENT,
CLICKED_ELEMENT,
COMBO_EVENT,
CUSTOM_SCRIPT,
CUSTOM_SIGNAL,
IMPORT,
MANUAL,
PROPERTY_CHANGE,
VISITED_URL,
WEBHOOK
updatedAt
string<date-time>
updatedUserId
integer<int32>
Last modified on March 30, 2026