openapi: 3.0.1 info: title: HubSpot CRM Associations Schema description: Basepom for all HubSpot Projects version: 2026-09 x-hubspot-product-tier-requirements: marketing: FREE sales: FREE service: FREE cms: FREE commerce: FREE crmHub: FREE dataHub: FREE servers: - url: https://api.hubapi.com tags: - name: Labels - name: Limits paths: /crm/associations/2026-09/definitions/configurations/all: get: tags: - Limits summary: Retrieve all association limits description: Retrieve all configured association limits between objects, which include details about how different CRM object types are associated with each other. operationId: get-/crm/associations/2026-09/definitions/configurations/all_getPage parameters: [] responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/CollectionResponsePublicAssociationDefinitionUserConfigurationNoPaging' default: description: '' $ref: '#/components/responses/Error' security: - oauth2: - crm.objects.deals.read - oauth2: - crm.objects.subscriptions.read - oauth2: - crm.objects.services.read - oauth2: - crm.objects.tickets.sensitive.read - oauth2: - crm.objects.orders.read - oauth2: - crm.objects.listings.write - oauth2: - crm.objects.custom.read - oauth2: - crm.objects.companies.write - oauth2: - crm.objects.tasks.read - oauth2: - crm.objects.custom.sensitive.write.v2 - oauth2: - crm.objects.custom.highly_sensitive.write.v2 - oauth2: - crm.objects.companies.read - oauth2: - crm.objects.contacts.highly_sensitive.read.v2 - oauth2: - crm.objects.appointments.sensitive.read.v2 - oauth2: - crm.objects.tickets.highly_sensitive.read - oauth2: - crm.objects.companies.sensitive.read.v2 - oauth2: - crm.objects.tickets.sensitive.write - oauth2: - media_bridge.read - oauth2: - crm.objects.deals.highly_sensitive.read.v2 - oauth2: - crm.objects.contacts.highly_sensitive.write.v2 - oauth2: - crm.objects.companies.highly_sensitive.read.v2 - oauth2: - crm.objects.commercepayments.write - oauth2: - crm.objects.invoices.write - oauth2: - crm.objects.contacts.sensitive.write.v2 - oauth2: - crm.objects.users.write - oauth2: - crm.objects.calls.read - oauth2: - crm.objects.meetings.read - oauth2: - crm.objects.custom.sensitive.read.v2 - oauth2: - crm.objects.users.read - oauth2: - crm.objects.partner-services.read - oauth2: - crm.objects.orders.write - oauth2: - crm.objects.partner-services.write - oauth2: - crm.objects.appointments.write - oauth2: - crm.objects.projects.highly_sensitive.write - oauth2: - crm.objects.carts.write - oauth2: - crm.objects.tickets.highly_sensitive.write - oauth2: - tickets - oauth2: - crm.objects.commercepayments.read - oauth2: - crm.objects.products.write - oauth2: - crm.objects.services.write - oauth2: - crm.objects.subscriptions.write - oauth2: - crm.objects.deals.sensitive.write.v2 - oauth2: - crm.objects.contacts.read - oauth2: - crm.objects.appointments.sensitive.write.v2 - oauth2: - crm.objects.invoices.read - oauth2: - crm.objects.projects.highly_sensitive.read - oauth2: - tickets.sensitive.v2 - oauth2: - crm.objects.custom.write - oauth2: - crm.objects.deals.write - oauth2: - e-commerce - oauth2: - crm.objects.appointments.read - oauth2: - crm.objects.companies.sensitive.write.v2 - oauth2: - crm.objects.projects.read - oauth2: - crm.objects.deals.highly_sensitive.write.v2 - oauth2: - crm.objects.custom.highly_sensitive.read.v2 - oauth2: - crm.objects.companies.highly_sensitive.write.v2 - oauth2: - crm.objects.goals.write - oauth2: - crm.objects.line_items.write - oauth2: - crm.objects.projects.sensitive.read - oauth2: - crm.objects.contacts.write - oauth2: - crm.objects.goals.read - oauth2: - crm.objects.line_items.read - oauth2: - crm.objects.partner-clients.write - oauth2: - crm.objects.projects.write - oauth2: - crm.objects.deals.sensitive.read.v2 - oauth2: - crm.objects.projects.sensitive.write - oauth2: - crm.objects.quotes.write - oauth2: - tickets.highly_sensitive.v2 - oauth2: - crm.objects.leads.read - oauth2: - crm.objects.leads.write - oauth2: - crm.objects.carts.read - oauth2: - crm.objects.emails.read - oauth2: - crm.objects.quotes.read - oauth2: - crm.objects.courses.write - oauth2: - crm.objects.partner-clients.read - oauth2: - crm.objects.notes.read - oauth2: - crm.objects.courses.read - oauth2: - crm.objects.listings.read - oauth2: - crm.objects.contacts.sensitive.read.v2 - oauth2: - crm.objects.products.read x-hubspot-rate-limit-exemptions: - ten-secondly /crm/associations/2026-09/definitions/configurations/{fromObjectType}/{toObjectType}: get: tags: - Limits summary: Retrieve association limits description: Retrieve the configuration details for associations between two specified CRM object types. Use this endpoint to understand limits that have been set for specific association types. operationId: get-/crm/associations/2026-09/definitions/configurations/{fromObjectType}/{toObjectType}_getPageBetweenTwoObjectTypes parameters: - name: fromObjectType in: path description: '' required: true style: simple explode: false schema: type: string - name: toObjectType in: path description: '' required: true style: simple explode: false schema: type: string responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/CollectionResponsePublicAssociationDefinitionUserConfigurationNoPaging' default: description: '' $ref: '#/components/responses/Error' security: - oauth2: - crm.objects.deals.read - oauth2: - crm.objects.subscriptions.read - oauth2: - crm.objects.services.read - oauth2: - crm.objects.tickets.sensitive.read - oauth2: - crm.objects.orders.read - oauth2: - crm.objects.listings.write - oauth2: - crm.objects.custom.read - oauth2: - crm.objects.companies.write - oauth2: - crm.objects.tasks.read - oauth2: - crm.objects.custom.sensitive.write.v2 - oauth2: - crm.objects.custom.highly_sensitive.write.v2 - oauth2: - crm.objects.companies.read - oauth2: - crm.objects.contacts.highly_sensitive.read.v2 - oauth2: - crm.objects.appointments.sensitive.read.v2 - oauth2: - crm.objects.tickets.highly_sensitive.read - oauth2: - crm.objects.companies.sensitive.read.v2 - oauth2: - crm.objects.tickets.sensitive.write - oauth2: - media_bridge.read - oauth2: - crm.objects.deals.highly_sensitive.read.v2 - oauth2: - crm.objects.contacts.highly_sensitive.write.v2 - oauth2: - crm.objects.companies.highly_sensitive.read.v2 - oauth2: - crm.objects.commercepayments.write - oauth2: - crm.objects.invoices.write - oauth2: - crm.objects.contacts.sensitive.write.v2 - oauth2: - crm.objects.users.write - oauth2: - crm.objects.calls.read - oauth2: - crm.objects.meetings.read - oauth2: - crm.objects.custom.sensitive.read.v2 - oauth2: - crm.objects.users.read - oauth2: - crm.objects.partner-services.read - oauth2: - crm.objects.orders.write - oauth2: - crm.objects.partner-services.write - oauth2: - crm.objects.appointments.write - oauth2: - crm.objects.projects.highly_sensitive.write - oauth2: - crm.objects.carts.write - oauth2: - crm.objects.tickets.highly_sensitive.write - oauth2: - tickets - oauth2: - crm.objects.commercepayments.read - oauth2: - crm.objects.products.write - oauth2: - crm.objects.services.write - oauth2: - crm.objects.subscriptions.write - oauth2: - crm.objects.deals.sensitive.write.v2 - oauth2: - crm.objects.contacts.read - oauth2: - crm.objects.appointments.sensitive.write.v2 - oauth2: - crm.objects.invoices.read - oauth2: - crm.objects.projects.highly_sensitive.read - oauth2: - tickets.sensitive.v2 - oauth2: - crm.objects.custom.write - oauth2: - crm.objects.deals.write - oauth2: - e-commerce - oauth2: - crm.objects.appointments.read - oauth2: - crm.objects.companies.sensitive.write.v2 - oauth2: - crm.objects.projects.read - oauth2: - crm.objects.deals.highly_sensitive.write.v2 - oauth2: - crm.objects.custom.highly_sensitive.read.v2 - oauth2: - crm.objects.companies.highly_sensitive.write.v2 - oauth2: - crm.objects.goals.write - oauth2: - crm.objects.line_items.write - oauth2: - crm.objects.projects.sensitive.read - oauth2: - crm.objects.contacts.write - oauth2: - crm.objects.goals.read - oauth2: - crm.objects.line_items.read - oauth2: - crm.objects.partner-clients.write - oauth2: - crm.objects.projects.write - oauth2: - crm.objects.deals.sensitive.read.v2 - oauth2: - crm.objects.projects.sensitive.write - oauth2: - crm.objects.quotes.write - oauth2: - tickets.highly_sensitive.v2 - oauth2: - crm.objects.leads.read - oauth2: - crm.objects.leads.write - oauth2: - crm.objects.carts.read - oauth2: - crm.objects.emails.read - oauth2: - crm.objects.quotes.read - oauth2: - crm.objects.courses.write - oauth2: - crm.objects.partner-clients.read - oauth2: - crm.objects.notes.read - oauth2: - crm.objects.courses.read - oauth2: - crm.objects.listings.read - oauth2: - crm.objects.contacts.sensitive.read.v2 - oauth2: - crm.objects.products.read x-hubspot-rate-limit-exemptions: - ten-secondly /crm/associations/2026-09/definitions/configurations/{fromObjectType}/{toObjectType}/batch/create: post: tags: - Limits summary: Configure association limits description: Batch configure association limits between two object types. operationId: post-/crm/associations/2026-09/definitions/configurations/{fromObjectType}/{toObjectType}/batch/create_batchCreate parameters: - name: fromObjectType in: path description: '' required: true style: simple explode: false schema: type: string - name: toObjectType in: path description: '' required: true style: simple explode: false schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/BatchInputPublicAssociationDefinitionConfigurationCreateRequest' required: true responses: '201': description: successful operation content: application/json: schema: $ref: '#/components/schemas/BatchResponsePublicAssociationDefinitionUserConfiguration' '207': description: multiple statuses content: application/json: schema: $ref: '#/components/schemas/BatchResponsePublicAssociationDefinitionUserConfigurationWithErrors' default: description: '' $ref: '#/components/responses/Error' security: - oauth2: - crm.objects.deals.read - oauth2: - crm.objects.subscriptions.read - oauth2: - crm.objects.services.read - oauth2: - crm.objects.tickets.sensitive.read - oauth2: - crm.objects.orders.read - oauth2: - crm.objects.listings.write - oauth2: - crm.objects.custom.read - oauth2: - crm.objects.companies.write - oauth2: - crm.objects.tasks.read - oauth2: - crm.objects.custom.sensitive.write.v2 - oauth2: - crm.objects.custom.highly_sensitive.write.v2 - oauth2: - crm.objects.companies.read - oauth2: - crm.objects.contacts.highly_sensitive.read.v2 - oauth2: - crm.objects.appointments.sensitive.read.v2 - oauth2: - crm.objects.tickets.highly_sensitive.read - oauth2: - crm.objects.companies.sensitive.read.v2 - oauth2: - crm.objects.tickets.sensitive.write - oauth2: - media_bridge.read - oauth2: - crm.objects.deals.highly_sensitive.read.v2 - oauth2: - crm.objects.contacts.highly_sensitive.write.v2 - oauth2: - crm.objects.companies.highly_sensitive.read.v2 - oauth2: - crm.objects.commercepayments.write - oauth2: - crm.objects.invoices.write - oauth2: - crm.objects.contacts.sensitive.write.v2 - oauth2: - crm.objects.users.write - oauth2: - crm.objects.calls.read - oauth2: - crm.objects.meetings.read - oauth2: - crm.objects.custom.sensitive.read.v2 - oauth2: - crm.objects.users.read - oauth2: - crm.objects.partner-services.read - oauth2: - crm.objects.orders.write - oauth2: - crm.objects.partner-services.write - oauth2: - crm.objects.appointments.write - oauth2: - crm.objects.projects.highly_sensitive.write - oauth2: - crm.objects.carts.write - oauth2: - crm.objects.tickets.highly_sensitive.write - oauth2: - tickets - oauth2: - crm.objects.commercepayments.read - oauth2: - crm.objects.products.write - oauth2: - crm.objects.services.write - oauth2: - crm.objects.subscriptions.write - oauth2: - crm.objects.deals.sensitive.write.v2 - oauth2: - crm.objects.contacts.read - oauth2: - crm.objects.appointments.sensitive.write.v2 - oauth2: - crm.objects.invoices.read - oauth2: - crm.objects.projects.highly_sensitive.read - oauth2: - tickets.sensitive.v2 - oauth2: - crm.objects.custom.write - oauth2: - crm.objects.deals.write - oauth2: - e-commerce - oauth2: - crm.objects.appointments.read - oauth2: - crm.objects.companies.sensitive.write.v2 - oauth2: - crm.objects.projects.read - oauth2: - crm.objects.deals.highly_sensitive.write.v2 - oauth2: - crm.objects.custom.highly_sensitive.read.v2 - oauth2: - crm.objects.companies.highly_sensitive.write.v2 - oauth2: - crm.objects.goals.write - oauth2: - crm.objects.line_items.write - oauth2: - crm.objects.projects.sensitive.read - oauth2: - crm.objects.contacts.write - oauth2: - crm.objects.goals.read - oauth2: - crm.objects.line_items.read - oauth2: - crm.objects.partner-clients.write - oauth2: - crm.objects.projects.write - oauth2: - crm.objects.deals.sensitive.read.v2 - oauth2: - crm.objects.projects.sensitive.write - oauth2: - crm.objects.quotes.write - oauth2: - tickets.highly_sensitive.v2 - oauth2: - crm.objects.leads.read - oauth2: - crm.objects.leads.write - oauth2: - crm.objects.carts.read - oauth2: - crm.objects.emails.read - oauth2: - crm.objects.quotes.read - oauth2: - crm.objects.courses.write - oauth2: - crm.objects.partner-clients.read - oauth2: - crm.objects.notes.read - oauth2: - crm.objects.courses.read - oauth2: - crm.objects.listings.read - oauth2: - crm.objects.contacts.sensitive.read.v2 - oauth2: - crm.objects.products.read x-hubspot-rate-limit-exemptions: - ten-secondly /crm/associations/2026-09/definitions/configurations/{fromObjectType}/{toObjectType}/batch/purge: post: tags: - Limits summary: Remove association limits description: Batch delete limits that have been defined for association types between two object types. operationId: post-/crm/associations/2026-09/definitions/configurations/{fromObjectType}/{toObjectType}/batch/purge_batchRemove parameters: - name: fromObjectType in: path description: '' required: true style: simple explode: false schema: type: string - name: toObjectType in: path description: '' required: true style: simple explode: false schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/BatchInputPublicAssociationSpec' required: true responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/BatchResponse' default: description: '' $ref: '#/components/responses/Error' security: - oauth2: - crm.objects.deals.read - oauth2: - crm.objects.subscriptions.read - oauth2: - crm.objects.services.read - oauth2: - crm.objects.tickets.sensitive.read - oauth2: - crm.objects.orders.read - oauth2: - crm.objects.listings.write - oauth2: - crm.objects.custom.read - oauth2: - crm.objects.companies.write - oauth2: - crm.objects.tasks.read - oauth2: - crm.objects.custom.sensitive.write.v2 - oauth2: - crm.objects.custom.highly_sensitive.write.v2 - oauth2: - crm.objects.companies.read - oauth2: - crm.objects.contacts.highly_sensitive.read.v2 - oauth2: - crm.objects.appointments.sensitive.read.v2 - oauth2: - crm.objects.tickets.highly_sensitive.read - oauth2: - crm.objects.companies.sensitive.read.v2 - oauth2: - crm.objects.tickets.sensitive.write - oauth2: - media_bridge.read - oauth2: - crm.objects.deals.highly_sensitive.read.v2 - oauth2: - crm.objects.contacts.highly_sensitive.write.v2 - oauth2: - crm.objects.companies.highly_sensitive.read.v2 - oauth2: - crm.objects.commercepayments.write - oauth2: - crm.objects.invoices.write - oauth2: - crm.objects.contacts.sensitive.write.v2 - oauth2: - crm.objects.users.write - oauth2: - crm.objects.calls.read - oauth2: - crm.objects.meetings.read - oauth2: - crm.objects.custom.sensitive.read.v2 - oauth2: - crm.objects.users.read - oauth2: - crm.objects.partner-services.read - oauth2: - crm.objects.orders.write - oauth2: - crm.objects.partner-services.write - oauth2: - crm.objects.appointments.write - oauth2: - crm.objects.projects.highly_sensitive.write - oauth2: - crm.objects.carts.write - oauth2: - crm.objects.tickets.highly_sensitive.write - oauth2: - tickets - oauth2: - crm.objects.commercepayments.read - oauth2: - crm.objects.products.write - oauth2: - crm.objects.services.write - oauth2: - crm.objects.subscriptions.write - oauth2: - crm.objects.deals.sensitive.write.v2 - oauth2: - crm.objects.contacts.read - oauth2: - crm.objects.appointments.sensitive.write.v2 - oauth2: - crm.objects.invoices.read - oauth2: - crm.objects.projects.highly_sensitive.read - oauth2: - tickets.sensitive.v2 - oauth2: - crm.objects.custom.write - oauth2: - crm.objects.deals.write - oauth2: - e-commerce - oauth2: - crm.objects.appointments.read - oauth2: - crm.objects.companies.sensitive.write.v2 - oauth2: - crm.objects.projects.read - oauth2: - crm.objects.deals.highly_sensitive.write.v2 - oauth2: - crm.objects.custom.highly_sensitive.read.v2 - oauth2: - crm.objects.companies.highly_sensitive.write.v2 - oauth2: - crm.objects.goals.write - oauth2: - crm.objects.line_items.write - oauth2: - crm.objects.projects.sensitive.read - oauth2: - crm.objects.contacts.write - oauth2: - crm.objects.goals.read - oauth2: - crm.objects.line_items.read - oauth2: - crm.objects.partner-clients.write - oauth2: - crm.objects.projects.write - oauth2: - crm.objects.deals.sensitive.read.v2 - oauth2: - crm.objects.projects.sensitive.write - oauth2: - crm.objects.quotes.write - oauth2: - tickets.highly_sensitive.v2 - oauth2: - crm.objects.leads.read - oauth2: - crm.objects.leads.write - oauth2: - crm.objects.carts.read - oauth2: - crm.objects.emails.read - oauth2: - crm.objects.quotes.read - oauth2: - crm.objects.courses.write - oauth2: - crm.objects.partner-clients.read - oauth2: - crm.objects.notes.read - oauth2: - crm.objects.courses.read - oauth2: - crm.objects.listings.read - oauth2: - crm.objects.contacts.sensitive.read.v2 - oauth2: - crm.objects.products.read x-hubspot-rate-limit-exemptions: - ten-secondly /crm/associations/2026-09/definitions/configurations/{fromObjectType}/{toObjectType}/batch/update: post: tags: - Limits summary: Update association limits description: Batch update association limits that have been configured between two object types. operationId: post-/crm/associations/2026-09/definitions/configurations/{fromObjectType}/{toObjectType}/batch/update_batchUpdate parameters: - name: fromObjectType in: path description: '' required: true style: simple explode: false schema: type: string - name: toObjectType in: path description: '' required: true style: simple explode: false schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/BatchInputPublicAssociationDefinitionConfigurationUpdateRequest' required: true responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/BatchResponsePublicAssociationDefinitionConfigurationUpdateResult' '207': description: multiple statuses content: application/json: schema: $ref: '#/components/schemas/BatchResponsePublicAssociationDefinitionConfigurationUpdateResultWithErrors' default: description: '' $ref: '#/components/responses/Error' security: - oauth2: - crm.objects.deals.read - oauth2: - crm.objects.subscriptions.read - oauth2: - crm.objects.services.read - oauth2: - crm.objects.tickets.sensitive.read - oauth2: - crm.objects.orders.read - oauth2: - crm.objects.listings.write - oauth2: - crm.objects.custom.read - oauth2: - crm.objects.companies.write - oauth2: - crm.objects.tasks.read - oauth2: - crm.objects.custom.sensitive.write.v2 - oauth2: - crm.objects.custom.highly_sensitive.write.v2 - oauth2: - crm.objects.companies.read - oauth2: - crm.objects.contacts.highly_sensitive.read.v2 - oauth2: - crm.objects.appointments.sensitive.read.v2 - oauth2: - crm.objects.tickets.highly_sensitive.read - oauth2: - crm.objects.companies.sensitive.read.v2 - oauth2: - crm.objects.tickets.sensitive.write - oauth2: - media_bridge.read - oauth2: - crm.objects.deals.highly_sensitive.read.v2 - oauth2: - crm.objects.contacts.highly_sensitive.write.v2 - oauth2: - crm.objects.companies.highly_sensitive.read.v2 - oauth2: - crm.objects.commercepayments.write - oauth2: - crm.objects.invoices.write - oauth2: - crm.objects.contacts.sensitive.write.v2 - oauth2: - crm.objects.users.write - oauth2: - crm.objects.calls.read - oauth2: - crm.objects.meetings.read - oauth2: - crm.objects.custom.sensitive.read.v2 - oauth2: - crm.objects.users.read - oauth2: - crm.objects.partner-services.read - oauth2: - crm.objects.orders.write - oauth2: - crm.objects.partner-services.write - oauth2: - crm.objects.appointments.write - oauth2: - crm.objects.projects.highly_sensitive.write - oauth2: - crm.objects.carts.write - oauth2: - crm.objects.tickets.highly_sensitive.write - oauth2: - tickets - oauth2: - crm.objects.commercepayments.read - oauth2: - crm.objects.products.write - oauth2: - crm.objects.services.write - oauth2: - crm.objects.subscriptions.write - oauth2: - crm.objects.deals.sensitive.write.v2 - oauth2: - crm.objects.contacts.read - oauth2: - crm.objects.appointments.sensitive.write.v2 - oauth2: - crm.objects.invoices.read - oauth2: - crm.objects.projects.highly_sensitive.read - oauth2: - tickets.sensitive.v2 - oauth2: - crm.objects.custom.write - oauth2: - crm.objects.deals.write - oauth2: - e-commerce - oauth2: - crm.objects.appointments.read - oauth2: - crm.objects.companies.sensitive.write.v2 - oauth2: - crm.objects.projects.read - oauth2: - crm.objects.deals.highly_sensitive.write.v2 - oauth2: - crm.objects.custom.highly_sensitive.read.v2 - oauth2: - crm.objects.companies.highly_sensitive.write.v2 - oauth2: - crm.objects.goals.write - oauth2: - crm.objects.line_items.write - oauth2: - crm.objects.projects.sensitive.read - oauth2: - crm.objects.contacts.write - oauth2: - crm.objects.goals.read - oauth2: - crm.objects.line_items.read - oauth2: - crm.objects.partner-clients.write - oauth2: - crm.objects.projects.write - oauth2: - crm.objects.deals.sensitive.read.v2 - oauth2: - crm.objects.projects.sensitive.write - oauth2: - crm.objects.quotes.write - oauth2: - tickets.highly_sensitive.v2 - oauth2: - crm.objects.leads.read - oauth2: - crm.objects.leads.write - oauth2: - crm.objects.carts.read - oauth2: - crm.objects.emails.read - oauth2: - crm.objects.quotes.read - oauth2: - crm.objects.courses.write - oauth2: - crm.objects.partner-clients.read - oauth2: - crm.objects.notes.read - oauth2: - crm.objects.courses.read - oauth2: - crm.objects.listings.read - oauth2: - crm.objects.contacts.sensitive.read.v2 - oauth2: - crm.objects.products.read x-hubspot-rate-limit-exemptions: - ten-secondly /crm/associations/2026-09/{fromObjectType}/{toObjectType}/labels: get: tags: - Labels summary: Retrieve association labels description: Retrieve all labels that describe the relationships between two specified CRM object types. These labels provide context about the nature of the associations. operationId: get-/crm/associations/2026-09/{fromObjectType}/{toObjectType}/labels_getPage parameters: - name: fromObjectType in: path description: '' required: true style: simple explode: false schema: type: string - name: toObjectType in: path description: '' required: true style: simple explode: false schema: type: string responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/CollectionResponseAssociationSpecWithLabelNoPaging' default: description: '' $ref: '#/components/responses/Error' security: - oauth2: - crm.objects.deals.read - oauth2: - crm.objects.subscriptions.read - oauth2: - crm.objects.services.read - oauth2: - crm.objects.tickets.sensitive.read - oauth2: - crm.objects.orders.read - oauth2: - crm.objects.listings.write - oauth2: - crm.objects.custom.read - oauth2: - crm.objects.companies.write - oauth2: - crm.objects.tasks.read - oauth2: - crm.objects.custom.sensitive.write.v2 - oauth2: - crm.objects.custom.highly_sensitive.write.v2 - oauth2: - crm.objects.companies.read - oauth2: - crm.objects.contacts.highly_sensitive.read.v2 - oauth2: - crm.objects.appointments.sensitive.read.v2 - oauth2: - crm.objects.tickets.highly_sensitive.read - oauth2: - crm.objects.companies.sensitive.read.v2 - oauth2: - crm.objects.tickets.sensitive.write - oauth2: - media_bridge.read - oauth2: - crm.objects.deals.highly_sensitive.read.v2 - oauth2: - crm.objects.contacts.highly_sensitive.write.v2 - oauth2: - crm.objects.companies.highly_sensitive.read.v2 - oauth2: - crm.objects.commercepayments.write - oauth2: - crm.objects.invoices.write - oauth2: - crm.objects.contacts.sensitive.write.v2 - oauth2: - crm.objects.users.write - oauth2: - crm.objects.calls.read - oauth2: - crm.objects.meetings.read - oauth2: - crm.objects.custom.sensitive.read.v2 - oauth2: - crm.objects.users.read - oauth2: - crm.objects.partner-services.read - oauth2: - crm.objects.orders.write - oauth2: - crm.objects.partner-services.write - oauth2: - crm.objects.appointments.write - oauth2: - crm.objects.projects.highly_sensitive.write - oauth2: - crm.objects.carts.write - oauth2: - crm.objects.tickets.highly_sensitive.write - oauth2: - tickets - oauth2: - crm.objects.commercepayments.read - oauth2: - crm.objects.products.write - oauth2: - crm.objects.services.write - oauth2: - crm.objects.subscriptions.write - oauth2: - crm.objects.deals.sensitive.write.v2 - oauth2: - crm.objects.contacts.read - oauth2: - crm.objects.appointments.sensitive.write.v2 - oauth2: - crm.objects.invoices.read - oauth2: - crm.objects.projects.highly_sensitive.read - oauth2: - tickets.sensitive.v2 - oauth2: - crm.objects.custom.write - oauth2: - crm.objects.deals.write - oauth2: - e-commerce - oauth2: - crm.objects.appointments.read - oauth2: - crm.objects.companies.sensitive.write.v2 - oauth2: - crm.objects.projects.read - oauth2: - crm.objects.deals.highly_sensitive.write.v2 - oauth2: - crm.objects.custom.highly_sensitive.read.v2 - oauth2: - crm.objects.companies.highly_sensitive.write.v2 - oauth2: - crm.objects.goals.write - oauth2: - crm.objects.line_items.write - oauth2: - crm.objects.projects.sensitive.read - oauth2: - crm.objects.contacts.write - oauth2: - crm.objects.goals.read - oauth2: - crm.objects.line_items.read - oauth2: - crm.objects.partner-clients.write - oauth2: - crm.objects.projects.write - oauth2: - crm.objects.deals.sensitive.read.v2 - oauth2: - crm.objects.projects.sensitive.write - oauth2: - crm.objects.quotes.write - oauth2: - tickets.highly_sensitive.v2 - oauth2: - crm.objects.leads.read - oauth2: - crm.objects.leads.write - oauth2: - crm.objects.carts.read - oauth2: - crm.objects.emails.read - oauth2: - crm.objects.quotes.read - oauth2: - crm.objects.courses.write - oauth2: - crm.objects.partner-clients.read - oauth2: - crm.objects.notes.read - oauth2: - crm.objects.courses.read - oauth2: - crm.objects.listings.read - oauth2: - crm.objects.contacts.sensitive.read.v2 - oauth2: - crm.objects.products.read x-hubspot-rate-limit-exemptions: - ten-secondly put: tags: - Labels summary: Update association label description: Update an existing label that describes the relationship between two specified CRM object types. This allows for modifications to existing association labels to better reflect the nature of the relationship. operationId: put-/crm/associations/2026-09/{fromObjectType}/{toObjectType}/labels_update parameters: - name: fromObjectType in: path description: '' required: true style: simple explode: false schema: type: string - name: toObjectType in: path description: '' required: true style: simple explode: false schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/PublicAssociationDefinitionUpdateRequest' required: true responses: '204': description: No content content: {} default: description: '' $ref: '#/components/responses/Error' security: - oauth2: - crm.objects.deals.read - oauth2: - crm.objects.subscriptions.read - oauth2: - crm.objects.services.read - oauth2: - crm.objects.tickets.sensitive.read - oauth2: - crm.objects.orders.read - oauth2: - crm.objects.listings.write - oauth2: - crm.objects.custom.read - oauth2: - crm.objects.companies.write - oauth2: - crm.objects.tasks.read - oauth2: - crm.objects.custom.sensitive.write.v2 - oauth2: - crm.objects.custom.highly_sensitive.write.v2 - oauth2: - crm.objects.companies.read - oauth2: - crm.objects.contacts.highly_sensitive.read.v2 - oauth2: - crm.objects.appointments.sensitive.read.v2 - oauth2: - crm.objects.tickets.highly_sensitive.read - oauth2: - crm.objects.companies.sensitive.read.v2 - oauth2: - crm.objects.tickets.sensitive.write - oauth2: - media_bridge.read - oauth2: - crm.objects.deals.highly_sensitive.read.v2 - oauth2: - crm.objects.contacts.highly_sensitive.write.v2 - oauth2: - crm.objects.companies.highly_sensitive.read.v2 - oauth2: - crm.objects.commercepayments.write - oauth2: - crm.objects.invoices.write - oauth2: - crm.objects.contacts.sensitive.write.v2 - oauth2: - crm.objects.users.write - oauth2: - crm.objects.calls.read - oauth2: - crm.objects.meetings.read - oauth2: - crm.objects.custom.sensitive.read.v2 - oauth2: - crm.objects.users.read - oauth2: - crm.objects.partner-services.read - oauth2: - crm.objects.orders.write - oauth2: - crm.objects.partner-services.write - oauth2: - crm.objects.appointments.write - oauth2: - crm.objects.projects.highly_sensitive.write - oauth2: - crm.objects.carts.write - oauth2: - crm.objects.tickets.highly_sensitive.write - oauth2: - tickets - oauth2: - crm.objects.commercepayments.read - oauth2: - crm.objects.products.write - oauth2: - crm.objects.services.write - oauth2: - crm.objects.subscriptions.write - oauth2: - crm.objects.deals.sensitive.write.v2 - oauth2: - crm.objects.contacts.read - oauth2: - crm.objects.appointments.sensitive.write.v2 - oauth2: - crm.objects.invoices.read - oauth2: - crm.objects.projects.highly_sensitive.read - oauth2: - tickets.sensitive.v2 - oauth2: - crm.objects.custom.write - oauth2: - crm.objects.deals.write - oauth2: - e-commerce - oauth2: - crm.objects.appointments.read - oauth2: - crm.objects.companies.sensitive.write.v2 - oauth2: - crm.objects.projects.read - oauth2: - crm.objects.deals.highly_sensitive.write.v2 - oauth2: - crm.objects.custom.highly_sensitive.read.v2 - oauth2: - crm.objects.companies.highly_sensitive.write.v2 - oauth2: - crm.objects.goals.write - oauth2: - crm.objects.line_items.write - oauth2: - crm.objects.projects.sensitive.read - oauth2: - crm.objects.contacts.write - oauth2: - crm.objects.goals.read - oauth2: - crm.objects.line_items.read - oauth2: - crm.objects.partner-clients.write - oauth2: - crm.objects.projects.write - oauth2: - crm.objects.deals.sensitive.read.v2 - oauth2: - crm.objects.projects.sensitive.write - oauth2: - crm.objects.quotes.write - oauth2: - tickets.highly_sensitive.v2 - oauth2: - crm.objects.leads.read - oauth2: - crm.objects.leads.write - oauth2: - crm.objects.carts.read - oauth2: - crm.objects.emails.read - oauth2: - crm.objects.quotes.read - oauth2: - crm.objects.courses.write - oauth2: - crm.objects.partner-clients.read - oauth2: - crm.objects.notes.read - oauth2: - crm.objects.courses.read - oauth2: - crm.objects.listings.read - oauth2: - crm.objects.contacts.sensitive.read.v2 - oauth2: - crm.objects.products.read x-hubspot-rate-limit-exemptions: - ten-secondly post: tags: - Labels summary: Create association label description: Create a new label that describes the relationship between two specified CRM object types. This can help in categorizing and managing associations more effectively. operationId: post-/crm/associations/2026-09/{fromObjectType}/{toObjectType}/labels_create parameters: - name: fromObjectType in: path description: '' required: true style: simple explode: false schema: type: string - name: toObjectType in: path description: '' required: true style: simple explode: false schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/PublicAssociationDefinitionCreateRequest' required: true responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/CollectionResponseAssociationSpecWithLabelNoPaging' default: description: '' $ref: '#/components/responses/Error' security: - oauth2: - crm.objects.deals.read - oauth2: - crm.objects.subscriptions.read - oauth2: - crm.objects.services.read - oauth2: - crm.objects.tickets.sensitive.read - oauth2: - crm.objects.orders.read - oauth2: - crm.objects.listings.write - oauth2: - crm.objects.custom.read - oauth2: - crm.objects.companies.write - oauth2: - crm.objects.tasks.read - oauth2: - crm.objects.custom.sensitive.write.v2 - oauth2: - crm.objects.custom.highly_sensitive.write.v2 - oauth2: - crm.objects.companies.read - oauth2: - crm.objects.contacts.highly_sensitive.read.v2 - oauth2: - crm.objects.appointments.sensitive.read.v2 - oauth2: - crm.objects.tickets.highly_sensitive.read - oauth2: - crm.objects.companies.sensitive.read.v2 - oauth2: - crm.objects.tickets.sensitive.write - oauth2: - media_bridge.read - oauth2: - crm.objects.deals.highly_sensitive.read.v2 - oauth2: - crm.objects.contacts.highly_sensitive.write.v2 - oauth2: - crm.objects.companies.highly_sensitive.read.v2 - oauth2: - crm.objects.commercepayments.write - oauth2: - crm.objects.invoices.write - oauth2: - crm.objects.contacts.sensitive.write.v2 - oauth2: - crm.objects.users.write - oauth2: - crm.objects.calls.read - oauth2: - crm.objects.meetings.read - oauth2: - crm.objects.custom.sensitive.read.v2 - oauth2: - crm.objects.users.read - oauth2: - crm.objects.partner-services.read - oauth2: - crm.objects.orders.write - oauth2: - crm.objects.partner-services.write - oauth2: - crm.objects.appointments.write - oauth2: - crm.objects.projects.highly_sensitive.write - oauth2: - crm.objects.carts.write - oauth2: - crm.objects.tickets.highly_sensitive.write - oauth2: - tickets - oauth2: - crm.objects.commercepayments.read - oauth2: - crm.objects.products.write - oauth2: - crm.objects.services.write - oauth2: - crm.objects.subscriptions.write - oauth2: - crm.objects.deals.sensitive.write.v2 - oauth2: - crm.objects.contacts.read - oauth2: - crm.objects.appointments.sensitive.write.v2 - oauth2: - crm.objects.invoices.read - oauth2: - crm.objects.projects.highly_sensitive.read - oauth2: - tickets.sensitive.v2 - oauth2: - crm.objects.custom.write - oauth2: - crm.objects.deals.write - oauth2: - e-commerce - oauth2: - crm.objects.appointments.read - oauth2: - crm.objects.companies.sensitive.write.v2 - oauth2: - crm.objects.projects.read - oauth2: - crm.objects.deals.highly_sensitive.write.v2 - oauth2: - crm.objects.custom.highly_sensitive.read.v2 - oauth2: - crm.objects.companies.highly_sensitive.write.v2 - oauth2: - crm.objects.goals.write - oauth2: - crm.objects.line_items.write - oauth2: - crm.objects.projects.sensitive.read - oauth2: - crm.objects.contacts.write - oauth2: - crm.objects.goals.read - oauth2: - crm.objects.line_items.read - oauth2: - crm.objects.partner-clients.write - oauth2: - crm.objects.projects.write - oauth2: - crm.objects.deals.sensitive.read.v2 - oauth2: - crm.objects.projects.sensitive.write - oauth2: - crm.objects.quotes.write - oauth2: - tickets.highly_sensitive.v2 - oauth2: - crm.objects.leads.read - oauth2: - crm.objects.leads.write - oauth2: - crm.objects.carts.read - oauth2: - crm.objects.emails.read - oauth2: - crm.objects.quotes.read - oauth2: - crm.objects.courses.write - oauth2: - crm.objects.partner-clients.read - oauth2: - crm.objects.notes.read - oauth2: - crm.objects.courses.read - oauth2: - crm.objects.listings.read - oauth2: - crm.objects.contacts.sensitive.read.v2 - oauth2: - crm.objects.products.read x-hubspot-rate-limit-exemptions: - ten-secondly /crm/associations/2026-09/{fromObjectType}/{toObjectType}/labels/{associationTypeId}: delete: tags: - Labels summary: Delete association label description: Remove a specific label from the association between two CRM object types. operationId: delete-/crm/associations/2026-09/{fromObjectType}/{toObjectType}/labels/{associationTypeId}_remove parameters: - name: associationTypeId in: path description: '' required: true style: simple explode: false schema: type: integer format: int32 - name: fromObjectType in: path description: '' required: true style: simple explode: false schema: type: string - name: toObjectType in: path description: '' required: true style: simple explode: false schema: type: string responses: '204': description: No content content: {} default: description: '' $ref: '#/components/responses/Error' security: - oauth2: - crm.objects.deals.read - oauth2: - crm.objects.subscriptions.read - oauth2: - crm.objects.services.read - oauth2: - crm.objects.tickets.sensitive.read - oauth2: - crm.objects.orders.read - oauth2: - crm.objects.listings.write - oauth2: - crm.objects.custom.read - oauth2: - crm.objects.companies.write - oauth2: - crm.objects.tasks.read - oauth2: - crm.objects.custom.sensitive.write.v2 - oauth2: - crm.objects.custom.highly_sensitive.write.v2 - oauth2: - crm.objects.companies.read - oauth2: - crm.objects.contacts.highly_sensitive.read.v2 - oauth2: - crm.objects.appointments.sensitive.read.v2 - oauth2: - crm.objects.tickets.highly_sensitive.read - oauth2: - crm.objects.companies.sensitive.read.v2 - oauth2: - crm.objects.tickets.sensitive.write - oauth2: - media_bridge.read - oauth2: - crm.objects.deals.highly_sensitive.read.v2 - oauth2: - crm.objects.contacts.highly_sensitive.write.v2 - oauth2: - crm.objects.companies.highly_sensitive.read.v2 - oauth2: - crm.objects.commercepayments.write - oauth2: - crm.objects.invoices.write - oauth2: - crm.objects.contacts.sensitive.write.v2 - oauth2: - crm.objects.users.write - oauth2: - crm.objects.calls.read - oauth2: - crm.objects.meetings.read - oauth2: - crm.objects.custom.sensitive.read.v2 - oauth2: - crm.objects.users.read - oauth2: - crm.objects.partner-services.read - oauth2: - crm.objects.orders.write - oauth2: - crm.objects.partner-services.write - oauth2: - crm.objects.appointments.write - oauth2: - crm.objects.projects.highly_sensitive.write - oauth2: - crm.objects.carts.write - oauth2: - crm.objects.tickets.highly_sensitive.write - oauth2: - tickets - oauth2: - crm.objects.commercepayments.read - oauth2: - crm.objects.products.write - oauth2: - crm.objects.services.write - oauth2: - crm.objects.subscriptions.write - oauth2: - crm.objects.deals.sensitive.write.v2 - oauth2: - crm.objects.contacts.read - oauth2: - crm.objects.appointments.sensitive.write.v2 - oauth2: - crm.objects.invoices.read - oauth2: - crm.objects.projects.highly_sensitive.read - oauth2: - tickets.sensitive.v2 - oauth2: - crm.objects.custom.write - oauth2: - crm.objects.deals.write - oauth2: - e-commerce - oauth2: - crm.objects.appointments.read - oauth2: - crm.objects.companies.sensitive.write.v2 - oauth2: - crm.objects.projects.read - oauth2: - crm.objects.deals.highly_sensitive.write.v2 - oauth2: - crm.objects.custom.highly_sensitive.read.v2 - oauth2: - crm.objects.companies.highly_sensitive.write.v2 - oauth2: - crm.objects.goals.write - oauth2: - crm.objects.line_items.write - oauth2: - crm.objects.projects.sensitive.read - oauth2: - crm.objects.contacts.write - oauth2: - crm.objects.goals.read - oauth2: - crm.objects.line_items.read - oauth2: - crm.objects.partner-clients.write - oauth2: - crm.objects.projects.write - oauth2: - crm.objects.deals.sensitive.read.v2 - oauth2: - crm.objects.projects.sensitive.write - oauth2: - crm.objects.quotes.write - oauth2: - tickets.highly_sensitive.v2 - oauth2: - crm.objects.leads.read - oauth2: - crm.objects.leads.write - oauth2: - crm.objects.carts.read - oauth2: - crm.objects.emails.read - oauth2: - crm.objects.quotes.read - oauth2: - crm.objects.courses.write - oauth2: - crm.objects.partner-clients.read - oauth2: - crm.objects.notes.read - oauth2: - crm.objects.courses.read - oauth2: - crm.objects.listings.read - oauth2: - crm.objects.contacts.sensitive.read.v2 - oauth2: - crm.objects.products.read x-hubspot-rate-limit-exemptions: - ten-secondly components: schemas: AssociationSpecWithLabel: required: - category - typeId type: object properties: category: type: string description: Association category. Can be HUBSPOT_DEFINED, USER_DEFINED, INTEGRATOR_DEFINED or WORK enum: - HUBSPOT_DEFINED - INTEGRATOR_DEFINED - USER_DEFINED - WORK fromObjectTypeId: type: string label: type: string description: An optional descriptor that provides additional context about the relationship between associated records, such as "Mentor" and "Mentee". toObjectTypeId: type: string typeId: type: integer description: An integer value used to uniquely identify a specific association type within its Association Category. format: int32 description: Defines the type, direction, and details of the relationship between two CRM objects. BatchInputPublicAssociationDefinitionConfigurationCreateRequest: required: - inputs type: object properties: inputs: type: array items: $ref: '#/components/schemas/PublicAssociationDefinitionConfigurationCreateRequest' BatchInputPublicAssociationDefinitionConfigurationUpdateRequest: required: - inputs type: object properties: inputs: type: array items: $ref: '#/components/schemas/PublicAssociationDefinitionConfigurationUpdateRequest' BatchInputPublicAssociationSpec: required: - inputs type: object properties: inputs: type: array items: $ref: '#/components/schemas/PublicAssociationSpec' BatchResponse: required: - completedAt - results - startedAt - status type: object properties: completedAt: type: string format: date-time errors: type: array items: $ref: '#/components/schemas/StandardError' links: type: object additionalProperties: type: string numErrors: type: integer format: int32 requestedAt: type: string format: date-time results: type: array items: type: object properties: {} startedAt: type: string format: date-time status: type: string enum: - CANCELED - COMPLETE - PENDING - PROCESSING BatchResponsePublicAssociationDefinitionConfigurationUpdateResult: required: - completedAt - results - startedAt - status type: object properties: completedAt: type: string description: The date and time when the batch update operation was completed. format: date-time links: type: object additionalProperties: type: string description: URLs linking to documentation or resources associated with the batch update operation. requestedAt: type: string description: The date and time when the batch update operation was requested. format: date-time results: type: array items: $ref: '#/components/schemas/PublicAssociationDefinitionConfigurationUpdateResult' startedAt: type: string description: The date and time when the batch update operation started. format: date-time status: type: string description: The current status of the batch update operation, which can be CANCELED, COMPLETE, PENDING, or PROCESSING. enum: - CANCELED - COMPLETE - PENDING - PROCESSING BatchResponsePublicAssociationDefinitionConfigurationUpdateResultWithErrors: required: - completedAt - results - startedAt - status type: object properties: completedAt: type: string format: date-time errors: type: array items: $ref: '#/components/schemas/StandardError' links: type: object additionalProperties: type: string numErrors: type: integer format: int32 requestedAt: type: string format: date-time results: type: array items: $ref: '#/components/schemas/PublicAssociationDefinitionConfigurationUpdateResult' startedAt: type: string format: date-time status: type: string enum: - CANCELED - COMPLETE - PENDING - PROCESSING BatchResponsePublicAssociationDefinitionUserConfiguration: 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 links: type: object additionalProperties: type: string description: A collection of URLs linking to related documentation or resources associated with the batch operation. requestedAt: type: string description: The date and time when the batch operation was requested. format: date-time results: type: array items: $ref: '#/components/schemas/PublicAssociationDefinitionUserConfiguration' 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 CANCELED, COMPLETE, PENDING, or PROCESSING. enum: - CANCELED - COMPLETE - PENDING - PROCESSING BatchResponsePublicAssociationDefinitionUserConfigurationWithErrors: required: - completedAt - results - startedAt - status type: object properties: completedAt: type: string format: date-time errors: type: array items: $ref: '#/components/schemas/StandardError' links: type: object additionalProperties: type: string numErrors: type: integer format: int32 requestedAt: type: string format: date-time results: type: array items: $ref: '#/components/schemas/PublicAssociationDefinitionUserConfiguration' startedAt: type: string format: date-time status: type: string enum: - CANCELED - COMPLETE - PENDING - PROCESSING CollectionResponseAssociationSpecWithLabelNoPaging: required: - results type: object properties: results: type: array items: $ref: '#/components/schemas/AssociationSpecWithLabel' CollectionResponsePublicAssociationDefinitionUserConfigurationNoPaging: required: - results type: object properties: results: type: array items: $ref: '#/components/schemas/PublicAssociationDefinitionUserConfiguration' 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. PublicAssociationDefinitionConfigurationCreateRequest: required: - category - maxToObjectIds - typeId type: object properties: category: type: string description: Specifies the category of the association, which can be HUBSPOT_DEFINED, INTEGRATOR_DEFINED, or USER_DEFINED. enum: - HUBSPOT_DEFINED - INTEGRATOR_DEFINED - USER_DEFINED - WORK maxToObjectIds: type: integer description: The maximum number of target object IDs that can be associated with a single source object. format: int32 typeId: type: integer description: An integer used to uniquely identify a specific association type within its category. format: int32 PublicAssociationDefinitionConfigurationUpdateRequest: required: - category - maxToObjectIds - typeId type: object properties: category: type: string description: Specifies the category of the association, which can be HUBSPOT_DEFINED, INTEGRATOR_DEFINED, or USER_DEFINED. enum: - HUBSPOT_DEFINED - INTEGRATOR_DEFINED - USER_DEFINED - WORK maxToObjectIds: type: integer description: Defines the maximum number of target object IDs that can be associated. format: int32 typeId: type: integer description: A unique identifier for the association type. format: int32 PublicAssociationDefinitionConfigurationUpdateResult: required: - category - typeId type: object properties: category: type: string description: The category of the association, which can be HUBSPOT_DEFINED, INTEGRATOR_DEFINED, or USER_DEFINED. enum: - HUBSPOT_DEFINED - INTEGRATOR_DEFINED - USER_DEFINED - WORK typeId: type: integer description: An integer value used to uniquely identify a specific association type within its Association Category. format: int32 userEnforcedMaxToObjectIds: type: integer description: The maximum number of object IDs that a user can enforce for associations. format: int32 PublicAssociationDefinitionCreateRequest: required: - label - name type: object properties: inverseLabel: type: string description: An optional descriptor that clarifies the reverse relationship in the association. label: type: string description: A descriptor that provides context about the relationship between two associated CRM objects. name: type: string description: The unique identifier for the association definition. PublicAssociationDefinitionUpdateRequest: required: - associationTypeId - label type: object properties: associationTypeId: type: integer description: The unique identifier for the association type. format: int32 inverseLabel: type: string description: An optional descriptor for the inverse relationship between associated records. label: type: string description: A descriptor that provides context about the relationship between associated records. PublicAssociationDefinitionUserConfiguration: required: - category - typeId type: object properties: category: type: string description: The category of the association, which can be HUBSPOT_DEFINED, INTEGRATOR_DEFINED, or USER_DEFINED. enum: - HUBSPOT_DEFINED - INTEGRATOR_DEFINED - USER_DEFINED - WORK label: type: string description: A descriptor providing context about the relationship between associated records. typeId: type: integer description: A unique integer identifier for the association type within its category. format: int32 userEnforcedMaxToObjectIds: type: integer description: The maximum number of target object IDs that a user can enforce in an association. format: int32 PublicAssociationSpec: required: - category - typeId type: object properties: category: type: string description: Specifies the category of the association, which can be HUBSPOT_DEFINED, INTEGRATOR_DEFINED, or USER_DEFINED. typeId: type: integer description: A unique integer identifier for the specific association type within its category. format: int32 StandardError: required: - category - context - errors - links - message - status type: object properties: category: type: string description: The main category of the error. context: type: object additionalProperties: type: array items: type: string description: Additional context-specific information related to the error. errors: type: array description: The detailed error objects. items: $ref: '#/components/schemas/ErrorDetail' id: type: string description: A unique ID for the error instance. links: type: object additionalProperties: type: string description: URLs linking to documentation or resources associated with the error. message: type: string description: A human-readable string describing the error and possible remediation steps. status: type: string description: The HTTP status code associated with the error. subCategory: type: object properties: {} description: A more specific error category within each main category. description: Represents a standard error response in the HubSpot API, providing detailed information about an error that occurred during an API request. 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: crm.objects.appointments.read: '' crm.objects.appointments.sensitive.read.v2: '' crm.objects.appointments.sensitive.write.v2: '' crm.objects.appointments.write: '' crm.objects.calls.read: '' crm.objects.carts.read: '' crm.objects.carts.write: '' crm.objects.commercepayments.read: '' crm.objects.commercepayments.write: '' crm.objects.companies.highly_sensitive.read.v2: '' crm.objects.companies.highly_sensitive.write.v2: '' crm.objects.companies.read: '' crm.objects.companies.sensitive.read.v2: '' crm.objects.companies.sensitive.write.v2: '' crm.objects.companies.write: '' crm.objects.contacts.highly_sensitive.read.v2: '' crm.objects.contacts.highly_sensitive.write.v2: '' crm.objects.contacts.read: '' crm.objects.contacts.sensitive.read.v2: '' crm.objects.contacts.sensitive.write.v2: '' crm.objects.contacts.write: '' crm.objects.courses.read: '' crm.objects.courses.write: '' crm.objects.custom.highly_sensitive.read.v2: '' crm.objects.custom.highly_sensitive.write.v2: '' crm.objects.custom.read: '' crm.objects.custom.sensitive.read.v2: '' crm.objects.custom.sensitive.write.v2: '' crm.objects.custom.write: '' crm.objects.deals.highly_sensitive.read.v2: '' crm.objects.deals.highly_sensitive.write.v2: '' crm.objects.deals.read: '' crm.objects.deals.sensitive.read.v2: '' crm.objects.deals.sensitive.write.v2: '' crm.objects.deals.write: '' crm.objects.emails.read: '' crm.objects.goals.read: '' crm.objects.goals.write: '' crm.objects.invoices.read: '' crm.objects.invoices.write: '' crm.objects.leads.read: '' crm.objects.leads.write: '' crm.objects.line_items.read: '' crm.objects.line_items.write: '' crm.objects.listings.read: '' crm.objects.listings.write: '' crm.objects.meetings.read: '' crm.objects.notes.read: '' crm.objects.orders.read: '' crm.objects.orders.write: '' crm.objects.partner-clients.read: '' crm.objects.partner-clients.write: '' crm.objects.partner-services.read: '' crm.objects.partner-services.write: '' crm.objects.products.read: '' crm.objects.products.write: '' crm.objects.projects.highly_sensitive.read: '' crm.objects.projects.highly_sensitive.write: '' crm.objects.projects.read: '' crm.objects.projects.sensitive.read: '' crm.objects.projects.sensitive.write: '' crm.objects.projects.write: '' crm.objects.quotes.read: '' crm.objects.quotes.write: '' crm.objects.services.read: '' crm.objects.services.write: '' crm.objects.subscriptions.read: '' crm.objects.subscriptions.write: '' crm.objects.tasks.read: '' crm.objects.tickets.highly_sensitive.read: '' crm.objects.tickets.highly_sensitive.write: '' crm.objects.tickets.sensitive.read: '' crm.objects.tickets.sensitive.write: '' crm.objects.users.read: '' crm.objects.users.write: '' e-commerce: '' media_bridge.read: '' tickets: '' tickets.highly_sensitive.v2: '' tickets.sensitive.v2: '' private_apps: type: apiKey name: private-app in: header private_apps_legacy: type: apiKey name: private-app-legacy in: header x-hubspot-available-client-libraries: - Node - Python - Ruby - PHP x-hubspot-product-tier-requirements: marketing: FREE sales: FREE service: FREE cms: FREE commerce: FREE crmHub: FREE dataHub: FREE