openapi: 3.0.1 info: title: HubSpot Communication Preferences Subscriptions description: Basepom for all HubSpot Projects version: 2026-09 x-hubspot-product-tier-requirements: marketing: STARTER sales: FREE service: FREE cms: FREE commerce: FREE crmHub: FREE dataHub: FREE servers: - url: https://api.hubapi.com tags: - name: Batch - name: Definitions - name: Status paths: /communication-preferences/2026-09/definitions: get: tags: - Definitions summary: Retrieve all subscription status definitions description: Get a list of subscription status definitions from the account. operationId: get-/communication-preferences/2026-09/definitions parameters: - name: businessUnitId in: query description: '' required: false style: form explode: true schema: type: integer format: int64 - name: includeTranslations in: query description: '' required: false style: form explode: true schema: type: boolean responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/ActionResponseWithResultsSubscriptionDefinition' default: description: '' $ref: '#/components/responses/Error' security: - oauth2: - communication_preferences.read_write /communication-preferences/2026-09/links/generate: post: tags: - Status summary: Generate subscription links description: Generate communication preference links for a subscriber. This endpoint allows you to create URLs for managing preferences and unsubscribing, tailored to a specific subscriber. It is useful for integrating communication preference management into your applications. operationId: post-/communication-preferences/2026-09/links/generate_/communication-preferences/v4/links/generate parameters: - name: channel in: query description: '' required: true style: form explode: true schema: type: string enum: - EMAIL - name: businessUnitId in: query description: '' required: false style: form explode: true schema: type: integer format: int64 default: 0 requestBody: content: application/json: schema: $ref: '#/components/schemas/LinkGenerationRequest' required: true responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/LinkGenerationResponse' default: description: '' $ref: '#/components/responses/Error' security: - oauth2: - communication_preferences.read_write /communication-preferences/2026-09/statuses/batch/read: post: tags: - Batch summary: Batch retrieve subscription statuses description: Batch retrieve subscription statuses for a set of contacts. operationId: post-/communication-preferences/2026-09/statuses/batch/read parameters: - name: channel in: query description: '' required: true style: form explode: true schema: type: string enum: - EMAIL - name: businessUnitId in: query description: '' required: false style: form explode: true schema: type: integer format: int64 requestBody: content: application/json: schema: $ref: '#/components/schemas/BatchInputString' required: true responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/BatchResponsePublicStatusBulkResponse' '207': description: multiple statuses content: application/json: schema: $ref: '#/components/schemas/BatchResponsePublicStatusBulkResponseWithErrors' default: description: '' $ref: '#/components/responses/Error' security: - oauth2: - communication_preferences.statuses.batch.read /communication-preferences/2026-09/statuses/batch/unsubscribe-all: post: tags: - Batch summary: Batch unsubscribe contacts from all subscriptions description: Unsubscribe a set of contacts from all email subscriptions. operationId: post-/communication-preferences/2026-09/statuses/batch/unsubscribe-all parameters: - name: channel in: query description: '' required: true style: form explode: true schema: type: string enum: - EMAIL - name: businessUnitId in: query description: '' required: false style: form explode: true schema: type: integer format: int64 - name: verbose in: query description: '' required: false style: form explode: true schema: type: boolean default: false requestBody: content: application/json: schema: $ref: '#/components/schemas/BatchInputString' required: true responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/BatchResponsePublicBulkOptOutFromAllResponse' default: description: '' $ref: '#/components/responses/Error' security: - oauth2: - communication_preferences.statuses.batch.write /communication-preferences/2026-09/statuses/batch/unsubscribe-all/read: post: tags: - Batch summary: Batch retrieve contacts who have opted out of all communications description: Checks whether a set of contacts have opted out of all communications. operationId: post-/communication-preferences/2026-09/statuses/batch/unsubscribe-all/read parameters: - name: channel in: query description: '' required: true style: form explode: true schema: type: string enum: - EMAIL - name: businessUnitId in: query description: '' required: false style: form explode: true schema: type: integer format: int64 requestBody: content: application/json: schema: $ref: '#/components/schemas/BatchInputString' required: true responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/BatchResponsePublicWideStatusBulkResponse' '207': description: multiple statuses content: application/json: schema: $ref: '#/components/schemas/BatchResponsePublicWideStatusBulkResponseWithErrors' default: description: '' $ref: '#/components/responses/Error' security: - oauth2: - communication_preferences.statuses.batch.read /communication-preferences/2026-09/statuses/batch/write: post: tags: - Batch summary: Batch update subscription status description: Update the subscription status for a set of contacts. operationId: post-/communication-preferences/2026-09/statuses/batch/write parameters: [] requestBody: content: application/json: schema: $ref: '#/components/schemas/BatchInputPublicStatusRequest' required: true responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/BatchResponsePublicStatus' default: description: '' $ref: '#/components/responses/Error' security: - oauth2: - communication_preferences.statuses.batch.write /communication-preferences/2026-09/statuses/{subscriberIdString}: get: tags: - Status summary: Get subscription preferences for a specific contact description: Retrieve a contact's current email subscription preferences. operationId: get-/communication-preferences/2026-09/statuses/{subscriberIdString} parameters: - name: subscriberIdString in: path description: '' required: true style: simple explode: false schema: type: string - name: channel in: query description: '' required: true style: form explode: true schema: type: string enum: - EMAIL - name: businessUnitId in: query description: '' required: false style: form explode: true schema: type: integer format: int64 responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/ActionResponseWithResultsPublicStatus' default: description: '' $ref: '#/components/responses/Error' security: - oauth2: - communication_preferences.read_write post: tags: - Status summary: Update a contact's subscription status description: Set the subscription status of a specific contact. operationId: post-/communication-preferences/2026-09/statuses/{subscriberIdString} parameters: - name: subscriberIdString in: path description: '' required: true style: simple explode: false schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/PartialPublicStatusRequest' required: true responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/ActionResponseWithResultsPublicStatus' default: description: '' $ref: '#/components/responses/Error' security: - oauth2: - communication_preferences.read_write /communication-preferences/2026-09/statuses/{subscriberIdString}/unsubscribe-all: get: tags: - Status summary: Retrieve a contact's unsubscribed status description: Check whether a contact has unsubscribed from all email subscriptions. If a contact has not opted out of all communications, the response `results` array will be empty. operationId: get-/communication-preferences/2026-09/statuses/{subscriberIdString}/unsubscribe-all parameters: - name: subscriberIdString in: path description: '' required: true style: simple explode: false schema: type: string - name: channel in: query description: '' required: true style: form explode: true schema: type: string enum: - EMAIL - name: businessUnitId in: query description: '' required: false style: form explode: true schema: type: integer format: int64 - name: verbose in: query description: '' required: false style: form explode: true schema: type: boolean default: false responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/ActionResponseWithResultsPublicWideStatus' default: description: '' $ref: '#/components/responses/Error' security: - oauth2: - communication_preferences.read_write post: tags: - Definitions summary: Unsubscribe a contact from all subscriptions description: Unsubscribe a contact from all email subscriptions. operationId: post-/communication-preferences/2026-09/statuses/{subscriberIdString}/unsubscribe-all parameters: - name: subscriberIdString in: path description: '' required: true style: simple explode: false schema: type: string - name: channel in: query description: '' required: true style: form explode: true schema: type: string enum: - EMAIL - name: businessUnitId in: query description: '' required: false style: form explode: true schema: type: integer format: int64 - name: verbose in: query description: '' required: false style: form explode: true schema: type: boolean default: false responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/ActionResponseWithResultsPublicStatus' default: description: '' $ref: '#/components/responses/Error' security: - oauth2: - communication_preferences.read_write components: schemas: ActionResponseWithResultsPublicStatus: required: - completedAt - results - startedAt - status type: object properties: completedAt: type: string description: The date and time when the operation was completed. format: date-time errors: type: array description: A list of errors that occurred during the operation. items: $ref: '#/components/schemas/StandardError' links: type: object additionalProperties: type: string description: Contains URLs related to the response, such as documentation or resources. numErrors: type: integer description: The number of errors that occurred during the operation. format: int32 requestedAt: type: string description: The date and time when the request was made. format: date-time results: type: array description: An array of results from the operation. items: $ref: '#/components/schemas/PublicStatus' startedAt: type: string description: The date and time when the operation started. format: date-time status: type: string description: 'Indicates the current status of the operation, with possible values: PENDING, PROCESSING, CANCELED, COMPLETE.' enum: - CANCELED - COMPLETE - PENDING - PROCESSING ActionResponseWithResultsPublicWideStatus: required: - completedAt - results - startedAt - status type: object properties: completedAt: type: string description: The date and time when the operation was completed. format: date-time errors: type: array description: An array of error objects detailing any issues encountered during the operation. items: $ref: '#/components/schemas/StandardError' links: type: object additionalProperties: type: string description: An object containing related links, where each key is a link name and each value is a URL. numErrors: type: integer description: The number of errors encountered during the operation. format: int32 requestedAt: type: string description: The date and time when the request was made. format: date-time results: type: array description: An array containing the results of the operation. items: $ref: '#/components/schemas/PublicWideStatus' startedAt: type: string description: The date and time when the operation started. format: date-time status: type: string description: The current status of the operation, which can be PENDING, PROCESSING, CANCELED, or COMPLETE. enum: - CANCELED - COMPLETE - PENDING - PROCESSING ActionResponseWithResultsSubscriptionDefinition: required: - completedAt - results - startedAt - status type: object properties: completedAt: type: string description: The date and time when the operation was completed. format: date-time errors: type: array description: An array of errors that occurred during the operation. items: $ref: '#/components/schemas/StandardError' links: type: object additionalProperties: type: string description: A collection of related links associated with the operation. numErrors: type: integer description: The number of errors encountered during the operation. format: int32 requestedAt: type: string description: The date and time when the operation was requested. format: date-time results: type: array description: An array containing the results of the operation. items: $ref: '#/components/schemas/SubscriptionDefinition' startedAt: type: string description: The date and time when the operation started. format: date-time status: type: string description: The current status of the operation, which can be PENDING, PROCESSING, CANCELED, or COMPLETE. enum: - CANCELED - COMPLETE - PENDING - PROCESSING BatchInputPublicStatusRequest: required: - inputs type: object properties: inputs: type: array description: An array of PublicStatusRequest objects, each representing a subscription status update request. This property is required. items: $ref: '#/components/schemas/PublicStatusRequest' BatchInputString: required: - inputs type: object properties: inputs: type: array description: A list of strings representing the inputs for batch operations. items: type: string BatchResponsePublicBulkOptOutFromAllResponse: required: - completedAt - results - startedAt - status type: object properties: completedAt: type: string description: The date and time when the bulk opt-out operation was completed. format: date-time errors: type: array description: An array of error objects detailing any issues encountered during the bulk opt-out operation. items: $ref: '#/components/schemas/StandardError' links: type: object additionalProperties: type: string description: A collection of URLs linking to related resources or documentation. numErrors: type: integer description: The total number of errors encountered during the bulk opt-out operation. format: int32 requestedAt: type: string description: The date and time when the bulk opt-out request was made. format: date-time results: type: array description: An array containing the results of the bulk opt-out from all communications operation. items: $ref: '#/components/schemas/PublicBulkOptOutFromAllResponse' startedAt: type: string description: The date and time when the bulk opt-out operation began. format: date-time status: type: string description: The current status of the bulk opt-out operation, which can be PENDING, PROCESSING, CANCELED, or COMPLETE. enum: - CANCELED - COMPLETE - PENDING - PROCESSING BatchResponsePublicStatus: required: - completedAt - results - startedAt - status type: object properties: completedAt: type: string description: The date and time when the batch operation was completed. format: date-time errors: type: array description: An array of error objects detailing any issues encountered. items: $ref: '#/components/schemas/StandardError' links: type: object additionalProperties: type: string description: URLs linking to related resources or documentation. 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 request was made. format: date-time results: type: array description: An array containing the results of the batch operation. items: $ref: '#/components/schemas/PublicStatus' startedAt: type: string description: The date and time when the batch operation started. format: date-time status: type: string description: The current status of the batch operation, which can be PENDING, PROCESSING, CANCELED, or COMPLETE. enum: - CANCELED - COMPLETE - PENDING - PROCESSING BatchResponsePublicStatusBulkResponse: required: - completedAt - results - startedAt - status type: object properties: completedAt: type: string description: The date and time when the batch process was completed. format: date-time links: type: object additionalProperties: type: string description: A collection of related links associated with the batch response. requestedAt: type: string description: The date and time when the batch request was made. format: date-time results: type: array description: The array of results from the batch process, each containing subscription status information. items: $ref: '#/components/schemas/PublicStatusBulkResponse' startedAt: type: string description: The date and time when the batch process began. format: date-time status: type: string description: 'The current status of the batch process, with possible values: PENDING, PROCESSING, CANCELED, COMPLETE.' enum: - CANCELED - COMPLETE - PENDING - PROCESSING BatchResponsePublicStatusBulkResponseWithErrors: required: - completedAt - results - startedAt - status type: object properties: completedAt: type: string description: The date and time when the operation was completed. format: date-time errors: type: array description: An array of error objects detailing any issues encountered during the operation. items: $ref: '#/components/schemas/StandardError' links: type: object additionalProperties: type: string description: An object containing related links, where each key is a link name and each value is a URL. numErrors: type: integer description: The number of errors encountered during the operation. format: int32 requestedAt: type: string description: The date and time when the request was made. format: date-time results: type: array description: An array containing the results of the operation. items: $ref: '#/components/schemas/PublicStatusBulkResponse' startedAt: type: string description: The date and time when the operation started. format: date-time status: type: string description: The current status of the operation, which can be PENDING, PROCESSING, CANCELED, or COMPLETE. enum: - CANCELED - COMPLETE - PENDING - PROCESSING BatchResponsePublicWideStatusBulkResponse: required: - completedAt - results - startedAt - status type: object properties: completedAt: type: string description: The date and time when the batch process was completed. format: date-time links: type: object additionalProperties: type: string description: A collection of related links associated with the batch response. requestedAt: type: string description: The date and time when the batch request was made. format: date-time results: type: array description: The array of results from the batch process, each containing subscription status information. items: $ref: '#/components/schemas/PublicWideStatusBulkResponse' startedAt: type: string description: The date and time when the batch process began. format: date-time status: type: string description: 'The current status of the batch process, with possible values: PENDING, PROCESSING, CANCELED, COMPLETE.' enum: - CANCELED - COMPLETE - PENDING - PROCESSING BatchResponsePublicWideStatusBulkResponseWithErrors: required: - completedAt - results - startedAt - status type: object properties: completedAt: type: string description: The date and time when the operation was completed. format: date-time errors: type: array description: An array of error objects detailing any issues encountered during the operation. items: $ref: '#/components/schemas/StandardError' links: type: object additionalProperties: type: string description: An object containing related links, where each key is a link name and each value is a URL. numErrors: type: integer description: The number of errors encountered during the operation. format: int32 requestedAt: type: string description: The date and time when the operation was requested. format: date-time results: type: array description: An array containing the results of the operation. items: $ref: '#/components/schemas/PublicWideStatusBulkResponse' startedAt: type: string description: The date and time when the operation started. format: date-time status: type: string description: The current status of the operation, which can be PENDING, PROCESSING, CANCELED, or COMPLETE. enum: - CANCELED - COMPLETE - PENDING - PROCESSING 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. LinkGenerationRequest: required: - subscriberIdString type: object properties: language: type: string description: The language in which the generated link should be presented, represented as a string. subscriberIdString: type: string description: A string representing the unique identifier of the subscriber. This property is required. subscriptionId: type: integer description: The unique identifier for the subscription, represented as an integer in int64 format. format: int64 LinkGenerationResponse: required: - managePreferencesUrl - subscriberIdString - unsubscribeAllUrl type: object properties: managePreferencesUrl: type: string description: The URL where the subscriber can manage their communication preferences. subscriberIdString: type: string description: A string representing the unique identifier of the subscriber. unsubscribeAllUrl: type: string description: A string containing the URL for unsubscribing the subscriber from all communications. unsubscribeSingleUrl: type: string description: A string containing the URL to unsubscribe the subscriber from a single communication. PartialPublicStatusRequest: required: - channel - statusState - subscriptionId type: object properties: channel: type: string description: The type of communication channel, with 'EMAIL' as the only supported option. enum: - EMAIL legalBasis: type: string description: The legal basis for communication, with options including 'LEGITIMATE_INTEREST_PQL', 'LEGITIMATE_INTEREST_CLIENT', 'PERFORMANCE_OF_CONTRACT', 'CONSENT_WITH_NOTICE', 'NON_GDPR', 'PROCESS_AND_STORE', and 'LEGITIMATE_INTEREST_OTHER'. enum: - CONSENT_WITH_NOTICE - LEGITIMATE_INTEREST_CLIENT - LEGITIMATE_INTEREST_OTHER - LEGITIMATE_INTEREST_PQL - NON_GDPR - PERFORMANCE_OF_CONTRACT - PROCESS_AND_STORE legalBasisExplanation: type: string description: An explanation for the legal basis used for communication. statusState: type: string description: The current subscription status of the contact, which can be 'SUBSCRIBED', 'UNSUBSCRIBED', or 'NOT_SPECIFIED'. enum: - NOT_SPECIFIED - SUBSCRIBED - UNSUBSCRIBED subscriptionId: type: integer description: The unique identifier of the subscription to be updated. format: int64 PublicBulkOptOutFromAllResponse: required: - subscriberIdString type: object properties: statuses: type: array description: An array of subscription status objects for the contact. items: $ref: '#/components/schemas/PublicStatus' subscriberIdString: type: string description: The email address of the contact. PublicStatus: required: - channel - source - status - subscriberIdString - subscriptionId - timestamp type: object properties: businessUnitId: type: integer description: The ID of the business unit associated with the subscription. format: int64 channel: type: string description: The type of communication channel, with 'EMAIL' as the only supported option. enum: - EMAIL legalBasis: type: string description: The legal basis for communication, with options including 'LEGITIMATE_INTEREST_PQL', 'LEGITIMATE_INTEREST_CLIENT', 'PERFORMANCE_OF_CONTRACT', 'CONSENT_WITH_NOTICE', 'NON_GDPR', 'PROCESS_AND_STORE', and 'LEGITIMATE_INTEREST_OTHER'. enum: - CONSENT_WITH_NOTICE - LEGITIMATE_INTEREST_CLIENT - LEGITIMATE_INTEREST_OTHER - LEGITIMATE_INTEREST_PQL - NON_GDPR - PERFORMANCE_OF_CONTRACT - PROCESS_AND_STORE legalBasisExplanation: type: string description: An explanation for the legal basis used for communication. setStatusSuccessReason: type: string description: The reason for the successful change in subscription status, such as 'RESUBSCRIBE_OCCURRED' or 'NO_STATUS_CHANGE'. enum: - NO_STATUS_CHANGE - REQUESTED_CHANGE_OCCURRED - RESUBSCRIBE_OCCURRED - UNSUBSCRIBE_FROM_ALL_OCCURRED source: type: string description: The origin or method through which the subscription status was set. status: type: string description: The current subscription status of the contact, which can be 'SUBSCRIBED', 'UNSUBSCRIBED', or 'NOT_SPECIFIED'. enum: - NOT_SPECIFIED - SUBSCRIBED - UNSUBSCRIBED subscriberIdString: type: string description: The contact's email address. subscriptionId: type: integer description: The unique identifier of the subscription. format: int64 subscriptionName: type: string description: The name of the subscription. timestamp: type: string description: The date and time when the subscription status was last updated. format: date-time PublicStatusBulkResponse: required: - statuses - subscriberIdString type: object properties: statuses: type: array description: An array of subscription status objects for the contact. items: $ref: '#/components/schemas/PublicStatus' subscriberIdString: type: string description: The email address of the contact. PublicStatusRequest: required: - channel - statusState - subscriberIdString - subscriptionId type: object properties: channel: type: string description: The type of communication channel. Currently, only `EMAIL` is supported. enum: - EMAIL legalBasis: type: string description: The legal basis for communication. enum: - CONSENT_WITH_NOTICE - LEGITIMATE_INTEREST_CLIENT - LEGITIMATE_INTEREST_OTHER - LEGITIMATE_INTEREST_PQL - NON_GDPR - PERFORMANCE_OF_CONTRACT - PROCESS_AND_STORE legalBasisExplanation: type: string description: The explanation for the legal basis. statusState: type: string description: The status of the contact's subscription. enum: - NOT_SPECIFIED - SUBSCRIBED - UNSUBSCRIBED subscriberIdString: type: string description: The contact's email address. subscriptionId: type: integer description: The ID of the subscription to update. format: int64 PublicSubscriptionTranslation: required: - createdAt - description - languageCode - name - subscriptionId - updatedAt type: object properties: createdAt: type: integer description: The timestamp indicating when the subscription translation was created. format: int64 description: type: string description: A text description of the subscription translation. languageCode: type: string description: The code representing the language of the subscription translation. name: type: string description: The name of the subscription translation. subscriptionId: type: integer description: The unique identifier for the subscription associated with the translation. format: int64 updatedAt: type: integer description: The timestamp indicating when the subscription translation was last updated. format: int64 PublicWideStatus: required: - channel - status - subscriberIdString - timestamp - wideStatusType type: object properties: businessUnitId: type: integer description: The ID of the business unit associated with the status. format: int64 channel: type: string description: The type of communication channel, with 'EMAIL' as the only supported option. enum: - EMAIL status: type: string description: The subscription status of the contact, which can be 'SUBSCRIBED', 'UNSUBSCRIBED', or 'NOT_SPECIFIED'. enum: - NOT_SPECIFIED - SUBSCRIBED - UNSUBSCRIBED subscriberIdString: type: string description: The email address of the contact. timestamp: type: string description: The date and time when the status was recorded. format: date-time wideStatusType: type: string description: The type of wide status, which can be 'PORTAL_WIDE' or 'BUSINESS_UNIT_WIDE'. enum: - BUSINESS_UNIT_WIDE - PORTAL_WIDE PublicWideStatusBulkResponse: required: - subscriberIdString - wideStatuses type: object properties: subscriberIdString: type: string description: The contact's email address. wideStatuses: type: array description: An array containing the wide status results for the operation. items: $ref: '#/components/schemas/PublicWideStatus' StandardError: required: - category - context - errors - links - message - status type: object properties: category: type: string description: A string that categorizes the type of 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 providing further information about the error. items: $ref: '#/components/schemas/ErrorDetail' id: type: string description: A string representing the unique identifier of the error. links: type: object additionalProperties: type: string description: An object mapping link names to associated URIs that contain documentation about the error or recommended remediation steps. message: type: string description: A string containing a human-readable message describing the error. status: type: string description: A string indicating the status of the error. subCategory: type: object properties: {} description: An object providing more specific categorization of the error. description: Ye olde error SubscriptionDefinition: required: - createdAt - description - id - isActive - isDefault - isInternal - name - updatedAt type: object properties: businessUnitId: type: integer description: The ID of the business unit associated with the subscription. format: int64 communicationMethod: type: string description: The method of communication for the subscription. createdAt: type: string description: The date and time when the subscription was created. format: date-time description: type: string description: A description of the subscription. id: type: string description: The unique identifier for the subscription. isActive: type: boolean description: Indicates whether the subscription is active. isDefault: type: boolean description: Indicates whether the subscription is the default option. isInternal: type: boolean description: Indicates whether the subscription is internal. name: type: string description: The name of the subscription. purpose: type: string description: The purpose of the subscription. subscriptionTranslations: type: array description: A list of translations associated with the subscription. items: $ref: '#/components/schemas/PublicSubscriptionTranslation' updatedAt: type: string description: The date and time when the subscription was last updated. format: date-time 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: communication_preferences.read_write: '' communication_preferences.statuses.batch.read: '' communication_preferences.statuses.batch.write: '' 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: STARTER sales: FREE service: FREE cms: FREE commerce: FREE crmHub: FREE dataHub: FREE