Skip to main content
Use the Users API to read or update information about users in a HubSpot account. For example, view their calendar details or update properties such as working hours, timezone, additional phone numbers, and job title. This API can be useful to sync HubSpot user data with external workforce management tools. For example, use these endpoints keep a user’s working hours in sync with an external scheduling system. Learn more about managing users in HubSpot.

Retrieve users

  • To retrieve all users, make a GET request to /crm/objects/2026-03/users/.
  • To retrieve a specific user, make a GET to /crm/objects/2026-03/users/{userId}. For example: crm/objects/2026-03/users/207838823235.
  • To retrieve a batch of users, make a POST request to /crm/objects/2026-03/users/batch/read. In the request body, include id values of the users to retrieve. You can retrieve by the user ID or another unique identifier property.
  • To retrieve users that meet a specific set of criteria, make a POST request to /crm/objects/2026-03/users/search and include search filters in the request body. Learn more about searching the CRM.
Please note: in each user API endpoint response, the id and hs_object_id values are the same and represent a user only in the HubSpot account from which the data was requested. This is different than the id values in the user provisioning API (hs_internal_user_id) which refers to a user across all accounts, and in the owners API (hubspot_owner_id) which refers to a user as an owner of records.
For example, the following response returns users, their unique identifiers within the selected HubSpot account, and information about when they were created or modified:

Return specific user properties

To return specific properties, include a properties query parameter in the request URL along with comma-separated property names. The following are commonly used properties when retrieving users. Learn more about other user properties or use the properties API to retrieve all user properties. For example, to retrieve users with their job titles. additional phone numbers, and calendar connection status, a GET request to crm/objects/2026-03/users?properties=hs_job_title,hs_additional_phone,hs_calendar_connection_status. Your response would look similar to:

Retrieve users by custom unique identifier property

For the batch read endpoint (POST /crm/objects/2026-03/users/batch/read), you can retrieve users by their ID or by another unique identifier property by including the idProperty field. For example, to read a batch of users, your request could look like either of the following:

Update users

You can update users by ID individually or in batches.
  • To update an individual user, make a PATCH request to /crm/objects/2026-03/users/{userId}.
  • To update a batch of users, make a POST request to /crm/objects/2026-03/users/batch/update, including the user IDs or unique idProperty in the request body.
For each endpoint, include a request body that contains the properties you want to update. For example, the request body below would update a user’s timezone and working hours:
Only some properties can be set through this API. See the properties section below for a list of the available properties.

User properties

To retrieve a list of all available user properties, you can use the properties API by making a GET request to crm/properties/2026-03/user. Learn more about using the properties API. Below are the user properties that can be set through this API.

Working hours

hs_working_hours accepts a stringified JSON value. It consists of an array with an object for each set of working hours.
Please note:
  • The hs_standard_time_zone property must be set before you can set working hours.
  • Working hours cannot overlap.
For example, if a user works Monday through Friday, 9:00AM to 5:00PM, you would format that as follows:
If a user works Monday 9:00AM to 5:00PM and Saturday 11:00AM to 2:00PM, the array would contain an object to represent each set of working hours:

Out of office hours

If a user will be unavailable due to scheduled time off, you can set any periods during which they’ll be out of office using the hs_out_of_office_hours property:
  • The property accepts an array of date ranges, each specified by a startTimestamp and endTimestamp.
  • The date ranges cannot overlap with one another, and the startTimestamp of each date range must be later than the previous startTimestamp.
For example, if you wanted to specify out-of-office hours during October 31st 2024 9:00 AM to 5:00 PM and November 28 2024 9:00 AM to 5:00 PM, you’d specify the following value for the hs_out_of_office_hours property for a user:

Language skills

hs_main_user_language_skill or hs_secondary_user_language_skill must match an existing language skill. The following JSON array lists all valid options for language skill categories:
Last modified on July 28, 2026