Skip to content

HighLevel: Update Product by ID

HighLevel products.updateProductById: arguments, response, policy and SDK examples.

← Products operations · Get started

Operation gohighlevel.update_product_by_id

Provider route: PUT /products/{productId}. Alter supplies the connection’s credentials and routing.

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

import { App } from "@alter-ai/sdk";
import { HighLevelIntegration } from "@alter-ai/gohighlevel";
async function execute(input: Parameters<HighLevelIntegration["products"]["updateProductById"]>[0]) {
const app = new App({ apiKey: process.env.ALTER_API_KEY! });
try {
const provider = new HighLevelIntegration(app, { grantId: process.env.PROVIDER_GRANT_ID! });
const call = await provider.products.updateProductById(input);
const result = await call.wait();
return result.bodyJson();
} finally {
await app.close();
}
}
import os
from alter_sdk import App
from alter_sdk_gohighlevel import HighLevelIntegration
async def execute(arguments):
async with App(api_key=os.environ["ALTER_API_KEY"]) as app:
provider = HighLevelIntegration(app, {"grant_id": os.environ["PROVIDER_GRANT_ID"]})
call = await provider.products.update_product_by_id(arguments)
result = await call.wait()
return result.body_json()
FieldTypePresenceDescription and constraints
$objectRootAdditional keys: not allowed
pathobjectRequired within parentAdditional keys: not allowed
path.productIdstringRequired within parent
bodyModelRequired within parentExpand Update Product by ID — request body — body

Referenced models: Update Product by ID — 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
$ModelRootExpand Create Product — response body

Referenced models: Create Product — response body

Create Product — response body
FieldTypePresenceDescription and constraints
$objectRoot
_idstringRequired within parentThe unique identifier for the product.
automaticTaxCategoryIdstringOptionalTax category ID for Automatic taxes calculation.
availableInStorebooleanOptionalIndicates whether the product is available in-store.
collectionIdsarrayOptionalAn array of category Ids for the product
collectionIds[]stringEach item
createdAtstringRequired within parentThe creation timestamp of the product.
Format: date-time
descriptionstringOptionalproduct description
imagestringOptionalThe URL for the product image.
isTaxesEnabledbooleanOptionalThe field indicates whether taxes are enabled for the product or not.
Default: false
labelJSONOptionalThe Product label details
label (allOf 1)ModelAll variants applyExpand Create Product — response body — label end Date, start Date, title
locationIdstringRequired within parentThe unique identifier for the location.
namestringRequired within parentThe name of the product.
productTypestringRequired within parentThe type of the product (e.g., PHYSICAL).
slugstringOptionalThe slug of the product by which the product will be navigated
statementDescriptorstringOptionalThe statement descriptor for the product.
taxesarrayOptionalAn array of ids of Taxes attached to the Product. If the expand query includes tax, the taxes will be of type `ProductTaxDto`. Please refer to the `ProductTaxDto` for additional details.
taxes[]stringEach item
updatedAtstringRequired within parentThe last update timestamp of the product.
Format: date-time
variantsarrayOptionalAn array of variants for the product.
variants[]ModelEach itemExpand Create Product — response body — variants item

Referenced models: Create Product — response body — label end Date, start Date, title, Create Product — response body — variants item

Update Product by ID — request body — body
FieldTypePresenceDescription and constraints
$objectRoot
automaticTaxCategoryIdstringOptionalTax category ID for Automatic taxes calculation.
availableInStorebooleanOptionalIndicates whether the product is available in-store.
collectionIdsarrayOptionalAn array of category Ids for the product
collectionIds[]stringEach item
descriptionstringOptionalA brief description of the product.
imagestringOptionalThe URL for the product image.
isLabelEnabledbooleanOptionalIs the product label enabled. If this is true, label object cannot be empty.
Default: false
isTaxesEnabledbooleanOptionalAre there any taxes attached to the product. If this is true, taxes array cannot be empty.
Default: false
labelJSONOptionalDetails for Product Label
label (allOf 1)ModelAll variants applyExpand Create Product — response body — label end Date, start Date, title
locationIdstringRequired within parentThe unique identifier for the location.
mediasarrayOptionalAn array of medias for the product.
medias[]ModelEach itemExpand Create Product — request body — body medias item
namestringRequired within parentThe name of the product.
pricesarrayOptionalThe prices of the product
prices[]stringEach item
productTypestringRequired within parentOne of: DIGITAL, PHYSICAL, SERVICE, PHYSICAL/DIGITAL
seoJSONOptionalSEO data for the product that will be displayed in the preview
seo (allOf 1)ModelAll variants applyExpand Create Product — request body — body seo description, title
slugstringOptionalThe slug using which the product navigation will be handled
statementDescriptorstringOptionalThe statement descriptor for the product.
taxInclusivebooleanOptionalWhether the taxes should be included in the purchase price
Default: false
taxesarrayOptionalList of ids of Taxes attached to the Product. If taxes are passed, isTaxesEnabled should be true.
taxes[]stringEach item
variantsarrayOptionalAn array of variants for the product.
variants[]ModelEach itemExpand Create Product — response body — variants item

Referenced models: Create Product — response body — label end Date, start Date, title, Create Product — response body — variants item, Create Product — request body — body medias item, Create Product — request body — body seo description, title

Create Product — response body — label end Date, start Date, title
FieldTypePresenceDescription and constraints
$objectRoot
endDatestringOptionalStart date in YYYY-MM-DDTHH:mm:ssZ format
startDatestringOptionalStart date in YYYY-MM-DDTHH:mm:ssZ format
titlestringRequired within parentThe content for the product label.
Create Product — response body — variants item
FieldTypePresenceDescription and constraints
$objectRoot
idstringRequired within parentA unique identifier for the variant.
namestringRequired within parentThe name of the variant.
optionsarrayRequired within parentAn array of options for the variant.
options[]ModelEach itemExpand Create Product — response body — variants item options item

Referenced models: Create Product — response body — variants item options item

Create Product — request body — body medias item
FieldTypePresenceDescription and constraints
$objectRoot
idstringRequired within parentThe unique identifier for the media.
isFeaturedbooleanOptionalIndicates whether the media is featured.
priceIdsarrayOptionalMongo ObjectIds of the prices for which the media is assigned
priceIds[]arrayEach item
titlestringOptionalThe title of the media file.
typestringRequired within parentThe type of the media file (e.g., image, video will be supporting soon).
One of: image, video
urlstringRequired within parentThe URL where the media file is stored.
Create Product — request body — body seo description, title
FieldTypePresenceDescription and constraints
$objectRoot
descriptionstringOptionalSEO description
titlestringOptionalSEO title
Create Product — response body — variants item options item
FieldTypePresenceDescription and constraints
$objectRoot
idstringRequired within parentThe unique identifier for the option.
namestringRequired within parentThe name of the option.

SDK function policy ID: gohighlevel.update_product_by_id. Catalog operation: update-product-by-id. 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: ["products.write"]

Pinned headers: {"Version": "v3"}

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.