{ "openapi" : "3.0.1", "info" : { "title" : "Webhooks Webhooks", "description" : "Provides a way for apps to subscribe to certain change events in HubSpot. Once configured, apps will receive event payloads containing details about the changes at a specified target URL. There can only be one target URL for receiving event notifications per app.", "version" : "v3", "x-hubspot-product-tier-requirements" : { "marketing" : "FREE", "sales" : "FREE", "service" : "FREE", "cms" : "FREE", "commerce" : "FREE", "crmHub" : "FREE", "dataHub" : "FREE" }, "x-hubspot-related-documentation" : [ { "name" : "Webhooks Guide", "url" : "https://developers.hubspot.com/docs/guides/api/webhooks/overview" } ] }, "servers" : [ { "url" : "https://api.hubapi.com" } ], "tags" : [ { "name" : "Basic" }, { "name" : "Batch" } ], "paths" : { "/webhooks/v3/{appId}/settings" : { "get" : { "tags" : [ "Basic" ], "summary" : "Read webhook settings", "description" : "Retrieve the webhook settings for the specified app, including the webhook’s target URL, throttle configuration, and create/update date.", "operationId" : "get-/webhooks/v3/{appId}/settings_getAll", "parameters" : [ { "name" : "appId", "in" : "path", "description" : "The ID of the target app.", "required" : true, "style" : "simple", "explode" : false, "schema" : { "type" : "integer", "format" : "int32", "example" : null } } ], "responses" : { "200" : { "description" : "successful operation", "content" : { "application/json" : { "schema" : { "$ref" : "#/components/schemas/SettingsResponse" }, "example" : { "createdAt" : "2020-01-24T16:27:59Z", "targetUrl" : "https://www.example.com/hubspot/target", "throttling" : { "maxConcurrentRequests" : 10, "period" : "SECONDLY" }, "updatedAt" : "2020-01-24T16:32:43Z" } } } }, "default" : { "description" : "", "$ref" : "#/components/responses/Error" } }, "security" : [ { "developer_hapikey" : [ ] } ] }, "put" : { "tags" : [ "Basic" ], "summary" : "Update webhook settings", "description" : "Update webhook settings for the specified app.", "operationId" : "put-/webhooks/v3/{appId}/settings_configure", "parameters" : [ { "name" : "appId", "in" : "path", "description" : "The ID of the target app.", "required" : true, "style" : "simple", "explode" : false, "schema" : { "type" : "integer", "format" : "int32", "example" : null } } ], "requestBody" : { "description" : "New webhook settings to configure for the app, or updated settings to replace existing configuration.", "content" : { "application/json" : { "schema" : { "$ref" : "#/components/schemas/SettingsChangeRequest" }, "example" : null } }, "required" : true }, "responses" : { "200" : { "description" : "successful operation", "content" : { "application/json" : { "schema" : { "$ref" : "#/components/schemas/SettingsResponse" }, "example" : { "createdAt" : "2020-01-24T16:27:59Z", "targetUrl" : "https://www.example.com/hubspot/target", "throttling" : { "maxConcurrentRequests" : 10, "period" : "SECONDLY" }, "updatedAt" : "2020-01-24T16:32:43Z" } } } }, "default" : { "description" : "", "$ref" : "#/components/responses/Error" } }, "security" : [ { "developer_hapikey" : [ ] } ] }, "delete" : { "tags" : [ "Basic" ], "summary" : "Delete webhook settings", "description" : "Delete the webhook settings for the specified app. Event subscriptions will not be deleted, but will be paused until another webhook is created.", "operationId" : "delete-/webhooks/v3/{appId}/settings_clear", "parameters" : [ { "name" : "appId", "in" : "path", "description" : "The ID of the target app.", "required" : true, "style" : "simple", "explode" : false, "schema" : { "type" : "integer", "format" : "int32", "example" : null } } ], "responses" : { "204" : { "description" : "No content", "content" : { } }, "default" : { "description" : "", "$ref" : "#/components/responses/Error" } }, "security" : [ { "developer_hapikey" : [ ] } ] } }, "/webhooks/v3/{appId}/subscriptions" : { "get" : { "tags" : [ "Basic" ], "summary" : "Read event subscriptions", "description" : "Retrieve event subscriptions for the specified app.", "operationId" : "get-/webhooks/v3/{appId}/subscriptions_getAll", "parameters" : [ { "name" : "appId", "in" : "path", "description" : "The ID of the target app.", "required" : true, "style" : "simple", "explode" : false, "schema" : { "type" : "integer", "format" : "int32", "example" : null } } ], "responses" : { "200" : { "description" : "successful operation", "content" : { "application/json" : { "schema" : { "$ref" : "#/components/schemas/SubscriptionListResponse" }, "example" : { "results" : [ { "active" : true, "createdAt" : "2019-10-30T03:30:17.883Z", "eventType" : "contact.propertyChange", "id" : "12", "propertyName" : "email", "updatedAt" : "2019-11-30T03:30:17.883Z" }, { "active" : true, "createdAt" : "2019-10-30T03:30:17.883Z", "eventType" : "deal.creation", "id" : "13", "updatedAt" : "2019-11-30T03:30:17.883Z" } ] } } } }, "default" : { "description" : "", "$ref" : "#/components/responses/Error" } }, "security" : [ { "developer_hapikey" : [ ] } ] }, "post" : { "tags" : [ "Basic" ], "summary" : "Create an event subscription", "description" : "Create new event subscription for the specified app.", "operationId" : "post-/webhooks/v3/{appId}/subscriptions_create", "parameters" : [ { "name" : "appId", "in" : "path", "description" : "The ID of the target app.", "required" : true, "style" : "simple", "explode" : false, "schema" : { "type" : "integer", "format" : "int32", "example" : null } } ], "requestBody" : { "description" : "Details about the new subscription.", "content" : { "application/json" : { "schema" : { "$ref" : "#/components/schemas/SubscriptionCreateRequest" }, "example" : null } }, "required" : true }, "responses" : { "201" : { "description" : "successful operation", "headers" : { "Location" : { "description" : "URL of the newly created resource", "style" : "simple", "explode" : false, "schema" : { "type" : "string", "example" : null } } }, "content" : { "application/json" : { "schema" : { "$ref" : "#/components/schemas/SubscriptionResponse" }, "example" : { "active" : true, "createdAt" : "2019-10-30T03:30:17.883Z", "eventType" : "contact.propertyChange", "id" : "12", "propertyName" : "email", "updatedAt" : "2019-11-30T03:30:17.883Z" } } } }, "default" : { "description" : "", "$ref" : "#/components/responses/Error" } }, "security" : [ { "developer_hapikey" : [ ] } ] } }, "/webhooks/v3/{appId}/subscriptions/batch/update" : { "post" : { "tags" : [ "Batch" ], "summary" : "Batch create event subscriptions", "description" : "Batch create event subscriptions for the specified app.", "operationId" : "post-/webhooks/v3/{appId}/subscriptions/batch/update_updateBatch", "parameters" : [ { "name" : "appId", "in" : "path", "description" : "The ID of the target app.", "required" : true, "style" : "simple", "explode" : false, "schema" : { "type" : "integer", "format" : "int32", "example" : null } } ], "requestBody" : { "description" : "Updated details for the specified subscriptions.", "content" : { "application/json" : { "schema" : { "$ref" : "#/components/schemas/BatchInputSubscriptionBatchUpdateRequest" }, "example" : null } }, "required" : true }, "responses" : { "200" : { "description" : "successful operation", "content" : { "application/json" : { "schema" : { "$ref" : "#/components/schemas/BatchResponseSubscriptionResponse" }, "example" : { "completedAt" : "2020-04-17T02:19:26.283Z", "results" : [ { "active" : true, "createdAt" : "2019-06-06T16:56:16.652Z", "eventType" : "contact.propertyChange", "id" : "1234", "propertyName" : "firstname", "updatedAt" : "2019-08-06T16:56:16.652Z" }, { "active" : false, "createdAt" : "2019-06-06T16:56:16.652Z", "eventType" : "contact.create", "id" : "4567", "updatedAt" : "2019-08-06T16:56:16.652Z" } ], "startedAt" : "2020-04-17T02:19:26.256Z", "status" : "COMPLETE" } } } }, "207" : { "description" : "multiple statuses", "content" : { "application/json" : { "schema" : { "$ref" : "#/components/schemas/BatchResponseSubscriptionResponseWithErrors" }, "example" : { "completedAt" : "2020-04-17T02:19:26.283Z", "errors" : [ { "category" : "SUBSCRIPTION_ID_NOT_FOUND", "context" : { "subscriptionIds" : [ "4567" ] }, "message" : "Failed to find subscriptions by id `4567`. Try again using a different subscriptionId.", "status" : "error", "subCategory" : "SubscriptionErrors.SUBSCRIPTION_IDS_NOT_FOUND" } ], "numErrors" : 1, "results" : [ { "active" : true, "createdAt" : "2019-06-06T16:56:16.652Z", "eventType" : "contact.propertyChange", "id" : "1234", "propertyName" : "firstname", "updatedAt" : "2019-08-06T16:56:16.652Z" } ], "startedAt" : "2020-04-17T02:19:26.256Z", "status" : "COMPLETE" } } } }, "default" : { "description" : "", "$ref" : "#/components/responses/Error" } }, "security" : [ { "developer_hapikey" : [ ] } ] } }, "/webhooks/v3/{appId}/subscriptions/{subscriptionId}" : { "get" : { "tags" : [ "Basic" ], "summary" : "Read an event subscription", "description" : "Retrieve a specific event subscription by ID.", "operationId" : "get-/webhooks/v3/{appId}/subscriptions/{subscriptionId}_getById", "parameters" : [ { "name" : "appId", "in" : "path", "description" : "The ID of the target app.", "required" : true, "style" : "simple", "explode" : false, "schema" : { "type" : "integer", "format" : "int32", "example" : null } }, { "name" : "subscriptionId", "in" : "path", "description" : "The ID of the target subscription.", "required" : true, "style" : "simple", "explode" : false, "schema" : { "type" : "integer", "format" : "int32", "example" : null } } ], "responses" : { "200" : { "description" : "successful operation", "content" : { "application/json" : { "schema" : { "$ref" : "#/components/schemas/SubscriptionResponse" }, "example" : { "active" : true, "createdAt" : "2019-10-30T03:30:17.883Z", "eventType" : "contact.propertyChange", "id" : "12", "propertyName" : "email", "updatedAt" : "2019-11-30T03:30:17.883Z" } } } }, "default" : { "description" : "", "$ref" : "#/components/responses/Error" } }, "security" : [ { "developer_hapikey" : [ ] } ] }, "delete" : { "tags" : [ "Basic" ], "summary" : "Delete event subscription", "description" : "Delete an existing event subscription by ID.", "operationId" : "delete-/webhooks/v3/{appId}/subscriptions/{subscriptionId}_archive", "parameters" : [ { "name" : "appId", "in" : "path", "description" : "The ID of the target app.", "required" : true, "style" : "simple", "explode" : false, "schema" : { "type" : "integer", "format" : "int32", "example" : null } }, { "name" : "subscriptionId", "in" : "path", "description" : "The ID of the subscription to delete.", "required" : true, "style" : "simple", "explode" : false, "schema" : { "type" : "integer", "format" : "int32", "example" : null } } ], "responses" : { "204" : { "description" : "No content", "content" : { } }, "default" : { "description" : "", "$ref" : "#/components/responses/Error" } }, "security" : [ { "developer_hapikey" : [ ] } ] }, "patch" : { "tags" : [ "Basic" ], "summary" : "Update an event subscription", "description" : "Update an existing event subscription by ID.", "operationId" : "patch-/webhooks/v3/{appId}/subscriptions/{subscriptionId}_update", "parameters" : [ { "name" : "appId", "in" : "path", "description" : "The ID of the target app.", "required" : true, "style" : "simple", "explode" : false, "schema" : { "type" : "integer", "format" : "int32", "example" : null } }, { "name" : "subscriptionId", "in" : "path", "description" : "The ID of the subscription to update.", "required" : true, "style" : "simple", "explode" : false, "schema" : { "type" : "integer", "format" : "int32", "example" : null } } ], "requestBody" : { "description" : "Updated details for the subscription.", "content" : { "application/json" : { "schema" : { "$ref" : "#/components/schemas/SubscriptionPatchRequest" }, "example" : null } }, "required" : true }, "responses" : { "200" : { "description" : "successful operation", "content" : { "application/json" : { "schema" : { "$ref" : "#/components/schemas/SubscriptionResponse" }, "example" : { "active" : true, "createdAt" : "2019-10-30T03:30:17.883Z", "eventType" : "contact.propertyChange", "id" : "12", "propertyName" : "email", "updatedAt" : "2019-11-30T03:30:17.883Z" } } } }, "default" : { "description" : "", "$ref" : "#/components/responses/Error" } }, "security" : [ { "developer_hapikey" : [ ] } ] } } }, "components" : { "schemas" : { "BatchInputSubscriptionBatchUpdateRequest" : { "required" : [ "inputs" ], "type" : "object", "properties" : { "inputs" : { "type" : "array", "description" : "An array of SubscriptionBatchUpdateRequest objects, each representing the updated settings for a specific webhook subscription in the batch operation.", "example" : null, "items" : { "$ref" : "#/components/schemas/SubscriptionBatchUpdateRequest" } } }, "example" : null }, "BatchResponseSubscriptionResponse" : { "required" : [ "completedAt", "results", "startedAt", "status" ], "type" : "object", "properties" : { "completedAt" : { "type" : "string", "description" : "The timestamp when the batch operation completed, in ISO 8601 format.", "format" : "date-time", "example" : null }, "links" : { "type" : "object", "additionalProperties" : { "type" : "string", "example" : null }, "description" : "An object containing URLs for related resources or operations.", "example" : null }, "requestedAt" : { "type" : "string", "description" : "The timestamp when the batch operation was requested, in ISO 8601 format.", "format" : "date-time", "example" : null }, "results" : { "type" : "array", "description" : "An array containing the successfully processed webhook subscriptions from the batch operation.", "example" : null, "items" : { "$ref" : "#/components/schemas/SubscriptionResponse" } }, "startedAt" : { "type" : "string", "description" : "The timestamp when the batch operation started processing, in ISO 8601 format.", "format" : "date-time", "example" : null }, "status" : { "type" : "string", "description" : "The status of the batch operation. Accepted values are 'PENDING', 'PROCESSING', 'CANCELED', or 'COMPLETE'.", "example" : null, "enum" : [ "CANCELED", "COMPLETE", "PENDING", "PROCESSING" ] } }, "example" : null }, "BatchResponseSubscriptionResponseWithErrors" : { "required" : [ "completedAt", "results", "startedAt", "status" ], "type" : "object", "properties" : { "completedAt" : { "type" : "string", "description" : "The timestamp when the batch operation completed, in ISO 8601 format (e.g., 2020-02-29T12:30:00Z).", "format" : "date-time", "example" : null }, "errors" : { "type" : "array", "description" : "An array containing error details for any subscriptions that failed to process during the batch operation.", "example" : null, "items" : { "$ref" : "#/components/schemas/StandardError" } }, "links" : { "type" : "object", "additionalProperties" : { "type" : "string", "example" : null }, "description" : "An object containing URLs for related resources or operations.", "example" : null }, "numErrors" : { "type" : "integer", "description" : "The number of errors that occurred during the batch operation.", "format" : "int32", "example" : null }, "requestedAt" : { "type" : "string", "description" : "The timestamp when the batch operation was requested, in ISO 8601 format (e.g., 2020-02-29T12:30:00Z).", "format" : "date-time", "example" : null }, "results" : { "type" : "array", "description" : "An array containing the successfully processed webhook subscriptions from the batch operation.", "example" : null, "items" : { "$ref" : "#/components/schemas/SubscriptionResponse" } }, "startedAt" : { "type" : "string", "description" : "The timestamp when the batch operation started processing, in ISO 8601 format (e.g., 2020-02-29T12:30:00Z).", "format" : "date-time", "example" : null }, "status" : { "type" : "string", "description" : "The status of the batch operation. Accepted values are PENDING, PROCESSING, CANCELED, or COMPLETE.", "example" : null, "enum" : [ "CANCELED", "COMPLETE", "PENDING", "PROCESSING" ] } }, "description" : "Response for batch operations on webhook subscriptions, containing successful results and any errors that occurred.", "example" : { "completedAt" : "2020-04-17T02:19:26.283Z", "errors" : [ { "category" : "SUBSCRIPTION_ID_NOT_FOUND", "message" : "Failed to find subscriptions by id `4567`.", "status" : "error" } ], "numErrors" : 1, "results" : [ { "active" : true, "createdAt" : "2019-06-06T16:56:16.652Z", "eventType" : "contact.propertyChange", "id" : "1234", "propertyName" : "firstname", "updatedAt" : "2019-08-06T16:56:16.652Z" } ], "startedAt" : "2020-04-17T02:19:26.256Z", "status" : "COMPLETE" } }, "Error" : { "required" : [ "category", "correlationId", "message" ], "type" : "object", "properties" : { "category" : { "type" : "string", "description" : "The error category, represented as a string.", "example" : null }, "context" : { "type" : "object", "additionalProperties" : { "type" : "array", "example" : null, "items" : { "type" : "string", "example" : null } }, "description" : "An object containing context about the error condition. This includes additional properties, each of which is an array of strings.", "example" : "{invalidPropertyName=[propertyValue], missingScopes=[scope1, scope2]}" }, "correlationId" : { "type" : "string", "description" : "A unique identifier for the request, formatted as a UUID. Include this value with any error reports or support tickets.", "format" : "uuid", "example" : "aeb5f871-7f07-4993-9211-075dc63e7cbf" }, "errors" : { "type" : "array", "description" : "An array providing further information about the error. Each item in the array is an ErrorDetail object.", "example" : null, "items" : { "$ref" : "#/components/schemas/ErrorDetail" } }, "links" : { "type" : "object", "additionalProperties" : { "type" : "string", "example" : null }, "description" : "A map of link names to associated URIs containing documentation about the error or recommended remediation steps. This is an object with string properties.", "example" : null }, "message" : { "type" : "string", "description" : "A human-readable message describing the error along with remediation steps where appropriate. This is a string.", "example" : "An error occurred" }, "subCategory" : { "type" : "string", "description" : "A specific category that provides more detailed information about the error. This is a string.", "example" : null } }, "description" : "Represents an error response returned by the API when an operation fails. This component is used in various endpoints to provide detailed information about the error encountered.", "example" : { "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" } } }, "ErrorDetail" : { "required" : [ "message" ], "type" : "object", "properties" : { "code" : { "type" : "string", "description" : "The status code associated with the error detail.", "example" : null }, "context" : { "type" : "object", "additionalProperties" : { "type" : "array", "example" : null, "items" : { "type" : "string", "example" : null } }, "description" : "Context about the error condition, provided as an object with additional properties.", "example" : "{missingScopes=[scope1, scope2]}" }, "in" : { "type" : "string", "description" : "The name of the field or parameter in which the error was found.", "example" : null }, "message" : { "type" : "string", "description" : "A human readable message describing the error along with remediation steps where appropriate.", "example" : null }, "subCategory" : { "type" : "string", "description" : "A specific category that contains more specific detail about the error.", "example" : null } }, "description" : "Represents detailed information about an error that occurred in the API. This component is used to provide additional context and specifics about errors, typically as part of an error response.", "example" : null }, "SettingsChangeRequest" : { "required" : [ "targetUrl", "throttling" ], "type" : "object", "properties" : { "targetUrl" : { "type" : "string", "description" : "A publicly available URL for HubSpot to call where event payloads will be delivered. This URL must be accessible to receive event notifications.", "example" : null }, "throttling" : { "$ref" : "#/components/schemas/ThrottlingSettings" } }, "description" : "New or updated webhook settings for an app.", "example" : { "targetUrl" : "https://www.example.com/hubspot/target", "throttling" : { "maxConcurrentRequests" : 10, "period" : "SECONDLY" } } }, "SettingsResponse" : { "required" : [ "createdAt", "targetUrl", "throttling" ], "type" : "object", "properties" : { "createdAt" : { "type" : "string", "description" : "When this subscription was created, formatted as a date-time string.", "format" : "date-time", "example" : null }, "targetUrl" : { "type" : "string", "description" : "A publicly available URL for HubSpot to call where event payloads will be delivered.", "example" : null }, "throttling" : { "$ref" : "#/components/schemas/ThrottlingSettings" }, "updatedAt" : { "type" : "string", "description" : "When this subscription was last updated, formatted as a date-time string.", "format" : "date-time", "example" : null } }, "description" : "Webhook settings for an app.", "example" : { "createdAt" : "2020-01-24T16:27:59Z", "targetUrl" : "https://www.example.com/hubspot/target", "throttling" : { "maxConcurrentRequests" : 10, "period" : "SECONDLY" }, "updatedAt" : "2020-01-24T16:32:43Z" } }, "StandardError" : { "required" : [ "category", "context", "errors", "links", "message", "status" ], "type" : "object", "properties" : { "category" : { "type" : "string", "description" : "A string denoting the category of the error.", "example" : null }, "context" : { "type" : "object", "additionalProperties" : { "type" : "array", "example" : null, "items" : { "type" : "string", "example" : null } }, "description" : "An object containing context about the error condition, with additional properties as arrays of strings.", "example" : null }, "errors" : { "type" : "array", "description" : "An array of ErrorDetail objects, each providing further information about individual errors.", "example" : null, "items" : { "$ref" : "#/components/schemas/ErrorDetail" } }, "id" : { "type" : "string", "description" : "A string representing the unique identifier for the error.", "example" : null }, "links" : { "type" : "object", "additionalProperties" : { "type" : "string", "example" : null }, "description" : "An object mapping link names to associated URIs, which contain documentation about the error or recommended remediation steps.", "example" : null }, "message" : { "type" : "string", "description" : "A string containing a human-readable message that describes the error.", "example" : null }, "status" : { "type" : "string", "description" : "A string indicating the status of the error.", "example" : null }, "subCategory" : { "type" : "object", "properties" : { }, "description" : "An object providing additional, more specific categorization of the error.", "example" : null } }, "description" : "Represents a standard error response in the HubSpot API, providing detailed information about an error that occurred during an API request.", "example" : null }, "SubscriptionBatchUpdateRequest" : { "required" : [ "active", "id" ], "type" : "object", "properties" : { "active" : { "type" : "boolean", "description" : "Whether to activate or pause the webhook subscription. If true, the subscription will send webhook notifications. If false, the subscription is paused and will not send notifications. It is a boolean.", "example" : null }, "id" : { "type" : "integer", "description" : "The ID of the webhook subscription to update. It is an integer.", "format" : "int32", "example" : null } }, "description" : "Updated settings for a webhook subscription in a batch update operation.", "example" : { "active" : true, "id" : 12 } }, "SubscriptionCreateRequest" : { "required" : [ "eventType" ], "type" : "object", "properties" : { "active" : { "type" : "boolean", "description" : "Determines if the subscription is active or paused. Defaults to false.", "example" : null }, "eventType" : { "type" : "string", "description" : "Type of event to listen for. Can be one of `create`, `delete`, `deletedForPrivacy`, or `propertyChange`.", "example" : null, "enum" : [ "company.associationChange", "company.creation", "company.deletion", "company.merge", "company.propertyChange", "company.restore", "contact.associationChange", "contact.creation", "contact.deletion", "contact.merge", "contact.privacyDeletion", "contact.propertyChange", "contact.restore", "conversation.creation", "conversation.deletion", "conversation.newMessage", "conversation.privacyDeletion", "conversation.propertyChange", "deal.associationChange", "deal.creation", "deal.deletion", "deal.merge", "deal.propertyChange", "deal.restore", "event.completed", "line_item.associationChange", "line_item.creation", "line_item.deletion", "line_item.merge", "line_item.propertyChange", "line_item.restore", "object.associationChange", "object.creation", "object.deletion", "object.merge", "object.propertyChange", "object.restore", "product.creation", "product.deletion", "product.merge", "product.propertyChange", "product.restore", "ticket.associationChange", "ticket.creation", "ticket.deletion", "ticket.merge", "ticket.propertyChange", "ticket.restore" ] }, "eventTypeName" : { "type" : "string", "description" : "The name of the event to listen for. This is used with custom objects to specify custom event types beyond the standard eventType enum values.", "example" : null }, "objectTypeId" : { "type" : "string", "description" : "The ID of the object type for the subscription. This can be a standard CRM object (e.g., 'contact', 'company', 'deal') or a custom object ID for custom object subscriptions.", "example" : null }, "propertyName" : { "type" : "string", "description" : "The internal name of the property to monitor for changes. Only applies when `eventType` is `propertyChange`.", "example" : null } }, "description" : "Request to create a new webhook subscription for monitoring specific events. Each subscription defines which event type to listen for and whether to monitor all events of that type or specific property changes.", "example" : { "active" : true, "eventType" : "contact.propertyChange", "propertyName" : "email" } }, "SubscriptionListResponse" : { "required" : [ "results" ], "type" : "object", "properties" : { "results" : { "type" : "array", "description" : "An array containing all active and paused event subscriptions configured for the app. Each item in the array is a SubscriptionResponse object.", "example" : null, "items" : { "$ref" : "#/components/schemas/SubscriptionResponse" } } }, "description" : "List of event subscriptions for your app", "example" : null }, "SubscriptionPatchRequest" : { "type" : "object", "properties" : { "active" : { "type" : "boolean", "description" : "A boolean indicating whether to activate or pause the webhook subscription. If true, the subscription will send webhook notifications. If false, the subscription is paused and will not send notifications.", "example" : null } }, "description" : "Updated details for the subscription.", "example" : { "active" : true } }, "SubscriptionResponse" : { "required" : [ "active", "createdAt", "eventType", "id" ], "type" : "object", "properties" : { "active" : { "type" : "boolean", "description" : "Whether the subscription is active or paused. If true, the subscription will send webhook notifications. If false, the subscription is paused and will not send notifications.", "example" : null }, "createdAt" : { "type" : "string", "description" : "The timestamp when the webhook subscription was created, in ISO 8601 format (e.g., 2020-02-29T12:30:00Z).", "format" : "date-time", "example" : null }, "eventType" : { "type" : "string", "description" : "The type of event to listen for. Accepted values include contact.creation, contact.deletion, contact.propertyChange, and similar event types for other CRM objects and custom objects.", "example" : null, "enum" : [ "company.associationChange", "company.creation", "company.deletion", "company.merge", "company.propertyChange", "company.restore", "contact.associationChange", "contact.creation", "contact.deletion", "contact.merge", "contact.privacyDeletion", "contact.propertyChange", "contact.restore", "conversation.creation", "conversation.deletion", "conversation.newMessage", "conversation.privacyDeletion", "conversation.propertyChange", "deal.associationChange", "deal.creation", "deal.deletion", "deal.merge", "deal.propertyChange", "deal.restore", "event.completed", "line_item.associationChange", "line_item.creation", "line_item.deletion", "line_item.merge", "line_item.propertyChange", "line_item.restore", "object.associationChange", "object.creation", "object.deletion", "object.merge", "object.propertyChange", "object.restore", "product.creation", "product.deletion", "product.merge", "product.propertyChange", "product.restore", "ticket.associationChange", "ticket.creation", "ticket.deletion", "ticket.merge", "ticket.propertyChange", "ticket.restore" ] }, "eventTypeName" : { "type" : "string", "description" : "The name of the event to listen for. This is used with custom objects to specify custom event types beyond the standard eventType enum values.", "example" : null }, "id" : { "type" : "string", "description" : "The unique ID of the webhook subscription.", "example" : null }, "objectTypeId" : { "type" : "string", "description" : "The ID of the object type for the subscription. This can be a standard CRM object (e.g., 'contact', 'company', 'deal') or a custom object ID for custom object subscriptions.", "example" : null }, "propertyName" : { "type" : "string", "description" : "The internal name of the property to monitor for changes. Only applies when eventType is propertyChange.", "example" : null }, "updatedAt" : { "type" : "string", "description" : "The timestamp when the webhook subscription was last updated, in ISO 8601 format (e.g., 2020-02-29T12:30:00Z).", "format" : "date-time", "example" : null } }, "description" : "Complete details for an event subscription.", "example" : null }, "ThrottlingSettings" : { "required" : [ "maxConcurrentRequests" ], "type" : "object", "properties" : { "maxConcurrentRequests" : { "type" : "integer", "description" : "The maximum number of HTTP requests HubSpot will attempt to make to your app in a given time frame determined by `period`. This is an integer value.", "format" : "int32", "example" : null } }, "description" : "Configuration details for webhook throttling.", "example" : null } }, "responses" : { "Error" : { "description" : "An error occurred.", "content" : { "*/*" : { "schema" : { "$ref" : "#/components/schemas/Error" }, "example" : null } } } }, "securitySchemes" : { "developer_hapikey" : { "type" : "apiKey", "name" : "hapikey", "in" : "query" }, "oauth2" : { "type" : "oauth2", "flows" : { "authorizationCode" : { "authorizationUrl" : "https://app.hubspot.com/oauth/authorize", "tokenUrl" : "https://api.hubapi.com/oauth/v1/token", "scopes" : { } } } }, "private_apps" : { "type" : "apiKey", "name" : "private-app", "in" : "header" }, "private_apps_legacy" : { "type" : "apiKey", "name" : "private-app-legacy", "in" : "header" } } }, "x-hubspot-available-client-libraries" : [ "Node", "Python", "Ruby", "PHP" ], "x-hubspot-product-tier-requirements" : { "marketing" : "FREE", "sales" : "FREE", "service" : "FREE", "cms" : "FREE", "commerce" : "FREE", "crmHub" : "FREE", "dataHub" : "FREE" } }