Skip to main content

In your HubSpot account, there are limits to the amount of CRM data you can store. Some limits are technical, but others depend on your HubSpot subscription. You can track your usage in HubSpot or use the limits tracking API to check your limits and usage for the following data:

  • Records
  • Associations
  • Custom properties
  • Pipelines
  • Calculated properties (Professional and Enterprise only)
  • Association labels (Professional and Enterprise only)
  • Custom objects (Enterprise only)

To view the number of records your account can store per object and how many records you're currently storing, make a GET request to /crm/v3/limits/records.

In the response, default objects are returned in the hubspotDefinedObjectTypes array. For each object, the following are returned:

  • limit: the number of records you can store for the object.
  • usage: the number of records in the account for the object.
  • percentage: the percentage of the total limit used.

If applicable, custom objects are returned in the customObjectTypes object with individual object data and total custom object record limits and usage. Learn more about custom object definition limits.

Your response will look similar to the following:

In HubSpot, an individual record can only be associated to a specific number of records of the same or another object. For example, by default, a single contact record can be associated with up to 50,000 company records. You can use the association limit endpoints to check for records that are close to (80%+) or at the association limit. Learn more about technical limits for record associations.

  • To check which objects have records are close to or at the association limit, make a GET request to crm/v3/limits/associations/records/from.

An object will be included in the response if it has records approaching or at the limit. If no records are close to or have reached an association limit, the response will be blank. To drill down into the specific object associations, you can use the endpoints below.

  • To check the associated objects for which an object has records close to or at an association limit, make a GET request to crm/v3/limits/associations/records/{fromObjectTypeId}/to.

If records of the fromObjectType are approaching or at the association limit for an associated object, that object will be included in the response. For example, if you make a request for companies (i.e. crm/v3/limits/associations/records/0-2/to) and there is a company record associated with 48,000 contacts and 46,000 deals, contacts and deals will be included in the response.

  • To view a sample of specific records approaching or at an association limit between two objects, make a GET request crm/v3/limits/associations/records/{fromObjectTypeId}/{toObjectTypeId}.

In the response, the following are returned:

  • limit: refers to the number of associated records each record can have.
  • totalRecordsNearLimit: counts the number of records using 80% or more of their association limit.
  • totalRecordsAtLimit: counts the number of records that have reached the limit.
  • If any records are near or at the limit, a sample of record id values will be included in the nearLimitFromRecordSamples and atLimitFromRecordSamples arrays.

For example, to retrieve records approaching limits for contacts to companies, you'd make a GET request to crm/v3/limits/associations/records/0-1/0-2. If no records are close to or at the limit, the response would look like the following:

If your account has a Professional or Enterprise subscription, you can check the limits and usage for custom association labels.

  • To track limits for all association labels in the account, make a GET request to crm/v3/limits/associations/labels.
  • To track limits for association labels from one object from or to all other objects, make a GET request to crm/v3/limits/associations/labels and include the fromObjectTypeId or toObjectTypeId parameter. For example, crm/v3/limits/associations/labels/?fromObjectTypeId=0-1 or crm/v3/limits/associations/labels/?toObjectTypeId=0-1.
  • To track limits for association labels from one object to another specific object, make a GET request to crm/v3/limits/associations/labels and include the fromObjectTypeIdand toObjectTypeId parameters. For example, crm/v3/limits/associations/labels/?fromObjectTypeId=0-1&toObjectTypeId=0-2.

In the response, the following are returned:

  • limit: refers to the number of association labels you can create between the objects.
  • usage: the number of labels created in the account.
  • percentage: the percentage of the total limit used.
  • allLabels: an array with the names of the custom labels.

For example, to retrieve association label limits and usage for contacts to companies, you'd make a GET request to crm/v3/limits/associations/labels/?fromObjectTypeId=0-1&toObjectTypeId=0-2. Your response would look similar to the sample below. In this example, six out of 50 labels are created for contact to company associations.

You can view limits and usage for properties, including the number of custom properties or calculation properties you've created. The number of properties can create depends on your HubSpot subscription.

To track how many custom properties you've created overall and per object, make a GET request to crm/v3/limits/custom-properties.

In the response, the following are returned:

  • overallLimit: the limit for custom properties across all objects.
  • overallUsage: the total number of custom properties in the account.
  • overallPercentage: the percentage of the limit used.
  • The byObjectType array includes the following for each object:
    • limit: the number of custom properties you can create for the object.
    • usage: the number of custom properties you've created for the object.
    • percentage: the percentage of the total limit used.

Your response will look similar to the following:

If your account has a Professional or Enterprise subscription, you can track how many calculation properties you've created. To track calculation property usage overall and per object, make a GET request to crm/v3/limits/calculated-properties.

In the response, the following are returned:

  • overallLimit: the limit for calculation properties across all objects.
  • overallUsage: the total number of calculation properties in the account.
  • overallPercentage: the percentage of the limit used.
  • The byObjectType array includes each object with a usage value, which refers to the number of calculation properties you've created for the object.

Your response would look similar to the following:

To view pipeline limits and usage per object, make a GET request to crm/v3/limits/pipelines.

Default objects with pipelines will be returned in the hubspotDefinedObjectTypes array. For each object, the following are returned:

  • limit: the number of pipelines you can create for the object.
  • usage: the number of pipelines created for the object.
  • percentage: the percentage of the total limit used.

If applicable, custom objects are returned in the customObjectTypes object with individual object data and total custom object pipeline limits and usage. Learn more about custom object definition limits.

Your response will look similar to the following:

If your account has a Enterprise subscription, you can view limits and usage for custom object schemas,as in the types of custom objects (e.g., Pets, Cars, etc.). If you want to view how many custom object records you can create, use the record limits endpoint instead.

To retrieve custom object limits and usage, make a GET request to crm/v3/limits/custom-object-types.

In the response, the following are returned:

  • limit: the number of custom objects you can create.
  • usage: the number of custom objects you've created.
  • percentage: the percentage of the total limit used.

Your response would look similar to the sample below. In this example, the account has created four custom objects.