> ## Documentation Index
> Fetch the complete documentation index at: https://developers.hubspot.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

---
id: 79fd5edb-d174-4ce2-93dd-7f4d7c044db4
---

# Add products to a price book

> Create multiple items in a specified price book in a single batch operation. This endpoint is useful for efficiently adding a large number of items to a price book, reducing the need for multiple individual requests. The operation returns a batch response indicating the success or failure of each item creation.

> **Supported products**

> **Required Scopes**


## OpenAPI

````yaml specs/2026-09/commerce-price-books-v2026-09.json POST /commerce/price-books/2026-09/price-books/{priceBookId}/items/batch/create
openapi: 3.0.1
info:
  title: Commerce Price Books
  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
servers:
  - url: https://api.hubapi.com
security: []
tags:
  - name: Advanced
  - name: Basic
  - name: Batch
  - name: Items
paths:
  /commerce/price-books/2026-09/price-books/{priceBookId}/items/batch/create:
    post:
      tags:
        - Batch
      summary: Batch create price book items
      description: >-
        Create multiple items in a specified price book in a single batch
        operation. This endpoint is useful for efficiently adding a large number
        of items to a price book, reducing the need for multiple individual
        requests. The operation returns a batch response indicating the success
        or failure of each item creation.
      operationId: >-
        post-/commerce/price-books/2026-09/price-books/{priceBookId}/items/batch/create_/commerce/price-books/2026-09-beta/price-books/{priceBookId}/items/batch/create
      parameters:
        - name: priceBookId
          in: path
          description: >-
            The unique identifier of the price book to which the items will be
            added.
          required: true
          style: simple
          explode: false
          schema:
            type: integer
            format: int64
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BatchInputPriceBookAddProductRequest'
        required: true
      responses:
        '201':
          description: successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BatchResponsePriceBookItemResponse'
        '207':
          description: multiple statuses
          content:
            application/json:
              schema:
                $ref: >-
                  #/components/schemas/BatchResponsePriceBookItemResponseWithErrors
        default:
          $ref: '#/components/responses/Error'
          description: ''
      security: []
components:
  schemas:
    BatchInputPriceBookAddProductRequest:
      required:
        - inputs
      type: object
      properties:
        inputs:
          type: array
          description: >-
            An array of PriceBookAddProductRequest objects, each representing a
            product to be added to the price book. This property is required.
          items:
            $ref: '#/components/schemas/PriceBookAddProductRequest'
    BatchResponsePriceBookItemResponse:
      required:
        - completedAt
        - results
        - startedAt
        - status
      type: object
      properties:
        completedAt:
          type: string
          description: >-
            The date and time when the batch operation was completed, in ISO
            8601 format.
          format: date-time
        links:
          type: object
          additionalProperties:
            type: string
          description: >-
            A map of link names to associated URIs providing additional
            information or actions related to the batch operation.
        requestedAt:
          type: string
          description: >-
            The date and time when the batch operation was requested, in ISO
            8601 format.
          format: date-time
        results:
          type: array
          description: >-
            An array of PriceBookItemResponse objects representing the
            individual results of the batch operation.
          items:
            $ref: '#/components/schemas/PriceBookItemResponse'
        startedAt:
          type: string
          description: >-
            The date and time when the batch operation started, in ISO 8601
            format.
          format: date-time
        status:
          type: string
          description: >-
            The current status of the batch operation. Valid values include
            'PENDING', 'PROCESSING', 'CANCELED', and 'COMPLETE'.
          enum:
            - CANCELED
            - COMPLETE
            - PENDING
            - PROCESSING
    BatchResponsePriceBookItemResponseWithErrors:
      required:
        - completedAt
        - results
        - startedAt
        - status
      type: object
      properties:
        completedAt:
          type: string
          description: >-
            The date and time when the batch operation was completed, in ISO
            8601 format.
          format: date-time
        errors:
          type: array
          description: >-
            An array of errors encountered during the batch operation, each
            represented as a StandardError object.
          items:
            $ref: '#/components/schemas/StandardError'
        links:
          type: object
          additionalProperties:
            type: string
          description: >-
            A map of link names to associated URIs, providing additional context
            or actions related to the batch operation.
        numErrors:
          type: integer
          description: The number of errors encountered during the batch operation.
          format: int32
        requestedAt:
          type: string
          description: >-
            The date and time when the batch operation was requested, in ISO
            8601 format.
          format: date-time
        results:
          type: array
          description: >-
            An array of results from the batch operation, each represented as a
            PriceBookItemResponse object.
          items:
            $ref: '#/components/schemas/PriceBookItemResponse'
        startedAt:
          type: string
          description: >-
            The date and time when the batch operation started, in ISO 8601
            format.
          format: date-time
        status:
          type: string
          description: >-
            The current status of the batch operation. Valid values include
            'PENDING', 'PROCESSING', 'CANCELED', and 'COMPLETE'.
          enum:
            - CANCELED
            - COMPLETE
            - PENDING
            - PROCESSING
    PriceBookAddProductRequest:
      required:
        - productId
      type: object
      properties:
        productId:
          type: string
          description: >-
            The unique identifier of the product to be added to the price book.
            It is a string and is required.
    PriceBookItemResponse:
      required:
        - customProperties
        - id
        - productId
      type: object
      properties:
        archived:
          type: boolean
          description: A boolean indicating whether the price book item is archived.
        archivedAt:
          type: string
          description: >-
            The date and time when the price book item was archived, in ISO 8601
            format.
          format: date-time
        billingFrequency:
          type: string
          description: >-
            The frequency at which billing occurs for the price book item. Valid
            values include 'annually', 'biweekly', 'monthly', 'one_time',
            'per_five_years', 'per_four_years', 'per_six_months',
            'per_three_years', 'per_two_years', 'quarterly', and 'weekly'.
          enum:
            - ANNUALLY
            - BIWEEKLY
            - MONTHLY
            - PER_FIVE_YEARS
            - PER_FOUR_YEARS
            - PER_SIX_MONTHS
            - PER_THREE_YEARS
            - PER_TWO_YEARS
            - QUARTERLY
            - WEEKLY
        billingPeriod:
          type: string
          description: The billing period for the price book item.
        costOfGoodsSold:
          type: string
          description: The cost of goods sold for the price book item.
        createdAt:
          type: string
          description: >-
            The date and time when the price book item was created, in ISO 8601
            format.
          format: date-time
        customProperties:
          type: object
          additionalProperties:
            type: string
          description: >-
            A map of custom property names to their values for the price book
            item.
        description:
          type: string
          description: A description of the price book item.
        id:
          type: string
          description: The unique identifier for the price book item.
        images:
          type: string
          description: A string representing images associated with the price book item.
        name:
          type: string
          description: The name of the price book item.
        priceBookId:
          type: string
          description: The unique identifier for the price book containing this item.
        pricing:
          $ref: '#/components/schemas/Pricing'
        productClassification:
          type: string
          description: >-
            The classification of the product. Valid values include 'BUNDLE',
            'STANDALONE', and 'VARIANT'.
          enum:
            - BUNDLE
            - STANDALONE
            - VARIANT
        productId:
          type: string
          description: >-
            The unique identifier for the product associated with the price book
            item.
        productType:
          type: string
          description: >-
            The type of product. Valid values include 'INVENTORY',
            'NON_INVENTORY', and 'SERVICE'.
          enum:
            - INVENTORY
            - NON_INVENTORY
            - SERVICE
        recurringBillingTerms:
          type: string
          description: >-
            The terms of recurring billing for the price book item. Valid values
            include 'AUTOMATICALLY_RENEW' and 'FIXED'.
          enum:
            - AUTOMATICALLY_RENEW
            - FIXED
        sku:
          type: string
          description: The stock keeping unit (SKU) of the price book item.
        status:
          type: string
          description: >-
            The current status of the price book item. Valid values include
            'active' and 'inactive'.
          enum:
            - active
            - inactive
        taxCategory:
          type: string
          description: The tax category of the price book item.
        updatedAt:
          type: string
          description: >-
            The date and time when the price book item was last updated, in ISO
            8601 format.
          format: date-time
        url:
          type: string
          description: A URL associated with the price book item.
    StandardError:
      required:
        - category
        - context
        - errors
        - links
        - message
        - status
      type: object
      properties:
        category:
          type: string
          description: A string specifying the category of the error.
        context:
          type: object
          additionalProperties:
            type: array
            items:
              type: string
          description: >-
            An object containing additional context about the error, with each
            key mapping to an array of strings.
        errors:
          type: array
          description: >-
            An array of ErrorDetail objects providing further information about
            the error.
          items:
            $ref: '#/components/schemas/ErrorDetail'
        id:
          type: string
          description: A string representing the unique identifier of the error.
        links:
          type: object
          additionalProperties:
            type: string
          description: >-
            An object mapping link names to URIs that provide documentation or
            remediation steps related to the error.
        message:
          type: string
          description: >-
            A string containing a human-readable message that describes the
            error.
        status:
          type: string
          description: A string indicating the status of the error.
        subCategory:
          type: object
          properties: {}
          description: An object providing more specific details about the error category.
      description: Ye olde error
    Error:
      required:
        - category
        - correlationId
        - message
      type: object
      properties:
        category:
          type: string
          description: The error category, represented as a string.
        context:
          type: object
          additionalProperties:
            type: array
            items:
              type: string
          description: >-
            An object providing context about the error condition. It contains
            additional properties, each being an array of strings.
          example: >-
            {invalidPropertyName=[propertyValue], missingScopes=[scope1,
            scope2]}
        correlationId:
          type: string
          description: >-
            A unique identifier for the request, represented as a UUID string.
            Include this value with any error reports or support tickets.
          format: uuid
          example: aeb5f871-7f07-4993-9211-075dc63e7cbf
        errors:
          type: array
          description: >-
            An array providing further information about the error, with each
            item being an ErrorDetail object.
          items:
            $ref: '#/components/schemas/ErrorDetail'
        links:
          type: object
          additionalProperties:
            type: string
          description: >-
            An object that maps link names to associated URIs containing
            documentation about the error or recommended remediation steps. Each
            property is a string.
        message:
          type: string
          description: >-
            A human readable message describing the error along with remediation
            steps where appropriate. It is a string.
          example: An error occurred
        subCategory:
          type: string
          description: >-
            A specific category that contains more specific detail about the
            error, represented as a string.
      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
    Pricing:
      required:
        - prices
        - pricingModel
      type: object
      properties:
        prices:
          type: array
          description: >-
            An array of price entries, each detailing the amount and currency
            for a specific pricing tier.
          items:
            $ref: '#/components/schemas/PriceEntry'
        pricingModel:
          type: string
          description: >-
            The type of pricing model applied, which can be one of the
            following: 'FLAT', 'GRADUATED', 'STAIRSTEP', or 'VOLUME'.
          enum:
            - FLAT
            - GRADUATED
            - STAIRSTEP
            - VOLUME
    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, which may include additional
            information such as missing scopes or invalid property names.
          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. This is a required property.
        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.
    PriceEntry:
      required:
        - currencyCode
        - price
      type: object
      properties:
        currencyCode:
          type: string
          description: >-
            A string representing the currency in which the price is
            denominated.
        maxQuantity:
          type: integer
          description: >-
            A string specifying the maximum quantity for which this pricing
            entry is applicable.
          format: int32
        price:
          type: number
          description: A number indicating the price of the product or service.
  responses:
    Error:
      description: An error occurred.
      content:
        '*/*':
          schema:
            $ref: '#/components/schemas/Error'

````