Skip to main content

Supported products

Use the CRM price books API to retrieve price book and price book item records using standard CRM object patterns, including list, individual read, batch read, and search. This API is read-only. To create, update, activate, or delete price books and their items, use the price books API

Retrieve price books

You can retrieve price book records individually, as a list, or in batches. Use the following optional query parameters in list and individual read requests:

Retrieve all price books

To retrieve a list of all price books, make a GET request to /crm/objects/2026-09/price_books. By default, the endpoint returns up to 10 records per page. Use the limit query parameter to adjust the page size, and the after parameter (from the previous response’s paging.next.after field) to retrieve the next page.
To retrieve specific properties, include a properties query parameter in the request URL with a comma-separated list of property names. To view all available price book properties, use the properties API.

Retrieve an individual price book

To retrieve a single price book by its record ID, make a GET request to /crm/objects/2026-09/price_books/{objectId}.
The record ID (id) returned here matches the id returned by the price books APIwhen creating or retrieving price books via the commerce endpoints.

Retrieve a batch of price books

To retrieve multiple price books in a single request, make a POST request to /crm/objects/2026-09/price_books/batch/read.
Please note: the batch read endpoint cannot retrieve associations. To retrieve associations for a specific set of price books, first retrieve their id values, then use the associations API.
In the request body, include an inputs array of record IDs and a properties array specifying which properties to return:

Retrieve price book items

Price book items (the products configured within a price book) are also accessible as CRM objects. You can retrieve them using the same list, individual read, batch read, and search patterns, substituting price_book_items as the objectType.

Retrieve all price book items

To retrieve a list of all price book items, make a GET request to /crm/objects/2026-09/price_book_items.

Retrieve an individual price book item

To retrieve a single price book item by its record ID, make a GET request to /crm/objects/2026-09/price_book_items/{objectId}. The record ID matches the id returned by the price book items endpointsin the commerce API.

Retrieve a batch of price book items

To retrieve multiple price book items in a single request, make a POST request to /crm/objects/2026-09/price_book_items/batch/read.

Search price books and items

Use the search endpoint to retrieve price books or price book items that match a set of filter criteria. Make a POST request to /crm/objects/2026-09/price_books/search (or /crm/objects/2026-09/price_book_items/search for items). In the request body, include a filterGroups array to define your search criteria, a properties array to specify which fields to return, and optional sorts and limit parameters. For example, to search for price books modified after a specific date:
Learn more about searching the CRM including available filter operators.

Business API property mapping

The price books CRM object API (/crm/objects/) and price books business API(/commerce/price-books/) expose the same underlying data, with the following differences in how fields are returned:
  • Nesting: business API fields are returned at the top level of the response. CRM API fields are returned inside a properties object, alongside a few standard top-level envelope fields (id, createdAt, updatedAt, archived).
  • Naming: field names follow different conventions. CRM fields use HubSpot’s hs_-prefixed property naming pattern.
  • Shape: some values are returned in a different format, such as supportedCurrencies (array in the business API, semicolon-delimited string in the CRM API) and pricing for price book items.
  • Casing: string enum values use different cases. Business API returns uppercase (e.g., "VOLUME", "NON_INVENTORY"). CRM returns lowercase (e.g., "volume", "non_inventory").
  • Types: numeric values are returned as numbers by the business API and as strings by the CRM API (e.g., countOfIncludedProducts: 6 vs "hs_count_of_included_products": "6").
The tables below list each set of corresponding fields and note where there are behavioral differences.

Price book properties

The following example shows a GET response for the same price book from each API.

Price book item properties

The following example shows a GET response for the same price book item from each API.
Last modified on September 9, 2026