openapi: 3.0.1 info: title: HubSpot Webhooks Journal description: Basepom for all HubSpot Projects version: 2026-09 x-hubspot-product-tier-requirements: marketing: FREE sales: FREE service: FREE cms: FREE commerce: FREE crmHub: FREE dataHub: FREE servers: - url: https://api.hubapi.com tags: - name: Advanced - name: Basic - name: Batch paths: /webhooks-journal/journal-local/2026-09/batch/earliest/{count}: get: tags: - Batch summary: Fetch earliest batch description: Retrieve the earliest batch of webhook journal entries. This endpoint is useful for accessing the oldest available data in the webhook journal, allowing users to process or analyze historical webhook events. The number of entries to fetch is specified by the 'count' path parameter. operationId: get-/webhooks-journal/journal-local/2026-09/batch/earliest/{count} parameters: - name: count in: path required: true style: simple explode: false schema: minimum: 1 type: integer format: int32 - name: installPortalId in: query required: false style: form explode: true schema: type: integer format: int32 responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/BatchResponseJournalFetchResponse' default: description: '' $ref: '#/components/responses/Error' security: - oauth2: - webhooks-journal-data-access x-hubspot-rate-limit-exemptions: - daily - ten-secondly /webhooks-journal/journal-local/2026-09/batch/latest/{count}: get: tags: - Batch summary: Retrieve Latest Batch description: Retrieve the latest batch of webhook journal entries. This endpoint allows you to specify the number of entries to fetch, providing a way to access the most recent webhook events processed by your HubSpot account. operationId: get-/webhooks-journal/journal-local/2026-09/batch/latest/{count} parameters: - name: count in: path required: true style: simple explode: false schema: minimum: 1 type: integer format: int32 - name: installPortalId in: query required: false style: form explode: true schema: type: integer format: int32 responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/BatchResponseJournalFetchResponse' default: description: '' $ref: '#/components/responses/Error' security: - oauth2: - webhooks-journal-data-access x-hubspot-rate-limit-exemptions: - daily - ten-secondly /webhooks-journal/journal-local/2026-09/batch/read: post: tags: - Batch summary: Batch read description: Execute a batch read operation on the webhooks journal. This endpoint allows you to retrieve a batch of webhook journal entries by providing the necessary input data. It is useful for processing multiple records in a single request, streamlining data retrieval tasks. operationId: post-/webhooks-journal/journal-local/2026-09/batch/read parameters: - name: installPortalId in: query required: false style: form explode: true schema: type: integer format: int32 requestBody: content: application/json: schema: $ref: '#/components/schemas/BatchInputString' required: true responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/BatchResponseJournalFetchResponse' '207': description: multiple statuses content: application/json: schema: $ref: '#/components/schemas/BatchResponseJournalFetchResponseWithErrors' default: description: '' $ref: '#/components/responses/Error' security: - oauth2: - webhooks-journal-data-access x-hubspot-rate-limit-exemptions: - daily - ten-secondly /webhooks-journal/journal-local/2026-09/batch/{offset}/next/{count}: get: tags: - Batch summary: Fetch Batch description: Retrieve a batch of webhook journal entries starting from a specified offset. This endpoint is useful for paginating through large sets of webhook data. The number of entries returned is determined by the 'count' parameter. operationId: get-/webhooks-journal/journal-local/2026-09/batch/{offset}/next/{count} parameters: - name: count in: path required: true style: simple explode: false schema: minimum: 1 type: integer format: int32 - name: offset in: path required: true style: simple explode: false schema: type: string - name: installPortalId in: query required: false style: form explode: true schema: type: integer format: int32 responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/BatchResponseJournalFetchResponse' default: description: '' $ref: '#/components/responses/Error' security: - oauth2: - webhooks-journal-data-access x-hubspot-rate-limit-exemptions: - daily - ten-secondly /webhooks-journal/journal-local/2026-09/earliest: get: tags: - Basic summary: Retrieve earliest description: Retrieve the earliest webhook journal entries for the specified portal. This endpoint can be used to access the oldest records available in the webhook journal, which may be useful for auditing or historical analysis. operationId: get-/webhooks-journal/journal-local/2026-09/earliest parameters: - name: installPortalId in: query required: false style: form explode: true schema: type: integer format: int32 responses: default: description: '' $ref: '#/components/responses/Error' security: - oauth2: - webhooks-journal-data-access x-hubspot-rate-limit-exemptions: - daily - ten-secondly /webhooks-journal/journal-local/2026-09/latest: get: tags: - Basic summary: Retrieve latest description: Retrieve the latest entries from the webhooks journal for the specified portal. This endpoint is useful for accessing the most recent webhook events that have been logged, allowing for real-time monitoring or debugging of webhook activities. operationId: get-/webhooks-journal/journal-local/2026-09/latest parameters: - name: installPortalId in: query required: false style: form explode: true schema: type: integer format: int32 responses: default: description: '' $ref: '#/components/responses/Error' security: - oauth2: - webhooks-journal-data-access x-hubspot-rate-limit-exemptions: - daily - ten-secondly /webhooks-journal/journal-local/2026-09/offset/{offset}/next: get: tags: - Basic summary: Retrieve Next Batch description: Retrieve the next set of webhook journal entries starting from a specified offset. This endpoint is useful for paginating through large sets of webhook data, allowing you to continue from where a previous request left off. operationId: get-/webhooks-journal/journal-local/2026-09/offset/{offset}/next parameters: - name: offset in: path required: true style: simple explode: false schema: type: string - name: installPortalId in: query required: false style: form explode: true schema: type: integer format: int32 responses: default: description: '' $ref: '#/components/responses/Error' security: - oauth2: - webhooks-journal-data-access x-hubspot-rate-limit-exemptions: - daily - ten-secondly /webhooks-journal/journal-local/2026-09/status/{statusId}: get: tags: - Basic summary: Retrieve status description: Retrieve the status of a specific webhook journal entry using its unique status ID. This endpoint is useful for monitoring the progress or outcome of webhook journal entries, allowing you to check if an entry is pending, in progress, completed, failed, or expired. operationId: get-/webhooks-journal/journal-local/2026-09/status/{statusId} parameters: - name: statusId in: path required: true style: simple explode: false schema: type: string format: uuid responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/SnapshotStatusResponse' default: description: '' $ref: '#/components/responses/Error' security: - oauth2: - webhooks-journal-snapshot-management x-hubspot-rate-limit-exemptions: - daily - ten-secondly /webhooks-journal/journal/2026-09/batch/earliest/{count}: get: tags: - Batch summary: Fetch Earliest Batch description: Retrieve the earliest batch of webhook journal entries for a specified count. This endpoint is useful for accessing historical webhook data in batches, allowing you to process or analyze older entries. The number of entries retrieved is determined by the count parameter. operationId: get-/webhooks-journal/journal/2026-09/batch/earliest/{count} parameters: - name: count in: path description: '' required: true style: simple explode: false schema: minimum: 1 type: integer format: int32 - name: installPortalId in: query description: '' required: false style: form explode: true schema: type: integer format: int32 responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/BatchResponseJournalFetchResponse' default: description: '' $ref: '#/components/responses/Error' security: - oauth2: - webhooks-journal-data-access x-hubspot-rate-limit-exemptions: - daily - ten-secondly /webhooks-journal/journal/2026-09/batch/latest/{count}: get: tags: - Batch summary: Retrieve batch description: Retrieve the latest batch of webhook journal entries up to the specified count. This endpoint is useful for fetching recent webhook data for analysis or processing. The count parameter determines the maximum number of entries to return. operationId: get-/webhooks-journal/journal/2026-09/batch/latest/{count} parameters: - name: count in: path description: '' required: true style: simple explode: false schema: minimum: 1 type: integer format: int32 - name: installPortalId in: query description: '' required: false style: form explode: true schema: type: integer format: int32 responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/BatchResponseJournalFetchResponse' default: description: '' $ref: '#/components/responses/Error' security: - oauth2: - webhooks-journal-data-access x-hubspot-rate-limit-exemptions: - daily - ten-secondly /webhooks-journal/journal/2026-09/batch/read: post: tags: - Batch summary: Batch read description: Execute a batch read operation on the webhooks journal for the specified date, 2026-03. This endpoint allows you to retrieve multiple entries from the webhooks journal in a single request, which can be useful for processing large amounts of data efficiently. Ensure that the request body is provided in the required format. operationId: post-/webhooks-journal/journal/2026-09/batch/read parameters: - name: installPortalId in: query description: '' required: false style: form explode: true schema: type: integer format: int32 requestBody: content: application/json: schema: $ref: '#/components/schemas/BatchInputString' required: true responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/BatchResponseJournalFetchResponse' '207': description: multiple statuses content: application/json: schema: $ref: '#/components/schemas/BatchResponseJournalFetchResponseWithErrors' default: description: '' $ref: '#/components/responses/Error' security: - oauth2: - webhooks-journal-data-access x-hubspot-rate-limit-exemptions: - daily - ten-secondly /webhooks-journal/journal/2026-09/batch/{offset}/next/{count}: get: tags: - Batch summary: Fetch Batch description: Retrieve a batch of webhook journal entries starting from a specified offset. This endpoint allows you to fetch a defined number of entries, which can be useful for processing large datasets in manageable chunks. operationId: get-/webhooks-journal/journal/2026-09/batch/{offset}/next/{count} parameters: - name: count in: path description: '' required: true style: simple explode: false schema: minimum: 1 type: integer format: int32 - name: offset in: path description: '' required: true style: simple explode: false schema: type: string - name: installPortalId in: query description: '' required: false style: form explode: true schema: type: integer format: int32 responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/BatchResponseJournalFetchResponse' default: description: '' $ref: '#/components/responses/Error' security: - oauth2: - webhooks-journal-data-access x-hubspot-rate-limit-exemptions: - daily - ten-secondly /webhooks-journal/journal/2026-09/earliest: get: tags: - Basic summary: Retrieve earliest entry description: Retrieve the earliest entry from the webhooks journal for the specified portal. This endpoint is useful for accessing the first recorded webhook event in the journal, which can be helpful for auditing or debugging purposes. operationId: get-/webhooks-journal/journal/2026-09/earliest parameters: - name: installPortalId in: query description: '' required: false style: form explode: true schema: type: integer format: int32 responses: default: description: '' $ref: '#/components/responses/Error' security: - oauth2: - webhooks-journal-data-access x-hubspot-rate-limit-exemptions: - daily - ten-secondly /webhooks-journal/journal/2026-09/latest: get: tags: - Basic summary: Retrieve latest journal description: Retrieve the latest entries from the webhooks journal for the specified portal. This endpoint is useful for accessing the most recent webhook events and their statuses, allowing you to monitor and debug webhook activity effectively. operationId: get-/webhooks-journal/journal/2026-09/latest parameters: - name: installPortalId in: query description: '' required: false style: form explode: true schema: type: integer format: int32 responses: default: description: '' $ref: '#/components/responses/Error' security: - oauth2: - webhooks-journal-data-access x-hubspot-rate-limit-exemptions: - daily - ten-secondly /webhooks-journal/journal/2026-09/offset/{offset}/next: get: tags: - Basic summary: Retrieve Next Entries description: Retrieve the next set of entries from the webhooks journal starting from a specified offset. This endpoint is useful for paginating through journal entries to process or analyze webhook events sequentially. operationId: get-/webhooks-journal/journal/2026-09/offset/{offset}/next parameters: - name: offset in: path description: '' required: true style: simple explode: false schema: type: string - name: installPortalId in: query description: '' required: false style: form explode: true schema: type: integer format: int32 responses: default: description: '' $ref: '#/components/responses/Error' security: - oauth2: - webhooks-journal-data-access x-hubspot-rate-limit-exemptions: - daily - ten-secondly /webhooks-journal/journal/2026-09/status/{statusId}: get: tags: - Basic summary: Retrieve status description: Retrieve the status of a specific webhook journal entry using its unique status ID. This endpoint provides detailed information about the status, including whether it is pending, in progress, completed, failed, or expired. It is useful for monitoring and managing the state of webhook journal entries. operationId: get-/webhooks-journal/journal/2026-09/status/{statusId} parameters: - name: statusId in: path description: '' required: true style: simple explode: false schema: type: string format: uuid responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/SnapshotStatusResponse' default: description: '' $ref: '#/components/responses/Error' security: - oauth2: - webhooks-journal-snapshot-management x-hubspot-rate-limit-exemptions: - daily - ten-secondly /webhooks-journal/snapshots/2026-09/crm: post: tags: - Advanced summary: Create Snapshot description: Create a batch of CRM object snapshots in HubSpot. This endpoint is used to capture the current state of specified CRM objects for later reference or analysis. It requires a JSON payload containing the details of the CRM objects to snapshot. This operation is exempt from daily and ten-secondly rate limits. operationId: post-/webhooks-journal/snapshots/2026-09/crm parameters: [] requestBody: content: application/json: schema: $ref: '#/components/schemas/CrmObjectSnapshotBatchRequest' required: true responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/CrmObjectSnapshotBatchResponse' default: description: '' $ref: '#/components/responses/Error' security: - oauth2: - webhooks-journal-snapshot-management x-hubspot-rate-limit-exemptions: - daily - ten-secondly /webhooks-journal/subscriptions/2026-09: get: tags: - Basic summary: List subscriptions description: Retrieve a list of webhook journal subscriptions. This endpoint provides access to subscription details without pagination, allowing you to view all current subscriptions in a single request. It is useful for managing and reviewing webhook subscriptions for your app. operationId: get-/webhooks-journal/subscriptions/2026-09 parameters: [] responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/CollectionResponseSubscriptionResponseNoPaging' default: description: '' $ref: '#/components/responses/Error' security: - oauth2: - webhooks-journal-subscription-read x-hubspot-rate-limit-exemptions: - daily - ten-secondly post: tags: - Basic summary: Upsert subscription description: Create a new webhook journal subscription for the specified portal. This endpoint allows you to define the actions and object types that the subscription will monitor. It requires a request body with the subscription details. operationId: post-/webhooks-journal/subscriptions/2026-09 parameters: [] requestBody: content: application/json: schema: $ref: '#/components/schemas/SubscriptionUpsertRequest' required: true responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/SubscriptionResponse' default: description: '' $ref: '#/components/responses/Error' security: - oauth2: - webhooks-journal-subscription-management x-hubspot-rate-limit-exemptions: - daily - ten-secondly /webhooks-journal/subscriptions/2026-09/filters: post: tags: - Advanced summary: Create Filter description: Create a new filter for a specific webhook subscription in the HubSpot account. This endpoint allows you to define conditions that determine when a webhook should be triggered. The filter is associated with a subscription identified by its ID, and the request must include the filter details. operationId: post-/webhooks-journal/subscriptions/2026-09/filters parameters: [] requestBody: content: application/json: schema: $ref: '#/components/schemas/FilterCreateRequest' required: true responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/FilterCreateResponse' default: description: '' $ref: '#/components/responses/Error' security: - oauth2: - webhooks-journal-subscription-management x-hubspot-rate-limit-exemptions: - daily - ten-secondly /webhooks-journal/subscriptions/2026-09/filters/subscription/{subscriptionId}: get: tags: - Basic summary: Retrieve filters description: Retrieve the filters associated with a specific webhook subscription. This endpoint allows you to view the filters applied to a subscription, which can help in managing and understanding the conditions set for webhook events. operationId: get-/webhooks-journal/subscriptions/2026-09/filters/subscription/{subscriptionId} parameters: - name: subscriptionId in: path required: true style: simple explode: false schema: type: integer format: int64 responses: '200': description: successful operation content: application/json: schema: type: array items: $ref: '#/components/schemas/FilterResponse' default: description: '' $ref: '#/components/responses/Error' security: - oauth2: - webhooks-journal-subscription-read x-hubspot-rate-limit-exemptions: - daily - ten-secondly /webhooks-journal/subscriptions/2026-09/filters/{filterId}: get: tags: - Basic summary: Retrieve filter description: Retrieve a specific filter associated with a webhook journal subscription. This endpoint allows you to access the details of the filter identified by the filterId, which is useful for managing and understanding the conditions applied to webhook events. operationId: get-/webhooks-journal/subscriptions/2026-09/filters/{filterId} parameters: - name: filterId in: path required: true style: simple explode: false schema: type: integer format: int64 responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/FilterResponse' default: description: '' $ref: '#/components/responses/Error' security: - oauth2: - webhooks-journal-subscription-read x-hubspot-rate-limit-exemptions: - daily - ten-secondly delete: tags: - Basic summary: Delete filter description: Remove a specific filter from the webhooks journal subscriptions. This operation is useful for managing and cleaning up filters that are no longer needed. Once deleted, the filter cannot be recovered. operationId: delete-/webhooks-journal/subscriptions/2026-09/filters/{filterId} parameters: - name: filterId in: path required: true style: simple explode: false schema: type: integer format: int64 responses: '204': description: No content content: {} default: description: '' $ref: '#/components/responses/Error' security: - oauth2: - webhooks-journal-subscription-management x-hubspot-rate-limit-exemptions: - daily - ten-secondly /webhooks-journal/subscriptions/2026-09/portals/{portalId}: delete: tags: - Basic summary: Delete Subscription description: Delete a webhook journal subscription for a specific portal. This operation removes the subscription associated with the given portalId, ensuring that no further webhook events are sent for this portal. Use this endpoint to manage and clean up subscriptions that are no longer needed. operationId: delete-/webhooks-journal/subscriptions/2026-09/portals/{portalId} parameters: - name: portalId in: path required: true style: simple explode: false schema: type: integer format: int64 responses: '204': description: No content content: {} default: description: '' $ref: '#/components/responses/Error' security: - oauth2: - webhooks-journal-subscription-management x-hubspot-rate-limit-exemptions: - daily - ten-secondly /webhooks-journal/subscriptions/2026-09/{subscriptionId}: get: tags: - Basic summary: Retrieve subscription description: Retrieve details of a specific webhook subscription using its unique identifier. This endpoint is useful for obtaining information about a particular subscription, such as its actions, object type, and associated properties. operationId: get-/webhooks-journal/subscriptions/2026-09/{subscriptionId} parameters: - name: subscriptionId in: path required: true style: simple explode: false schema: type: integer format: int64 responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/SubscriptionResponse' default: description: '' $ref: '#/components/responses/Error' security: - oauth2: - webhooks-journal-subscription-read x-hubspot-rate-limit-exemptions: - daily - ten-secondly delete: tags: - Basic summary: Delete subscription description: Delete a specific webhook journal subscription using its unique identifier. This operation is useful for managing and cleaning up subscriptions that are no longer needed in your HubSpot account. operationId: delete-/webhooks-journal/subscriptions/2026-09/{subscriptionId} parameters: - name: subscriptionId in: path required: true style: simple explode: false schema: type: integer format: int64 responses: '204': description: No content content: {} default: description: '' $ref: '#/components/responses/Error' security: - oauth2: - webhooks-journal-subscription-management x-hubspot-rate-limit-exemptions: - daily - ten-secondly components: schemas: ActionOverrideRequest: type: object properties: associatedObjectTypeIds: type: array description: An array of strings representing the IDs of the associated object types involved in the action. items: type: string listIds: type: array description: An array of integers (int64 format) representing the IDs of the lists involved in the action. items: type: integer format: int64 objectIds: type: array description: An array of integers (int64 format) representing the IDs of the objects involved in the action. items: type: integer format: int64 properties: type: array description: An array of strings representing the properties to be overridden or specified for the action. items: type: string AppLifecycleEventSubscriptionUpsertRequest: required: - eventTypeId - properties - subscriptionType type: object properties: eventTypeId: type: string properties: type: array items: type: string subscriptionType: type: string default: APP_LIFECYCLE_EVENT enum: - APP_LIFECYCLE_EVENT x-hubspot-sub-type-impl: true AssociationSubscriptionUpsertRequest: required: - actions - associatedObjectTypeIds - objectIds - objectTypeId - portalId - subscriptionType type: object properties: actions: type: array items: type: string enum: - CREATE - UPDATE - DELETE - MERGE - RESTORE - ASSOCIATION_ADDED - ASSOCIATION_REMOVED - SNAPSHOT - APP_INSTALL - APP_UNINSTALL - ADDED_TO_LIST - REMOVED_FROM_LIST - GDPR_DELETE associatedObjectTypeIds: type: array items: type: string objectIds: type: array items: type: integer format: int64 objectTypeId: type: string portalId: type: integer format: int64 subscriptionType: type: string default: ASSOCIATION enum: - ASSOCIATION x-hubspot-sub-type-impl: true BatchInputString: required: - inputs type: object properties: inputs: type: array description: An array of strings that are to be processed in the batch operation. This property is required. items: type: string BatchResponseJournalFetchResponse: required: - completedAt - results - startedAt - status type: object properties: completedAt: type: string description: The date and time when the batch operation was completed, in ISO 8601 format. format: date-time links: type: object additionalProperties: type: string description: A map of link names to associated URIs, providing additional resources or information related to the batch operation. requestedAt: type: string description: The date and time when the batch operation was requested, in ISO 8601 format. format: date-time results: type: array description: An array of results from the batch operation, each represented by a JournalFetchResponse object. items: $ref: '#/components/schemas/JournalFetchResponse' startedAt: type: string description: The date and time when the batch operation started, in ISO 8601 format. format: date-time status: type: string description: The current status of the batch operation. Valid values include 'PENDING', 'PROCESSING', 'CANCELED', and 'COMPLETE'. enum: - CANCELED - COMPLETE - PENDING - PROCESSING BatchResponseJournalFetchResponseWithErrors: required: - completedAt - results - startedAt - status type: object properties: completedAt: type: string description: The date and time when the batch operation was completed, in ISO 8601 format. format: date-time errors: type: array description: An array of standard errors, detailing any issues encountered during the batch operation. items: $ref: '#/components/schemas/StandardError' links: type: object additionalProperties: type: string description: A map of link names to associated URIs, providing additional resources or documentation related to the batch operation. numErrors: type: integer description: The number of errors encountered during the batch operation. format: int32 requestedAt: type: string description: The date and time when the batch operation was requested, in ISO 8601 format. format: date-time results: type: array description: An array of journal fetch responses, each representing a successful fetch attempt. items: $ref: '#/components/schemas/JournalFetchResponse' startedAt: type: string description: The date and time when the batch operation started, in ISO 8601 format. format: date-time status: type: string description: The current status of the batch operation. Valid values include 'PENDING', 'PROCESSING', 'CANCELED', and 'COMPLETE'. enum: - CANCELED - COMPLETE - PENDING - PROCESSING CollectionResponseSubscriptionResponseNoPaging: required: - results type: object properties: results: type: array description: An array of subscription responses, where each item contains details about a specific subscription. Each item follows the SubscriptionResponse schema. items: $ref: '#/components/schemas/SubscriptionResponse' Condition: required: - filterType - operator - property type: object properties: filterType: type: string description: A string indicating the type of filter applied. Valid value is 'CRM_OBJECT_PROPERTY'. enum: - CRM_OBJECT_PROPERTY operator: type: string description: A string specifying the operation used for comparison. Valid values include 'EQ', 'N_EQ', 'LT', 'GT', 'LTE', 'GTE', 'CONTAINS', 'STARTS_WITH', 'ENDS_WITH', 'IN', 'NOT_IN', 'IS_EMPTY', and 'IS_NOT_EMPTY'. enum: - CONTAINS - ENDS_WITH - EQ - GT - GTE - IN - IS_EMPTY - IS_NOT_EMPTY - LT - LTE - N_EQ - NOT_IN - STARTS_WITH property: type: string description: A string representing the property name that the condition is evaluating. value: type: string description: A string representing the value to compare against the specified property using the defined operator. values: type: array description: An array of strings containing multiple values for comparison when using operators like 'IN' or 'NOT_IN'. items: type: string CrmObjectSnapshotBatchRequest: required: - snapshotRequests type: object properties: snapshotRequests: type: array description: An array of CrmObjectSnapshotRequest objects, each representing a request to create a snapshot for a specific CRM object. This property is required. items: $ref: '#/components/schemas/CrmObjectSnapshotRequest' CrmObjectSnapshotBatchResponse: required: - snapshotResponses type: object properties: snapshotResponses: type: array description: An array of responses for each CRM object snapshot request. Each item in the array is a CrmObjectSnapshotResponse object, detailing the outcome of a single snapshot request. items: $ref: '#/components/schemas/CrmObjectSnapshotResponse' CrmObjectSnapshotRequest: required: - objectId - objectTypeId - portalId - properties type: object properties: objectId: type: integer description: An integer representing the unique identifier of the CRM object. format: int64 objectTypeId: type: string description: A string representing the type identifier of the CRM object. portalId: type: integer description: An integer representing the unique identifier of the HubSpot portal. format: int64 properties: type: array description: An array of strings specifying the properties of the CRM object to include in the snapshot. items: type: string CrmObjectSnapshotResponse: required: - objectId - objectTypeId - portalId - snapshotStatusId type: object properties: objectId: type: integer description: An integer representing the unique identifier of the CRM object for which the snapshot was taken. It is in int64 format. format: int64 objectTypeId: type: string description: A string representing the type identifier of the CRM object involved in the snapshot. portalId: type: integer description: An integer representing the unique identifier of the HubSpot portal associated with the CRM object snapshot. It is in int64 format. format: int64 snapshotStatusId: type: string description: A string in UUID format representing the status identifier of the snapshot operation. format: uuid Error: required: - category - correlationId - message type: object properties: category: type: string description: The error category context: type: object additionalProperties: type: array items: type: string description: Context about the error condition example: '{invalidPropertyName=[propertyValue], missingScopes=[scope1, scope2]}' correlationId: type: string description: A unique identifier for the request. Include this value with any error reports or support tickets format: uuid example: aeb5f871-7f07-4993-9211-075dc63e7cbf errors: type: array description: further information about the error items: $ref: '#/components/schemas/ErrorDetail' links: type: object additionalProperties: type: string description: A map of link names to associated URIs containing documentation about the error or recommended remediation steps message: type: string description: A human readable message describing the error along with remediation steps where appropriate example: An error occurred subCategory: type: string description: A specific category that contains more specific detail about the error 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 context: type: object additionalProperties: type: array items: type: string description: Context about the error condition example: '{missingScopes=[scope1, scope2]}' in: type: string description: The name of the field or parameter in which the error was found. message: type: string description: A human readable message describing the error along with remediation steps where appropriate subCategory: type: string description: A specific category that contains more specific detail about the error 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. Filter: required: - conditions type: object properties: conditions: type: array description: An array of conditions that define the criteria for the filter. Each condition specifies a filter type, operator, property, and optional values. items: $ref: '#/components/schemas/Condition' description: '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. ' FilterCreateRequest: required: - filter - subscriptionId type: object properties: filter: $ref: '#/components/schemas/Filter' subscriptionId: type: integer description: An integer representing the unique identifier of the subscription to which the filter will be applied. It is required and uses the int64 format. format: int64 FilterCreateResponse: required: - filterId type: object properties: filterId: type: integer description: The unique identifier for the created filter. It is an integer in int64 format. format: int64 FilterResponse: required: - createdAt - filter - id type: object properties: createdAt: type: integer description: A Unix timestamp in milliseconds indicating when the filter was created. format: int64 filter: $ref: '#/components/schemas/Filter' id: type: integer description: The unique identifier for the filter, represented as a 64-bit integer. format: int64 GdprPrivacyDeletionSubscriptionUpsertRequest: required: - actions - objectTypeId - portalId - subscriptionType type: object properties: actions: type: array items: type: string enum: - CREATE - UPDATE - DELETE - MERGE - RESTORE - ASSOCIATION_ADDED - ASSOCIATION_REMOVED - SNAPSHOT - APP_INSTALL - APP_UNINSTALL - ADDED_TO_LIST - REMOVED_FROM_LIST - GDPR_DELETE objectTypeId: type: string portalId: type: integer format: int64 subscriptionType: type: string default: GDPR_PRIVACY_DELETION enum: - GDPR_PRIVACY_DELETION x-hubspot-sub-type-impl: true JournalFetchResponse: required: - currentOffset - expiresAt - url type: object properties: currentOffset: type: string description: A UUID string indicating the current offset for pagination purposes. format: uuid expiresAt: type: string description: The date and time when the URL will expire, in ISO 8601 format. format: date-time url: type: string description: A string representing the URL where the journal data can be accessed. ListMembershipSubscriptionUpsertRequest: required: - actions - listIds - objectIds - portalId - subscriptionType type: object properties: actions: type: array items: type: string enum: - CREATE - UPDATE - DELETE - MERGE - RESTORE - ASSOCIATION_ADDED - ASSOCIATION_REMOVED - SNAPSHOT - APP_INSTALL - APP_UNINSTALL - ADDED_TO_LIST - REMOVED_FROM_LIST - GDPR_DELETE listIds: type: array items: type: integer format: int64 objectIds: type: array items: type: integer format: int64 portalId: type: integer format: int64 subscriptionType: type: string default: LIST_MEMBERSHIP enum: - LIST_MEMBERSHIP x-hubspot-sub-type-impl: true ObjectSubscriptionUpsertRequest: required: - actions - objectIds - objectTypeId - portalId - properties - subscriptionType type: object properties: actions: type: array items: type: string enum: - CREATE - UPDATE - DELETE - MERGE - RESTORE - ASSOCIATION_ADDED - ASSOCIATION_REMOVED - SNAPSHOT - APP_INSTALL - APP_UNINSTALL - ADDED_TO_LIST - REMOVED_FROM_LIST - GDPR_DELETE objectIds: type: array items: type: integer format: int64 objectTypeId: type: string portalId: type: integer format: int64 properties: type: array items: type: string subscriptionType: type: string default: OBJECT enum: - OBJECT x-hubspot-sub-type-impl: true SnapshotStatusResponse: required: - id - initiatedAt - status type: object properties: completedAt: type: integer description: The timestamp when the snapshot was completed, represented as an integer in int64 format. This field may be null if the snapshot is not yet completed. format: int64 errorCode: type: string description: An optional code indicating the error that occurred, if any. Possible values are 'TIMEOUT', 'VALIDATION_ERROR', 'INTERNAL_ERROR', and 'PERMISSION_DENIED'. enum: - INTERNAL_ERROR - PERMISSION_DENIED - TIMEOUT - VALIDATION_ERROR id: type: string description: A unique identifier for the snapshot, represented as a UUID. format: uuid initiatedAt: type: integer description: The timestamp when the snapshot was initiated, represented as an integer in int64 format. format: int64 message: type: string description: A descriptive message providing additional information about the snapshot status or error. status: type: string description: The current status of the snapshot. Valid values include 'PENDING', 'IN_PROGRESS', 'COMPLETED', 'FAILED', and 'EXPIRED'. enum: - EXPIRED - FAILED - IN_PROGRESS - PENDING - SUCCESS StandardError: required: - category - context - errors - links - message - status type: object properties: category: type: string description: A string indicating the category of the error. context: type: object additionalProperties: type: array items: type: string description: An object containing additional context about the error condition, with keys as context names and values as arrays of strings. errors: type: array description: An array of ErrorDetail objects that provide further information about the error. items: $ref: '#/components/schemas/ErrorDetail' id: type: string description: A string that uniquely identifies this error instance. links: type: object additionalProperties: type: string description: An object mapping link names to associated URIs that provide documentation or remediation steps related to the error. message: type: string description: A string containing a human-readable message describing the error. status: type: string description: A string representing the status of the error. subCategory: type: object properties: {} description: An object providing more specific details about the error category. description: Ye olde error SubscriptionResponse: required: - actions - appId - createdAt - id - objectTypeId - subscriptionType - updatedAt type: object properties: actionOverrides: type: object additionalProperties: $ref: '#/components/schemas/ActionOverrideRequest' description: An object containing overrides for actions, where each key is an action and the value is an ActionOverrideRequest object. actions: type: array description: An array of actions associated with the subscription. Valid actions include 'CREATE', 'UPDATE', 'DELETE', 'MERGE', 'RESTORE', 'ASSOCIATION_ADDED', 'ASSOCIATION_REMOVED', 'SNAPSHOT', 'APP_INSTALL', 'APP_UNINSTALL', 'ADDED_TO_LIST', 'REMOVED_FROM_LIST', and 'GDPR_DELETE'. items: type: string enum: - CREATE - UPDATE - DELETE - MERGE - RESTORE - ASSOCIATION_ADDED - ASSOCIATION_REMOVED - SNAPSHOT - APP_INSTALL - APP_UNINSTALL - ADDED_TO_LIST - REMOVED_FROM_LIST - GDPR_DELETE appId: type: integer description: The unique identifier for the app associated with the subscription, represented as an integer. format: int64 associatedObjectTypeIds: type: array description: An array of strings representing the IDs of associated object types. items: type: string createdAt: type: string description: The date and time when the subscription was created, in ISO 8601 format. format: date-time createdBy: type: integer description: The unique identifier of the user who created the subscription, represented as an integer. format: int64 deletedAt: type: string description: The date and time when the subscription was deleted, in ISO 8601 format, if applicable. format: date-time id: type: integer description: The unique identifier for the subscription, represented as an integer. format: int64 listIds: type: array description: An array of integers representing the IDs of lists associated with the subscription. items: type: integer format: int64 objectIds: type: array description: An array of integers representing the IDs of objects associated with the subscription. items: type: integer format: int64 objectTypeId: type: string description: The identifier for the type of object associated with the subscription, represented as a string. portalId: type: integer description: The unique identifier for the portal associated with the subscription, represented as an integer. format: int64 properties: type: array description: An array of strings representing the properties associated with the subscription. items: type: string subscriptionType: type: string description: The type of subscription, indicating the nature of events it pertains to. Valid values include 'OBJECT', 'ASSOCIATION', 'EVENT', 'APP_LIFECYCLE_EVENT', 'LIST_MEMBERSHIP', and 'GDPR_PRIVACY_DELETION'. enum: - APP_LIFECYCLE_EVENT - ASSOCIATION - EVENT - GDPR_PRIVACY_DELETION - LIST_MEMBERSHIP - OBJECT updatedAt: type: string description: The date and time when the subscription was last updated, in ISO 8601 format. format: date-time SubscriptionUpsertRequest: properties: {} oneOf: - $ref: '#/components/schemas/ObjectSubscriptionUpsertRequest' - $ref: '#/components/schemas/AssociationSubscriptionUpsertRequest' - $ref: '#/components/schemas/AppLifecycleEventSubscriptionUpsertRequest' - $ref: '#/components/schemas/ListMembershipSubscriptionUpsertRequest' - $ref: '#/components/schemas/GdprPrivacyDeletionSubscriptionUpsertRequest' responses: Error: description: An error occurred. content: '*/*': schema: $ref: '#/components/schemas/Error' 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: webhooks-journal-data-access: '' webhooks-journal-snapshot-management: '' webhooks-journal-subscription-management: '' webhooks-journal-subscription-read: '' private_apps: type: apiKey name: private-app in: header private_apps_legacy: type: apiKey name: private-app-legacy in: header x-hubspot-product-tier-requirements: marketing: FREE sales: FREE service: FREE cms: FREE commerce: FREE crmHub: FREE dataHub: FREE