Skip to content

HubSpot: Batch update price book items

HubSpot priceBooks.batchUpdatePriceBookItems: arguments, response, policy and SDK examples.

← Price books operations · Get started

Operation hubspot.price_books_batch_update_price_book_items

Provider route: POST /commerce/price-books/2026-09/price-books/{priceBookId}/items/batch/update. Alter supplies the connection’s credentials and routing.

Install @alter-ai/sdk @alter-ai/hubspot with npm, or alter-sdk-hubspot with pip. Supply your connected customer’s grant ID and the arguments described below.

import { App } from "@alter-ai/sdk";
import { HubSpotIntegration } from "@alter-ai/hubspot";
async function execute(input: Parameters<HubSpotIntegration["priceBooks"]["batchUpdatePriceBookItems"]>[0]) {
const app = new App({ apiKey: process.env.ALTER_API_KEY! });
try {
const provider = new HubSpotIntegration(app, { grantId: process.env.PROVIDER_GRANT_ID! });
const call = await provider.priceBooks.batchUpdatePriceBookItems(input);
const result = await call.wait();
return result.bodyJson();
} finally {
await app.close();
}
}
import os
from alter_sdk import App
from alter_sdk_hubspot import HubSpotIntegration
async def execute(arguments):
async with App(api_key=os.environ["ALTER_API_KEY"]) as app:
provider = HubSpotIntegration(app, {"grant_id": os.environ["PROVIDER_GRANT_ID"]})
call = await provider.price_books.batch_update_price_book_items(arguments)
result = await call.wait()
return result.body_json()
FieldTypePresenceDescription and constraints
$objectRootAdditional keys: not allowed
pathobjectRequired within parentAdditional keys: not allowed
path.priceBookIdintegerRequired within parentFormat: int64
bodyModelRequired within parentExpand Batch update price book items — request body — body

Referenced models: Batch update price book items — request body — body

Response media type: application/json. The table describes the pinned successful response. Referenced models link to their complete fields.

FieldTypePresenceDescription and constraints
$JSONRoot
$ (anyOf 1)ModelAlternativeExpand Batch create price book items — response body — status: CANCELED, COMPLETE, PENDING, PROCESSING — Batch Response Price Book Item Response
$ (anyOf 2)ModelAlternativeExpand Batch create price book items — response body — status: CANCELED, COMPLETE, PENDING, PROCESSING — Batch Response Price Book Item Response With Errors

Referenced models: Batch create price book items — response body — status: CANCELED, COMPLETE, PENDING, PROCESSING — Batch Response Price Book Item Response, Batch create price book items — response body — status: CANCELED, COMPLETE, PENDING, PROCESSING — Batch Response Price Book Item Response With Errors

5 more schemas are linked from the tables above, on the schema pages.

Batch update price book items — request body — body
FieldTypePresenceDescription and constraints
$objectRoot
inputsarrayRequired within parentAn array of objects, each representing a price book item to be updated. Each object must conform to the PriceBookItemBatchUpdateInput schema.
inputs[]ModelEach itemExpand Batch update price book items — request body — body inputs item

Referenced models: Batch update price book items — request body — body inputs item

Batch create price book items — response body — status: CANCELED, COMPLETE, PENDING, PROCESSING — Batch Response Price Book Item Response
FieldTypePresenceDescription and constraints
$objectRoot
completedAtstringRequired within parentThe date and time when the batch operation was completed, in ISO 8601 format.
Format: date-time
linksobjectOptionalA map of link names to associated URIs providing additional information or actions related to the batch operation.
Additional keys: see wildcard field
links.*stringAdditional keys
requestedAtstringOptionalThe date and time when the batch operation was requested, in ISO 8601 format.
Format: date-time
resultsarrayRequired within parentAn array of PriceBookItemResponse objects representing the individual results of the batch operation.
results[]ModelEach itemExpand Add price book items — response body
startedAtstringRequired within parentThe date and time when the batch operation started, in ISO 8601 format.
Format: date-time
statusstringRequired within parentThe current status of the batch operation. Valid values include 'PENDING', 'PROCESSING', 'CANCELED', and 'COMPLETE'.
Known values: CANCELED, COMPLETE, PENDING, PROCESSING

Referenced models: Add price book items — response body

Batch create price book items — response body — status: CANCELED, COMPLETE, PENDING, PROCESSING — Batch Response Price Book Item Response With Errors
FieldTypePresenceDescription and constraints
$objectRoot
completedAtstringRequired within parentThe date and time when the batch operation was completed, in ISO 8601 format.
Format: date-time
errorsarrayOptionalAn array of errors encountered during the batch operation, each represented as a StandardError object.
errors[]ModelEach itemExpand Batch create price book items — response body — status: CANCELED, COMPLETE, PENDING, PROCESSING errors item
linksobjectOptionalA map of link names to associated URIs, providing additional context or actions related to the batch operation.
Additional keys: see wildcard field
links.*stringAdditional keys
numErrorsJSONOptional
numErrors (anyOf 1)integerAlternativeThe number of errors encountered during the batch operation.
Format: int32
numErrors (anyOf 2)stringAlternativePattern: ^-?[0-9]+(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$
requestedAtstringOptionalThe date and time when the batch operation was requested, in ISO 8601 format.
Format: date-time
resultsarrayRequired within parentAn array of results from the batch operation, each represented as a PriceBookItemResponse object.
results[]ModelEach itemExpand Add price book items — response body
startedAtstringRequired within parentThe date and time when the batch operation started, in ISO 8601 format.
Format: date-time
statusstringRequired within parentThe current status of the batch operation. Valid values include 'PENDING', 'PROCESSING', 'CANCELED', and 'COMPLETE'.
Known values: CANCELED, COMPLETE, PENDING, PROCESSING

Referenced models: Add price book items — response body, Batch create price book items — response body — status: CANCELED, COMPLETE, PENDING, PROCESSING errors item

Batch update price book items — request body — body inputs item
FieldTypePresenceDescription and constraints
$objectRoot
idstringRequired within parentThe unique identifier for the price book item to be updated. It is a string.
propertiesModelRequired within parentExpand Update price book item — request body — body

Referenced models: Update price book item — request body — body

Add price book items — response body
FieldTypePresenceDescription and constraints
$objectRoot
archivedbooleanOptionalA boolean indicating whether the price book item is archived.
archivedAtstringOptionalThe date and time when the price book item was archived, in ISO 8601 format.
Format: date-time
billingFrequencystringOptionalThe 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'.
Known values: ANNUALLY, BIWEEKLY, MONTHLY, PER_FIVE_YEARS, PER_FOUR_YEARS, PER_SIX_MONTHS, PER_THREE_YEARS, PER_TWO_YEARS, QUARTERLY, WEEKLY
billingPeriodstringOptionalThe billing period for the price book item.
costOfGoodsSoldstringOptionalThe cost of goods sold for the price book item.
createdAtstringOptionalThe date and time when the price book item was created, in ISO 8601 format.
Format: date-time
customPropertiesobjectRequired within parentA map of custom property names to their values for the price book item.
Additional keys: see wildcard field
customProperties.*stringAdditional keys
descriptionstringOptionalA description of the price book item.
idstringRequired within parentThe unique identifier for the price book item.
imagesstringOptionalA string representing images associated with the price book item.
namestringOptionalThe name of the price book item.
priceBookIdstringOptionalThe unique identifier for the price book containing this item.
pricingModelOptionalExpand Add price book items — response body — pricing
productClassificationstringOptionalThe classification of the product. Valid values include 'BUNDLE', 'STANDALONE', and 'VARIANT'.
Known values: BUNDLE, STANDALONE, VARIANT
productIdstringRequired within parentThe unique identifier for the product associated with the price book item.
productTypestringOptionalThe type of product. Valid values include 'INVENTORY', 'NON_INVENTORY', and 'SERVICE'.
Known values: INVENTORY, NON_INVENTORY, SERVICE
recurringBillingTermsstringOptionalThe terms of recurring billing for the price book item. Valid values include 'AUTOMATICALLY_RENEW' and 'FIXED'.
Known values: AUTOMATICALLY_RENEW, FIXED
skustringOptionalThe stock keeping unit (SKU) of the price book item.
statusstringOptionalThe current status of the price book item. Valid values include 'active' and 'inactive'.
Known values: active, inactive
taxCategorystringOptionalThe tax category of the price book item.
updatedAtstringOptionalThe date and time when the price book item was last updated, in ISO 8601 format.
Format: date-time
urlstringOptionalA URL associated with the price book item.

Referenced models: Add price book items — response body — pricing

Batch create price book items — response body — status: CANCELED, COMPLETE, PENDING, PROCESSING errors item
FieldTypePresenceDescription and constraints
$objectRootYe olde error
categorystringRequired within parentA string specifying the category of the error.
contextobjectRequired within parentAn object containing additional context about the error, with each key mapping to an array of strings.
Additional keys: see wildcard field
context.*arrayAdditional keys
context.*[]stringEach item
errorsarrayRequired within parentAn array of ErrorDetail objects providing further information about the error.
errors[]ModelEach itemExpand Validate price book — response body — errors item
idstringOptionalA string representing the unique identifier of the error.
linksobjectRequired within parentAn object mapping link names to URIs that provide documentation or remediation steps related to the error.
Additional keys: see wildcard field
links.*stringAdditional keys
messagestringRequired within parentA string containing a human-readable message that describes the error.
statusstringRequired within parentA string indicating the status of the error.
subCategoryobjectOptionalAn object providing more specific details about the error category.

Referenced models: Validate price book — response body — errors item

Add price book items — response body — pricing
FieldTypePresenceDescription and constraints
$objectRoot
pricesarrayRequired within parentAn array of price entries, each detailing the amount and currency for a specific pricing tier.
prices[]ModelEach itemExpand Add price book items — response body — pricing prices item
pricingModelstringRequired within parentThe type of pricing model applied, which can be one of the following: 'FLAT', 'GRADUATED', 'STAIRSTEP', or 'VOLUME'.
Known values: FLAT, GRADUATED, STAIRSTEP, VOLUME

Referenced models: Add price book items — response body — pricing prices item

SDK function policy ID: hubspot.price_books_batch_update_price_book_items. Catalog operation: price_books_batch_update_price_book_items. Rules can name either ID; function rules distinguish managed calls and conservatively cover raw calls sharing the route. Existing grant permissions and policy rules apply. wait() returns an immediate result or waits for a required approval; it never approves the request itself. Persist the approval ID to resume after a restart.

Provider errors retain their response; JSON decoding raises ProviderAPIError for provider failures. ManagedOperationError identifies contract/input/retention errors. See error handling and provider-specific behavior. Sensitive input may be refused before approval storage. A decoding error never resubmits a write.

Required provider scopes: ["cpq.price_books.write"]

Official provider source

Report an issue with this page

Necessary

Required for sign-in, security, authorization, and remembering your choices.

Always active

Analytics

Helps us understand which product and documentation features are useful.

Performance diagnostics

Uses performance tracing and privacy-masked session replay to diagnose problems.

You can change these choices at any time from Cookie settings.