openapi: 3.0.1 info: title: HubSpot CRM Limits Tracking 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 x-hubspot-api-use-case: Before importing a large file of contacts, you want to check how many contact records you've created compared to your account's limit. x-hubspot-introduction: Use the limits tracking API to view limits and usage for CRM data including records, associations, pipelines, and properties. servers: - url: https://api.hubapi.com tags: - name: Basic paths: /crm/limits/2026-09/associations/labels: get: tags: - Basic summary: Read association label limits description: Returns limits and usage for custom association labels operationId: get-/crm/limits/2026-09/associations/labels parameters: - name: fromObjectTypeId in: query description: '' required: false style: form explode: true schema: type: string - name: toObjectTypeId in: query description: '' required: false style: form explode: true schema: type: string responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/CollectionResponseAssociationLabelLimitResponseNoPaging' 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 /crm/limits/2026-09/associations/records/from: get: tags: - Basic summary: Read record association limits description: Returns objects with records approaching or at association limits operationId: get-/crm/limits/2026-09/associations/records/from parameters: [] responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/CollectionResponseObjectTypeNearOrAtAssociationLimitNoPaging' 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 /crm/limits/2026-09/associations/records/{fromObjectTypeId}/to: get: tags: - Basic summary: Read record association limits from an object description: Returns objects for which the from object has records approaching or at association limits operationId: get-/crm/limits/2026-09/associations/records/{fromObjectTypeId}/to parameters: - name: fromObjectTypeId in: path description: '' required: true style: simple explode: false schema: type: string responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/CollectionResponseObjectTypeNearOrAtAssociationLimitNoPaging' 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 /crm/limits/2026-09/associations/records/{fromObjectTypeId}/{toObjectTypeId}: get: tags: - Basic summary: Read record association limits between two objects description: Returns records approaching or at association limits between two objects operationId: get-/crm/limits/2026-09/associations/records/{fromObjectTypeId}/{toObjectTypeId} parameters: - name: fromObjectTypeId in: path description: '' required: true style: simple explode: false schema: type: string - name: toObjectTypeId in: path description: '' required: true style: simple explode: false schema: type: string responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/AssociationRecordLimitResponse' 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 /crm/limits/2026-09/calculated-properties: get: tags: - Basic summary: Read calculation property limits description: Returns overall limit and per object usage for calculated properties operationId: get-/crm/limits/2026-09/calculated-properties parameters: [] responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/CalculatedPropertyLimitResponse' 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 /crm/limits/2026-09/custom-object-types: get: tags: - Basic summary: Read custom object limits description: Returns limits and usage for custom object schemas operationId: get-/crm/limits/2026-09/custom-object-types parameters: [] responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/CustomObjectLimitResponse' default: description: '' $ref: '#/components/responses/Error' security: - oauth2: - crm.schemas.custom.read - oauth2: - crm.objects.custom.sensitive.read.v2 - oauth2: - crm.objects.custom.highly_sensitive.read.v2 - oauth2: - crm.objects.custom.read - oauth2: - crm.objects.custom.sensitive.write.v2 - oauth2: - crm.schemas.custom.write - oauth2: - crm.objects.custom.highly_sensitive.write.v2 - oauth2: - crm.objects.custom.write /crm/limits/2026-09/custom-properties: get: tags: - Basic summary: Read custom property limits description: Returns limits and usage per object for custom properties operationId: get-/crm/limits/2026-09/custom-properties parameters: [] responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/CustomPropertyLimitResponse' 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 /crm/limits/2026-09/pipelines: get: tags: - Basic summary: Read pipeline limits description: Returns limits and usage per object for pipelines operationId: get-/crm/limits/2026-09/pipelines parameters: [] responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/PipelineLimitResponse' 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 /crm/limits/2026-09/records: get: tags: - Basic summary: Read record limits description: Returns limits and usage per object for records operationId: get-/crm/limits/2026-09/records parameters: [] responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/RecordLimitResponse' 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 components: schemas: AssociationLabelLimitResponse: required: - allLabels - fromObjectType - limit - percentage - toObjectType - usage type: object properties: allLabels: type: array description: A list of all association labels. items: type: string fromObjectType: $ref: '#/components/schemas/ObjectTypeDefinition' limit: type: integer description: The maximum number of association labels allowed. format: int64 percentage: type: number description: The percentage of the association label limit that has been used. toObjectType: $ref: '#/components/schemas/ObjectTypeDefinition' usage: type: integer description: The current number of association labels used. format: int64 AssociationRecordLimitResponse: required: - atLimitFromRecordSamples - limit - nearLimitFromRecordSamples - totalRecordsAtLimit - totalRecordsNearLimit type: object properties: atLimitFromRecordSamples: type: array items: $ref: '#/components/schemas/AtLimitRecordSample' limit: type: integer description: The maximum number of associations allowed for records. format: int64 nearLimitFromRecordSamples: type: array items: $ref: '#/components/schemas/NearLimitRecordSample' totalRecordsAtLimit: type: integer description: The total number of records that have reached their association limit. format: int32 totalRecordsNearLimit: type: integer description: The total number of records that are approaching their association limit. format: int32 AtLimitRecordSample: required: - label - objectId type: object properties: label: type: string description: The label associated with a record that is at its limit. objectId: type: integer description: The objectId of the object that is at its limit. format: int64 CalculatedPropertyLimitResponse: required: - byObjectType - overallLimit - overallPercentage - overallUsage type: object properties: byObjectType: type: array items: $ref: '#/components/schemas/UsageForObjectType' overallLimit: type: integer description: The maximum number of calculated properties allowed. format: int64 overallPercentage: type: number description: The percentage of the overall limit that is currently being used for calculated properties. overallUsage: type: integer description: The total number of calculated properties currently in use. format: int64 CollectionResponseAssociationLabelLimitResponseNoPaging: required: - results type: object properties: results: type: array items: $ref: '#/components/schemas/AssociationLabelLimitResponse' CollectionResponseObjectTypeNearOrAtAssociationLimitNoPaging: required: - results type: object properties: results: type: array items: $ref: '#/components/schemas/ObjectTypeNearOrAtAssociationLimit' CustomObjectLimitResponse: required: - limit - percentage - usage type: object properties: limit: type: integer description: The maximum number of custom objects allowed. format: int64 percentage: type: number description: The percentage of the custom object limit that is currently used. usage: type: integer description: The current number of custom objects used. format: int64 CustomObjectRecordLimitResponse: required: - byObjectType - overallLimit - overallPercentage - overallUsage type: object properties: byObjectType: type: array items: $ref: '#/components/schemas/UsageForObjectType' overallLimit: type: integer description: The maximum number of custom object records allowed. format: int64 overallPercentage: type: number description: The percentage of the overall custom object record limit that has been used. overallUsage: type: integer description: The total number of custom object records currently in use. format: int64 CustomPropertyLimitResponse: required: - byObjectType - overallLimit - overallPercentage - overallUsage type: object properties: byObjectType: type: array items: $ref: '#/components/schemas/LimitAndUsageForObjectType' overallLimit: type: integer description: The total limit for custom properties across all objects. format: int64 overallPercentage: type: number description: The percentage of the overall custom property limit that has been used. overallUsage: type: integer description: The total number of custom properties currently in use across all objects. format: int64 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. LimitAndUsageForObjectType: required: - limit - objectTypeId - percentage - pluralLabel - singularLabel - usage type: object properties: limit: type: integer description: The maximum allowed count for the object type. format: int64 objectTypeId: type: string description: The unique identifier for the object type. percentage: type: number description: The percentage of the limit that has been used. pluralLabel: type: string description: The plural label for the object type. singularLabel: type: string description: The singular label for the object type. usage: type: integer description: The current usage count for the object type. format: int64 NearLimitRecordSample: required: - label - objectId - percentage - usage type: object properties: label: type: string description: The primary identifier of the record. objectId: type: integer description: The unique identifier for the object. format: int64 percentage: type: number description: The percentage of the limit that has been used. usage: type: integer description: The number of records currently in use. format: int64 ObjectTypeDefinition: required: - objectTypeId - pluralLabel - singularLabel type: object properties: objectTypeId: type: string description: The unique identifier for the object type. pluralLabel: type: string description: The plural form label for the object type. singularLabel: type: string description: The singular form label for the object type. ObjectTypeNearOrAtAssociationLimit: required: - hasRecordsAtLimit - hasRecordsNearLimit - objectTypeId - pluralLabel - singularLabel type: object properties: hasRecordsAtLimit: type: boolean description: Indicates whether there are records that have reached the association limit. hasRecordsNearLimit: type: boolean description: Indicates whether there are records that are approaching the association limit. objectTypeId: type: string description: The unique identifier for the object type. pluralLabel: type: string description: The plural form of the label for the object type. singularLabel: type: string description: The singular form of the label for the object type. PipelineLimitResponse: required: - customObjectTypes - hubspotDefinedObjectTypes type: object properties: customObjectTypes: $ref: '#/components/schemas/CustomObjectRecordLimitResponse' hubspotDefinedObjectTypes: type: array items: $ref: '#/components/schemas/LimitAndUsageForObjectType' RecordLimitResponse: required: - customObjectTypes - hubspotDefinedObjectTypes type: object properties: customObjectTypes: $ref: '#/components/schemas/CustomObjectRecordLimitResponse' hubspotDefinedObjectTypes: type: array items: $ref: '#/components/schemas/LimitAndUsageForObjectType' UsageForObjectType: required: - objectTypeId - pluralLabel - singularLabel - usage type: object properties: objectTypeId: type: string description: The unique identifier for the object type. pluralLabel: type: string description: The plural form of the label for the object type. singularLabel: type: string description: The singular form of the label for the object type. usage: type: integer description: The number of records used for the object type. format: int64 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: '' crm.schemas.custom.read: '' crm.schemas.custom.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-product-tier-requirements: marketing: FREE sales: FREE service: FREE cms: FREE commerce: FREE crmHub: FREE dataHub: FREE