There's a new version of the HubSpot API

As of November 30, 2022, HubSpot API keys are no longer a supported authentication method for accessing HubSpot APIs. Instead, you should use a private app access token or OAuth to authenticate API calls. Learn more about this change and how to migrate an API key integration to use a private app instead.

Get all companies

Last updated May 12, 2023

GET /companies/v2/companies/paged

Method Details

HTTP Methods:

GET

Response Format:

json

Requires Authentication?

Yes

Rate Limited?

Yes

Headers

User-Agent

Products:

Marketing & CRM

Required Scope:

crm.objects.companies.read

This endpoint is used to get all of the companies in a HubSpot account.

Use case for this endpoint: This endpoint is useful when you're installing a new application and need to sync company data from HubSpot. For example, if you install an app that integrates HubSpot with an Enterprise Resource Planning app (ERP), that app may want to get all the company records stored in the CRM. It could then match them to customer records stored in the ERP and use webhooks to get incremental updates. 

Response details

If the request is successful, it returns a paginated list of companies.

In addition to the list of companies, each request will also return two values, offset and has-more. If has-more is true, you'll need to make another request, using the offset to get the next page of company records. These are often used with a recursive function in order to get all companies stored in a CRM. 

Required parameters How to use Description
OAuth access token or private app access token Authorization: Bearer {token} header Used to authenticate the request. Please see this page for more details about authentication.

Optional parameters How to use Description
Limit limit=
Used in the request URL
The number of records to return. Defaults to 100, has a maximum value of 250.
Offset offset=
Used in the request URL
Used to page through the results. If there are more records in your portal than the limit= parameter, you will need to use the offset returned in the first request to get the next set of results.
Properties properties=
Used in the request URL, may be included multiple times.
Used to include specific company properties in the results.  By default, the results will only include the company ID, and will not include the values for any properties for your companies.  Including this parameter will include the data for the specified property in the results.  You can include this parameter multiple times to request multiple properties.
Note: Companies that do not have a value set for a property will not include that property, even when you specify the property. A company without a value for the website property would not show the website property in the results, even with &properties=website in the URL.
Properties with history propertiesWithHistory=
Used in the request URL, may be included multiple times.
Works similarly to properties=, but this parameter will include the history for the specified property, instead of just including the current value. Use this parameter when you need the full history of changes to a property's value.
Include merge audits &includeMergeAudits=true
Used in the request URL
Returns any merge history if a company has been previously merged with another company record. Defaults to false.