{ "openapi" : "3.0.1", "info" : { "title" : "Webhooks Journal Webhooks Journal", "description" : "Basepom for all HubSpot Projects", "version" : "2026-03", "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-03/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-03/batch/earliest/{count}", "parameters" : [ { "name" : "count", "in" : "path", "description" : "The number of earliest webhook journal entries to retrieve. This is a required integer parameter with a minimum value of 1.", "required" : true, "style" : "simple", "explode" : false, "schema" : { "minimum" : 1, "type" : "integer", "format" : "int32", "example" : null } }, { "name" : "installPortalId", "in" : "query", "description" : "The ID of the portal installation to filter the webhook journal entries. This is an optional integer parameter.", "required" : false, "style" : "form", "explode" : true, "schema" : { "type" : "integer", "format" : "int32", "example" : null } } ], "responses" : { "200" : { "description" : "successful operation", "content" : { "application/json" : { "schema" : { "$ref" : "#/components/schemas/BatchResponseJournalFetchResponse" }, "example" : null } } }, "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-03/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-03/batch/latest/{count}", "parameters" : [ { "name" : "count", "in" : "path", "description" : "The number of journal entries to retrieve. Must be an integer with a minimum value of 1.", "required" : true, "style" : "simple", "explode" : false, "schema" : { "minimum" : 1, "type" : "integer", "format" : "int32", "example" : null } }, { "name" : "installPortalId", "in" : "query", "description" : "The ID of the portal where the webhook journal is installed. This parameter is optional and used to specify the target portal.", "required" : false, "style" : "form", "explode" : true, "schema" : { "type" : "integer", "format" : "int32", "example" : null } } ], "responses" : { "200" : { "description" : "successful operation", "content" : { "application/json" : { "schema" : { "$ref" : "#/components/schemas/BatchResponseJournalFetchResponse" }, "example" : null } } }, "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-03/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-03/batch/read", "parameters" : [ { "name" : "installPortalId", "in" : "query", "description" : "The ID of the portal where the webhooks are installed. This parameter is optional and is used to specify the target portal for the operation.", "required" : false, "style" : "form", "explode" : true, "schema" : { "type" : "integer", "format" : "int32", "example" : null } } ], "requestBody" : { "content" : { "application/json" : { "schema" : { "$ref" : "#/components/schemas/BatchInputString" }, "example" : null } }, "required" : true }, "responses" : { "200" : { "description" : "successful operation", "content" : { "application/json" : { "schema" : { "$ref" : "#/components/schemas/BatchResponseJournalFetchResponse" }, "example" : null } } }, "207" : { "description" : "multiple statuses", "content" : { "application/json" : { "schema" : { "$ref" : "#/components/schemas/BatchResponseJournalFetchResponseWithErrors" }, "example" : null } } }, "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-03/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-03/batch/{offset}/next/{count}", "parameters" : [ { "name" : "count", "in" : "path", "description" : "The number of journal entries to retrieve in this batch. Must be an integer with a minimum value of 1.", "required" : true, "style" : "simple", "explode" : false, "schema" : { "minimum" : 1, "type" : "integer", "format" : "int32", "example" : null } }, { "name" : "offset", "in" : "path", "description" : "The starting point for the batch retrieval, specified as a string.", "required" : true, "style" : "simple", "explode" : false, "schema" : { "type" : "string", "example" : null } }, { "name" : "installPortalId", "in" : "query", "description" : "The ID of the portal where the webhooks are installed. This is an optional parameter.", "required" : false, "style" : "form", "explode" : true, "schema" : { "type" : "integer", "format" : "int32", "example" : null } } ], "responses" : { "200" : { "description" : "successful operation", "content" : { "application/json" : { "schema" : { "$ref" : "#/components/schemas/BatchResponseJournalFetchResponse" }, "example" : null } } }, "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-03/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-03/earliest", "parameters" : [ { "name" : "installPortalId", "in" : "query", "description" : "The ID of the portal for which to retrieve the earliest webhook journal entries. This parameter is optional and should be an integer.", "required" : false, "style" : "form", "explode" : true, "schema" : { "type" : "integer", "format" : "int32", "example" : null } } ], "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-03/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-03/latest", "parameters" : [ { "name" : "installPortalId", "in" : "query", "description" : "The ID of the portal for which to retrieve the latest journal entries. This is an integer value.", "required" : false, "style" : "form", "explode" : true, "schema" : { "type" : "integer", "format" : "int32", "example" : null } } ], "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-03/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-03/offset/{offset}/next", "parameters" : [ { "name" : "offset", "in" : "path", "description" : "The starting point for retrieving the next set of webhook journal entries. This is a string value that represents the current position in the journal.", "required" : true, "style" : "simple", "explode" : false, "schema" : { "type" : "string", "example" : null } }, { "name" : "installPortalId", "in" : "query", "description" : "The ID of the portal installation to filter the webhook journal entries. This is an integer value.", "required" : false, "style" : "form", "explode" : true, "schema" : { "type" : "integer", "format" : "int32", "example" : null } } ], "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-03/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-03/status/{statusId}", "parameters" : [ { "name" : "statusId", "in" : "path", "description" : "The unique identifier of the status to retrieve. It should be in UUID format.", "required" : true, "style" : "simple", "explode" : false, "schema" : { "type" : "string", "format" : "uuid", "example" : null } } ], "responses" : { "200" : { "description" : "successful operation", "content" : { "application/json" : { "schema" : { "$ref" : "#/components/schemas/SnapshotStatusResponse" }, "example" : null } } }, "default" : { "description" : "", "$ref" : "#/components/responses/Error" } }, "security" : [ { "oauth2" : [ "webhooks-journal-snapshot-management" ] } ], "x-hubspot-rate-limit-exemptions" : [ "daily", "ten-secondly" ] } }, "/webhooks-journal/journal/2026-03/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-03/batch/earliest/{count}", "parameters" : [ { "name" : "count", "in" : "path", "description" : "The number of earliest journal entries to retrieve. This must be an integer with a minimum value of 1.", "required" : true, "style" : "simple", "explode" : false, "schema" : { "minimum" : 1, "type" : "integer", "format" : "int32", "example" : null } }, { "name" : "installPortalId", "in" : "query", "description" : "The ID of the portal installation. This is an integer value that specifies which portal's data to access.", "required" : false, "style" : "form", "explode" : true, "schema" : { "type" : "integer", "format" : "int32", "example" : null } } ], "responses" : { "200" : { "description" : "successful operation", "content" : { "application/json" : { "schema" : { "$ref" : "#/components/schemas/BatchResponseJournalFetchResponse" }, "example" : null } } }, "default" : { "description" : "", "$ref" : "#/components/responses/Error" } }, "security" : [ { "oauth2" : [ "webhooks-journal-data-access" ] } ], "x-hubspot-rate-limit-exemptions" : [ "daily", "ten-secondly" ] } }, "/webhooks-journal/journal/2026-03/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-03/batch/latest/{count}", "parameters" : [ { "name" : "count", "in" : "path", "description" : "The maximum number of journal entries to retrieve. This is a required integer parameter with a minimum value of 1.", "required" : true, "style" : "simple", "explode" : false, "schema" : { "minimum" : 1, "type" : "integer", "format" : "int32", "example" : null } }, { "name" : "installPortalId", "in" : "query", "description" : "The ID of the portal installation. This is an integer value used to specify the portal context for the request.", "required" : false, "style" : "form", "explode" : true, "schema" : { "type" : "integer", "format" : "int32", "example" : null } } ], "responses" : { "200" : { "description" : "successful operation", "content" : { "application/json" : { "schema" : { "$ref" : "#/components/schemas/BatchResponseJournalFetchResponse" }, "example" : null } } }, "default" : { "description" : "", "$ref" : "#/components/responses/Error" } }, "security" : [ { "oauth2" : [ "webhooks-journal-data-access" ] } ], "x-hubspot-rate-limit-exemptions" : [ "daily", "ten-secondly" ] } }, "/webhooks-journal/journal/2026-03/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-03/batch/read", "parameters" : [ { "name" : "installPortalId", "in" : "query", "description" : "An integer representing the ID of the portal installation for which the webhooks journal data should be retrieved.", "required" : false, "style" : "form", "explode" : true, "schema" : { "type" : "integer", "format" : "int32", "example" : null } } ], "requestBody" : { "content" : { "application/json" : { "schema" : { "$ref" : "#/components/schemas/BatchInputString" }, "example" : null } }, "required" : true }, "responses" : { "200" : { "description" : "successful operation", "content" : { "application/json" : { "schema" : { "$ref" : "#/components/schemas/BatchResponseJournalFetchResponse" }, "example" : null } } }, "207" : { "description" : "multiple statuses", "content" : { "application/json" : { "schema" : { "$ref" : "#/components/schemas/BatchResponseJournalFetchResponseWithErrors" }, "example" : null } } }, "default" : { "description" : "", "$ref" : "#/components/responses/Error" } }, "security" : [ { "oauth2" : [ "webhooks-journal-data-access" ] } ], "x-hubspot-rate-limit-exemptions" : [ "daily", "ten-secondly" ] } }, "/webhooks-journal/journal/2026-03/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-03/batch/{offset}/next/{count}", "parameters" : [ { "name" : "count", "in" : "path", "description" : "The number of journal entries to retrieve. This must be an integer with a minimum value of 1.", "required" : true, "style" : "simple", "explode" : false, "schema" : { "minimum" : 1, "type" : "integer", "format" : "int32", "example" : null } }, { "name" : "offset", "in" : "path", "description" : "The starting point for fetching the journal entries. This is a string value.", "required" : true, "style" : "simple", "explode" : false, "schema" : { "type" : "string", "example" : null } }, { "name" : "installPortalId", "in" : "query", "description" : "The ID of the portal installation. This is an integer value.", "required" : false, "style" : "form", "explode" : true, "schema" : { "type" : "integer", "format" : "int32", "example" : null } } ], "responses" : { "200" : { "description" : "successful operation", "content" : { "application/json" : { "schema" : { "$ref" : "#/components/schemas/BatchResponseJournalFetchResponse" }, "example" : null } } }, "default" : { "description" : "", "$ref" : "#/components/responses/Error" } }, "security" : [ { "oauth2" : [ "webhooks-journal-data-access" ] } ], "x-hubspot-rate-limit-exemptions" : [ "daily", "ten-secondly" ] } }, "/webhooks-journal/journal/2026-03/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-03/earliest", "parameters" : [ { "name" : "installPortalId", "in" : "query", "description" : "The ID of the portal installation to filter the journal entries by. This is an integer value.", "required" : false, "style" : "form", "explode" : true, "schema" : { "type" : "integer", "format" : "int32", "example" : null } } ], "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-03/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-03/latest", "parameters" : [ { "name" : "installPortalId", "in" : "query", "description" : "The unique identifier of the portal installation for which to retrieve the latest journal entries. This parameter is optional and should be an integer.", "required" : false, "style" : "form", "explode" : true, "schema" : { "type" : "integer", "format" : "int32", "example" : null } } ], "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-03/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-03/offset/{offset}/next", "parameters" : [ { "name" : "offset", "in" : "path", "description" : "The offset string indicating the starting point for retrieving the next set of journal entries.", "required" : true, "style" : "simple", "explode" : false, "schema" : { "type" : "string", "example" : null } }, { "name" : "installPortalId", "in" : "query", "description" : "The ID of the portal where the webhooks are installed. This is an integer value.", "required" : false, "style" : "form", "explode" : true, "schema" : { "type" : "integer", "format" : "int32", "example" : null } } ], "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-03/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-03/status/{statusId}", "parameters" : [ { "name" : "statusId", "in" : "path", "description" : "The unique identifier (UUID) of the status to retrieve.", "required" : true, "style" : "simple", "explode" : false, "schema" : { "type" : "string", "format" : "uuid", "example" : null } } ], "responses" : { "200" : { "description" : "successful operation", "content" : { "application/json" : { "schema" : { "$ref" : "#/components/schemas/SnapshotStatusResponse" }, "example" : null } } }, "default" : { "description" : "", "$ref" : "#/components/responses/Error" } }, "security" : [ { "oauth2" : [ "webhooks-journal-snapshot-management" ] } ], "x-hubspot-rate-limit-exemptions" : [ "daily", "ten-secondly" ] } }, "/webhooks-journal/snapshots/2026-03/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-03/crm", "parameters" : [ ], "requestBody" : { "content" : { "application/json" : { "schema" : { "$ref" : "#/components/schemas/CrmObjectSnapshotBatchRequest" }, "example" : null } }, "required" : true }, "responses" : { "200" : { "description" : "successful operation", "content" : { "application/json" : { "schema" : { "$ref" : "#/components/schemas/CrmObjectSnapshotBatchResponse" }, "example" : null } } }, "default" : { "description" : "", "$ref" : "#/components/responses/Error" } }, "security" : [ { "oauth2" : [ "webhooks-journal-snapshot-management" ] } ], "x-hubspot-rate-limit-exemptions" : [ "daily", "ten-secondly" ] } }, "/webhooks-journal/subscriptions/2026-03" : { "get" : { "tags" : [ "Basic" ], "summary" : "List Subscriptions", "description" : "Retrieve a list of webhook journal subscriptions for the specified version. This endpoint allows you to view all active subscriptions without pagination. It is useful for monitoring and managing webhook subscriptions in your HubSpot account.", "operationId" : "get-/webhooks-journal/subscriptions/2026-03", "parameters" : [ ], "responses" : { "200" : { "description" : "successful operation", "content" : { "application/json" : { "schema" : { "$ref" : "#/components/schemas/CollectionResponseSubscriptionResponseNoPaging" }, "example" : null } } }, "default" : { "description" : "", "$ref" : "#/components/responses/Error" } }, "security" : [ { "oauth2" : [ "webhooks-journal-subscription-read" ] } ], "x-hubspot-rate-limit-exemptions" : [ "daily", "ten-secondly" ] }, "post" : { "tags" : [ "Basic" ], "summary" : "Create Subscription", "description" : "Create a new subscription in the Webhooks Journal for the specified version. This endpoint allows you to define the subscription details by providing the necessary information in the request body. It supports various types of subscriptions, including object, association, event, app lifecycle event, list membership, and GDPR privacy deletion. Ensure that all required fields are included in the request to successfully create a subscription.", "operationId" : "post-/webhooks-journal/subscriptions/2026-03", "parameters" : [ ], "requestBody" : { "content" : { "application/json" : { "schema" : { "$ref" : "#/components/schemas/SubscriptionUpsertRequest" }, "example" : null } }, "required" : true }, "responses" : { "200" : { "description" : "successful operation", "content" : { "application/json" : { "schema" : { "$ref" : "#/components/schemas/SubscriptionResponse" }, "example" : null } } }, "default" : { "description" : "", "$ref" : "#/components/responses/Error" } }, "security" : [ { "oauth2" : [ "webhooks-journal-subscription-management" ] } ], "x-hubspot-rate-limit-exemptions" : [ "daily", "ten-secondly" ] } }, "/webhooks-journal/subscriptions/2026-03/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-03/filters", "parameters" : [ ], "requestBody" : { "content" : { "application/json" : { "schema" : { "$ref" : "#/components/schemas/FilterCreateRequest" }, "example" : null } }, "required" : true }, "responses" : { "200" : { "description" : "successful operation", "content" : { "application/json" : { "schema" : { "$ref" : "#/components/schemas/FilterCreateResponse" }, "example" : null } } }, "default" : { "description" : "", "$ref" : "#/components/responses/Error" } }, "security" : [ { "oauth2" : [ "webhooks-journal-subscription-management" ] } ], "x-hubspot-rate-limit-exemptions" : [ "daily", "ten-secondly" ] } }, "/webhooks-journal/subscriptions/2026-03/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-03/filters/subscription/{subscriptionId}", "parameters" : [ { "name" : "subscriptionId", "in" : "path", "description" : "The unique identifier of the subscription for which to retrieve filters. This is an integer value.", "required" : true, "style" : "simple", "explode" : false, "schema" : { "type" : "integer", "format" : "int64", "example" : null } } ], "responses" : { "200" : { "description" : "successful operation", "content" : { "application/json" : { "schema" : { "type" : "array", "example" : null, "items" : { "$ref" : "#/components/schemas/FilterResponse" } }, "example" : null } } }, "default" : { "description" : "", "$ref" : "#/components/responses/Error" } }, "security" : [ { "oauth2" : [ "webhooks-journal-subscription-read" ] } ], "x-hubspot-rate-limit-exemptions" : [ "daily", "ten-secondly" ] } }, "/webhooks-journal/subscriptions/2026-03/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-03/filters/{filterId}", "parameters" : [ { "name" : "filterId", "in" : "path", "description" : "The unique identifier of the filter to retrieve. It is an integer value.", "required" : true, "style" : "simple", "explode" : false, "schema" : { "type" : "integer", "format" : "int64", "example" : null } } ], "responses" : { "200" : { "description" : "successful operation", "content" : { "application/json" : { "schema" : { "$ref" : "#/components/schemas/FilterResponse" }, "example" : null } } }, "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-03/filters/{filterId}", "parameters" : [ { "name" : "filterId", "in" : "path", "description" : "The unique identifier of the filter to delete.", "required" : true, "style" : "simple", "explode" : false, "schema" : { "type" : "integer", "format" : "int64", "example" : null } } ], "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-03/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-03/portals/{portalId}", "parameters" : [ { "name" : "portalId", "in" : "path", "description" : "The unique identifier of the portal for which the webhook journal subscription is to be deleted.", "required" : true, "style" : "simple", "explode" : false, "schema" : { "type" : "integer", "format" : "int64", "example" : null } } ], "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-03/{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-03/{subscriptionId}", "parameters" : [ { "name" : "subscriptionId", "in" : "path", "description" : "The unique identifier of the subscription to retrieve.", "required" : true, "style" : "simple", "explode" : false, "schema" : { "type" : "integer", "format" : "int64", "example" : null } } ], "responses" : { "200" : { "description" : "successful operation", "content" : { "application/json" : { "schema" : { "$ref" : "#/components/schemas/SubscriptionResponse" }, "example" : null } } }, "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-03/{subscriptionId}", "parameters" : [ { "name" : "subscriptionId", "in" : "path", "description" : "The unique identifier of the subscription to delete. It must be provided as an integer.", "required" : true, "style" : "simple", "explode" : false, "schema" : { "type" : "integer", "format" : "int64", "example" : null } } ], "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.", "example" : null, "items" : { "type" : "string", "example" : null } }, "listIds" : { "type" : "array", "description" : "An array of integers (int64 format) representing the IDs of the lists involved in the action.", "example" : null, "items" : { "type" : "integer", "format" : "int64", "example" : null } }, "objectIds" : { "type" : "array", "description" : "An array of integers (int64 format) representing the IDs of the objects involved in the action.", "example" : null, "items" : { "type" : "integer", "format" : "int64", "example" : null } }, "properties" : { "type" : "array", "description" : "An array of strings representing the properties to be overridden or specified for the action.", "example" : null, "items" : { "type" : "string", "example" : null } } }, "example" : null }, "AppLifecycleEventSubscriptionUpsertRequest" : { "properties" : { }, "example" : null, "allOf" : [ { "$ref" : "#/components/schemas/SubscriptionUpsertRequest" }, { "required" : [ "eventTypeId", "properties", "subscriptionType" ], "type" : "object", "properties" : { "subscriptionType" : { "type" : "string", "example" : null, "enum" : [ "OBJECT", "ASSOCIATION", "EVENT", "APP_LIFECYCLE_EVENT", "LIST_MEMBERSHIP", "GDPR_PRIVACY_DELETION" ], "default" : "APP_LIFECYCLE_EVENT" }, "eventTypeId" : { "type" : "string", "example" : null }, "properties" : { "type" : "array", "example" : null, "items" : { "type" : "string", "example" : null } } }, "example" : null, "x-hubspot-sub-type-impl" : true } ] }, "AssociationSubscriptionUpsertRequest" : { "properties" : { }, "example" : null, "allOf" : [ { "$ref" : "#/components/schemas/SubscriptionUpsertRequest" }, { "required" : [ "actions", "associatedObjectTypeIds", "objectIds", "objectTypeId", "portalId", "subscriptionType" ], "type" : "object", "properties" : { "subscriptionType" : { "type" : "string", "example" : null, "enum" : [ "OBJECT", "ASSOCIATION", "EVENT", "APP_LIFECYCLE_EVENT", "LIST_MEMBERSHIP", "GDPR_PRIVACY_DELETION" ], "default" : "ASSOCIATION" }, "portalId" : { "type" : "integer", "format" : "int64", "example" : null }, "actions" : { "type" : "array", "example" : null, "items" : { "type" : "string", "example" : null, "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", "example" : null }, "objectIds" : { "type" : "array", "example" : null, "items" : { "type" : "integer", "format" : "int64", "example" : null } }, "associatedObjectTypeIds" : { "type" : "array", "example" : null, "items" : { "type" : "string", "example" : null } } }, "example" : null, "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.", "example" : null, "items" : { "type" : "string", "example" : null } } }, "example" : null }, "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", "example" : null }, "links" : { "type" : "object", "additionalProperties" : { "type" : "string", "example" : null }, "description" : "A map of link names to associated URIs, providing additional resources or information related to the batch operation.", "example" : null }, "requestedAt" : { "type" : "string", "description" : "The date and time when the batch operation was requested, in ISO 8601 format.", "format" : "date-time", "example" : null }, "results" : { "type" : "array", "description" : "An array of results from the batch operation, each represented by a JournalFetchResponse object.", "example" : null, "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", "example" : null }, "status" : { "type" : "string", "description" : "The current status of the batch operation. Valid values include 'PENDING', 'PROCESSING', 'CANCELED', and 'COMPLETE'.", "example" : null, "enum" : [ "CANCELED", "COMPLETE", "PENDING", "PROCESSING" ] } }, "example" : null }, "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", "example" : null }, "errors" : { "type" : "array", "description" : "An array of standard errors, detailing any issues encountered during the batch operation.", "example" : null, "items" : { "$ref" : "#/components/schemas/StandardError" } }, "links" : { "type" : "object", "additionalProperties" : { "type" : "string", "example" : null }, "description" : "A map of link names to associated URIs, providing additional resources or documentation related to the batch operation.", "example" : null }, "numErrors" : { "type" : "integer", "description" : "The number of errors encountered during the batch operation.", "format" : "int32", "example" : null }, "requestedAt" : { "type" : "string", "description" : "The date and time when the batch operation was requested, in ISO 8601 format.", "format" : "date-time", "example" : null }, "results" : { "type" : "array", "description" : "An array of journal fetch responses, each representing a successful fetch attempt.", "example" : null, "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", "example" : null }, "status" : { "type" : "string", "description" : "The current status of the batch operation. Valid values include 'PENDING', 'PROCESSING', 'CANCELED', and 'COMPLETE'.", "example" : null, "enum" : [ "CANCELED", "COMPLETE", "PENDING", "PROCESSING" ] } }, "example" : null }, "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.", "example" : null, "items" : { "$ref" : "#/components/schemas/SubscriptionResponse" } } }, "example" : null }, "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'.", "example" : null, "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'.", "example" : null, "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.", "example" : null }, "value" : { "type" : "string", "description" : "A string representing the value to compare against the specified property using the defined operator.", "example" : null }, "values" : { "type" : "array", "description" : "An array of strings containing multiple values for comparison when using operators like 'IN' or 'NOT_IN'.", "example" : null, "items" : { "type" : "string", "example" : null } } }, "example" : null }, "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.", "example" : null, "items" : { "$ref" : "#/components/schemas/CrmObjectSnapshotRequest" } } }, "example" : null }, "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.", "example" : null, "items" : { "$ref" : "#/components/schemas/CrmObjectSnapshotResponse" } } }, "example" : null }, "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", "example" : null }, "objectTypeId" : { "type" : "string", "description" : "A string representing the type identifier of the CRM object.", "example" : null }, "portalId" : { "type" : "integer", "description" : "An integer representing the unique identifier of the HubSpot portal.", "format" : "int64", "example" : null }, "properties" : { "type" : "array", "description" : "An array of strings specifying the properties of the CRM object to include in the snapshot.", "example" : null, "items" : { "type" : "string", "example" : null } } }, "example" : null }, "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", "example" : null }, "objectTypeId" : { "type" : "string", "description" : "A string representing the type identifier of the CRM object involved in the snapshot.", "example" : null }, "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", "example" : null }, "snapshotStatusId" : { "type" : "string", "description" : "A string in UUID format representing the status identifier of the snapshot operation.", "format" : "uuid", "example" : null } }, "example" : null }, "Error" : { "required" : [ "category", "correlationId", "message" ], "type" : "object", "properties" : { "category" : { "type" : "string", "description" : "The error category.", "example" : null }, "context" : { "type" : "object", "additionalProperties" : { "type" : "array", "example" : null, "items" : { "type" : "string", "example" : null } }, "description" : "Context about the error condition, represented as an object with additional properties.", "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, represented as an array of ErrorDetail objects.", "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.", "example" : null }, "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.", "example" : null } }, "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, represented as an object with additional properties. Each property is an array of strings providing further context.", "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. This is a required property.", "example" : null }, "subCategory" : { "type" : "string", "description" : "A specific category that contains more specific detail about the error.", "example" : null } }, "example" : null }, "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.", "example" : null, "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. ", "example" : null }, "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", "example" : null } }, "example" : null }, "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", "example" : null } }, "example" : null }, "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", "example" : null }, "filter" : { "$ref" : "#/components/schemas/Filter" }, "id" : { "type" : "integer", "description" : "The unique identifier for the filter, represented as a 64-bit integer.", "format" : "int64", "example" : null } }, "example" : null }, "GdprPrivacyDeletionSubscriptionUpsertRequest" : { "properties" : { }, "example" : null, "allOf" : [ { "$ref" : "#/components/schemas/SubscriptionUpsertRequest" }, { "required" : [ "actions", "objectTypeId", "portalId", "subscriptionType" ], "type" : "object", "properties" : { "subscriptionType" : { "type" : "string", "example" : null, "enum" : [ "OBJECT", "ASSOCIATION", "EVENT", "APP_LIFECYCLE_EVENT", "LIST_MEMBERSHIP", "GDPR_PRIVACY_DELETION" ], "default" : "GDPR_PRIVACY_DELETION" }, "portalId" : { "type" : "integer", "format" : "int64", "example" : null }, "actions" : { "type" : "array", "example" : null, "items" : { "type" : "string", "example" : null, "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", "example" : null } }, "example" : null, "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", "example" : null }, "expiresAt" : { "type" : "string", "description" : "The date and time when the URL will expire, in ISO 8601 format.", "format" : "date-time", "example" : null }, "url" : { "type" : "string", "description" : "A string representing the URL where the journal data can be accessed.", "example" : null } }, "example" : null }, "ListMembershipSubscriptionUpsertRequest" : { "properties" : { }, "example" : null, "allOf" : [ { "$ref" : "#/components/schemas/SubscriptionUpsertRequest" }, { "required" : [ "actions", "listIds", "objectIds", "portalId", "subscriptionType" ], "type" : "object", "properties" : { "subscriptionType" : { "type" : "string", "example" : null, "enum" : [ "OBJECT", "ASSOCIATION", "EVENT", "APP_LIFECYCLE_EVENT", "LIST_MEMBERSHIP", "GDPR_PRIVACY_DELETION" ], "default" : "LIST_MEMBERSHIP" }, "portalId" : { "type" : "integer", "format" : "int64", "example" : null }, "actions" : { "type" : "array", "example" : null, "items" : { "type" : "string", "example" : null, "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", "example" : null, "items" : { "type" : "integer", "format" : "int64", "example" : null } }, "objectIds" : { "type" : "array", "example" : null, "items" : { "type" : "integer", "format" : "int64", "example" : null } } }, "example" : null, "x-hubspot-sub-type-impl" : true } ] }, "ObjectSubscriptionUpsertRequest" : { "properties" : { }, "example" : null, "allOf" : [ { "$ref" : "#/components/schemas/SubscriptionUpsertRequest" }, { "required" : [ "actions", "objectIds", "objectTypeId", "portalId", "properties", "subscriptionType" ], "type" : "object", "properties" : { "subscriptionType" : { "type" : "string", "example" : null, "enum" : [ "OBJECT", "ASSOCIATION", "EVENT", "APP_LIFECYCLE_EVENT", "LIST_MEMBERSHIP", "GDPR_PRIVACY_DELETION" ], "default" : "OBJECT" }, "portalId" : { "type" : "integer", "format" : "int64", "example" : null }, "actions" : { "type" : "array", "example" : null, "items" : { "type" : "string", "example" : null, "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", "example" : null }, "objectIds" : { "type" : "array", "example" : null, "items" : { "type" : "integer", "format" : "int64", "example" : null } }, "properties" : { "type" : "array", "example" : null, "items" : { "type" : "string", "example" : null } } }, "example" : null, "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", "example" : null }, "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'.", "example" : null, "enum" : [ "INTERNAL_ERROR", "PERMISSION_DENIED", "TIMEOUT", "VALIDATION_ERROR" ] }, "id" : { "type" : "string", "description" : "A unique identifier for the snapshot, represented as a UUID.", "format" : "uuid", "example" : null }, "initiatedAt" : { "type" : "integer", "description" : "The timestamp when the snapshot was initiated, represented as an integer in int64 format.", "format" : "int64", "example" : null }, "message" : { "type" : "string", "description" : "A descriptive message providing additional information about the snapshot status or error.", "example" : null }, "status" : { "type" : "string", "description" : "The current status of the snapshot. Valid values include 'PENDING', 'IN_PROGRESS', 'COMPLETED', 'FAILED', and 'EXPIRED'.", "example" : null, "enum" : [ "COMPLETED", "EXPIRED", "FAILED", "IN_PROGRESS", "PENDING" ] } }, "example" : null }, "StandardError" : { "required" : [ "category", "context", "errors", "links", "message", "status" ], "type" : "object", "properties" : { "category" : { "type" : "string", "description" : "A string indicating the category of the error.", "example" : null }, "context" : { "type" : "object", "additionalProperties" : { "type" : "array", "example" : null, "items" : { "type" : "string", "example" : null } }, "description" : "An object containing additional context about the error condition, with keys as context names and values as arrays of strings.", "example" : null }, "errors" : { "type" : "array", "description" : "An array of ErrorDetail objects that provide further information about the error.", "example" : null, "items" : { "$ref" : "#/components/schemas/ErrorDetail" } }, "id" : { "type" : "string", "description" : "A string that uniquely identifies this error instance.", "example" : null }, "links" : { "type" : "object", "additionalProperties" : { "type" : "string", "example" : null }, "description" : "An object mapping link names to associated URIs that provide documentation or remediation steps related to the error.", "example" : null }, "message" : { "type" : "string", "description" : "A string containing a human-readable message describing the error.", "example" : null }, "status" : { "type" : "string", "description" : "A string representing the status of the error.", "example" : null }, "subCategory" : { "type" : "object", "properties" : { }, "description" : "An object providing more specific details about the error category.", "example" : null } }, "description" : "Ye olde error", "example" : null }, "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.", "example" : null }, "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'.", "example" : null, "items" : { "type" : "string", "example" : null, "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", "example" : null }, "associatedObjectTypeIds" : { "type" : "array", "description" : "An array of strings representing the IDs of associated object types.", "example" : null, "items" : { "type" : "string", "example" : null } }, "createdAt" : { "type" : "string", "description" : "The date and time when the subscription was created, in ISO 8601 format.", "format" : "date-time", "example" : null }, "createdBy" : { "type" : "integer", "description" : "The unique identifier of the user who created the subscription, represented as an integer.", "format" : "int64", "example" : null }, "deletedAt" : { "type" : "string", "description" : "The date and time when the subscription was deleted, in ISO 8601 format, if applicable.", "format" : "date-time", "example" : null }, "id" : { "type" : "integer", "description" : "The unique identifier for the subscription, represented as an integer.", "format" : "int64", "example" : null }, "listIds" : { "type" : "array", "description" : "An array of integers representing the IDs of lists associated with the subscription.", "example" : null, "items" : { "type" : "integer", "format" : "int64", "example" : null } }, "objectIds" : { "type" : "array", "description" : "An array of integers representing the IDs of objects associated with the subscription.", "example" : null, "items" : { "type" : "integer", "format" : "int64", "example" : null } }, "objectTypeId" : { "type" : "string", "description" : "The identifier for the type of object associated with the subscription, represented as a string.", "example" : null }, "portalId" : { "type" : "integer", "description" : "The unique identifier for the portal associated with the subscription, represented as an integer.", "format" : "int64", "example" : null }, "properties" : { "type" : "array", "description" : "An array of strings representing the properties associated with the subscription.", "example" : null, "items" : { "type" : "string", "example" : null } }, "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'.", "example" : null, "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", "example" : null } }, "example" : null }, "SubscriptionUpsertRequest" : { "properties" : { }, "example" : null, "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" }, "example" : null } } } }, "securitySchemes" : { "developer_hapikey" : { "type" : "apiKey", "name" : "hapikey", "in" : "query" }, "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" } }