Optimizely Products API
The Products API from Optimizely — 54 operation(s) for products.
Operations 58
Each operation below carries the questions people ask an LLM about it and the instructions they give an agent to run it. Generated by API Evangelist overlay
Ask an LLM
“How do I pull every product record out of the Configured Commerce admin API?”
“Can I filter and sort the admin product list with OData options like $filter and $orderby?”
Tell an agent
List admin products matching the filter {filter}.
Show the first {top} admin product records sorted by {orderby}.
Ask an LLM
“How do I add a brand-new product to the commerce catalog through the admin API?”
“What fields are required when creating a product, like the ERP number and ERP description?”
Tell an agent
Create a product with ERP number {erpNumber} and ERP description {erpDescription}.
Add new product {name} with ERP number {erpNumber}, description {erpDescription} and list price {basicListPrice}.
GET
/api/v1/admin/Products({id})
Get one product record by id · Returns the entity with the key from Products
#
Ask an LLM
“How do I look up a single product's full admin record when I have its id?”
“Can I expand related entities when fetching one product by its key?”
Tell an agent
Get the admin product record with id {id}.
Fetch product {id} and expand {expand}.
PUT
/api/v1/admin/Products({id})
Replace a product record entirely · Replace entity in EntitySet Products
#
Ask an LLM
“How do I overwrite an entire product record with a new full version?”
“Does replacing a product require sending the ERP number and ERP description again?”
Tell an agent
Replace product {id} with a full record using ERP number {erpNumber} and description {erpDescription}.
Overwrite all fields of product {id}, naming it {name}.
DELETE
/api/v1/admin/Products({id})
Delete a single product record · Delete entity in EntitySet Products
#
Ask an LLM
“How do I permanently remove one product from the commerce admin by its id?”
“Can I guard a product deletion with an If-Match ETag so I don't delete a changed record?”
Tell an agent destructive · confirm first
Delete product {id}.
Delete product {id} only if its ETag still matches {etag}.
PATCH
/api/v1/admin/Products({id})
Update selected fields on a product · Update entity in EntitySet Products
#
Ask an LLM
“How do I change just a product's sale price without resending the whole record?”
“Can I mark an existing product as discontinued with a partial update?”
Tell an agent
Set the sale price of product {id} to {basicSalePrice}.
Mark product {id} as discontinued: {isDiscontinued}.
GET
/api/v1/admin/Products/Default.Default()
Call the Default function on products · Call operation Default
#
Ask an LLM
“What does the Default function on the admin Products entity set return?”
“Where do I get the default product record the admin API exposes?”
Tell an agent
Call the Default function on the admin Products set.
Fetch the default product entity from the commerce admin.
POST
/api/v1/admin/Products/Default.archive
Archive products via the OData archive action · Call operation archive
#
Ask an LLM
“How do I archive a batch of products using the Default.archive action?”
“Can I archive several products at once by passing their ids in a POST?”
Tell an agent destructive · confirm first
Archive products {ids} using the POST archive action.
Run the Default.archive action for product ids {ids}.
GET
/api/v1/admin/Products/Default.isdiscontinued(productId={productId})
Check if a product is discontinued (OData function) · Call operation isdiscontinued
#
Ask an LLM
“How do I check through the Default.isdiscontinued OData function whether a product is discontinued?”
“Can the Default-namespace function tell me if a product was discontinued?”
Tell an agent
Call Default.isdiscontinued for product {productId}.
Use the OData isdiscontinued function to check product {productId}.
GET
/api/v1/admin/Products/Default.unitofmeasures(productId={productId})
List a product's units of measure (OData function) · Call operation unitofmeasures
#
Ask an LLM
“How do I get the units of measure for a product via the Default.unitofmeasures function?”
“Which OData function returns a product's selling units such as each or case?”
Tell an agent
Call Default.unitofmeasures for product {productId}.
Use the OData unitofmeasures function to list units for product {productId}.
GET
/api/v1/admin/products/isdiscontinued(productId={productId})
Check if a product is discontinued (plain route) · Products is discontinued by productid 2
#
Ask an LLM
“Is there a plain lowercase products/isdiscontinued route to check a product's discontinued flag?”
“Can I tell whether an item is no longer sold without going through the OData Default namespace?”
Tell an agent
Check via the products/isdiscontinued route whether product {productId} is discontinued.
Tell me if product {productId} is discontinued using the non-OData route.
GET
/api/v1/admin/products/unitofmeasures(productId={productId})
List a product's units of measure (plain route) · Products unit of measures by productid 2
#
Ask an LLM
“Is there a plain products/unitofmeasures route to list the units a product sells in?”
“Can I read a product's units of measure without calling the OData Default function?”
Tell an agent
List units of measure for product {productId} via the products/unitofmeasures route.
Show the non-OData unit list for product {productId}.
DELETE
/api/v1/admin/products/archive
Archive products via the DELETE archive route · Products archive route
#
Ask an LLM
“Is there a DELETE route that archives products rather than deleting them outright?”
“How do I send a list of product ids to the products/archive endpoint?”
Tell an agent destructive · confirm first
Archive products {ids} through the DELETE products/archive route.
Send product ids {ids} to the archive route to retire them.
Ask an LLM
“How do I delete many products in one call by passing their ids?”
“Can I remove a whole batch of product records permanently with a single request?”
Tell an agent destructive · confirm first
Bulk delete products {ids}.
Permanently delete every product in the id list {ids}.
GET
/api/v1/admin/products({key})/attributevalues({attributevalueKey})
Get an attribute value assigned to a product · Products get attribute value by key and attributevaluekey
#
Ask an LLM
“Can I read one attribute value, like a color or size, that's assigned to a product?”
“Is a specific attribute value linked to a given product?”
Tell an agent
Get attribute value {attributevalueKey} on product {key}.
Show product {key}'s assignment of attribute value {attributevalueKey}.
GET
/api/v1/admin/products({key})/badges({badgeKey})
Get a badge attached to a product · Products get badge by key and badgekey
#
Ask an LLM
“Where can I see a specific badge, such as 'New' or 'Best Seller', attached to a product?”
“Can I confirm a particular badge is shown on one product?”
Tell an agent
Get badge {badgeKey} on product {key}.
Show the badge {badgeKey} linked to product {key}.
GET
/api/v1/admin/products({key})/categories({categoryKey})
Get a category a product belongs to · Products get category by key and categorykey
#
Ask an LLM
“Is a product placed in a particular catalog category?”
“Can I read one category record through a product's categories navigation?”
Tell an agent
Get category {categoryKey} of product {key}.
Show product {key}'s membership in category {categoryKey}.
GET
/api/v1/admin/products({key})/customerproductsets({customerproductsetKey})
Get a customer product set containing a product · Products get customer product set by key and customerproductsetkey
#
Ask an LLM
“How do I look up a customer product set that includes a given product?”
“Can I read one customer-specific product set through the product it contains?”
Tell an agent
Get customer product set {customerproductsetKey} for product {key}.
Show the customer product set {customerproductsetKey} that product {key} is in.
GET
/api/v1/admin/products({key})/customervisibilityadditions({customerKey})
Get a customer a product is made visible to · Products get customer visibility addition by key and customerkey
#
Ask an LLM
“How do I check whether a product was explicitly made visible to a particular customer?”
“Can I read a customer visibility addition from the product side?”
Tell an agent
Get the visibility addition for customer {customerKey} on product {key}.
Show whether customer {customerKey} was added to see product {key}.
GET
/api/v1/admin/products({key})/customervisibilityexceptions({customerKey})
Get a customer a product is hidden from · Products get customer visibility exception by key and customerkey
#
Ask an LLM
“How do I check if a product has been hidden from a specific customer?”
“Can I read a customer visibility exception that blocks one buyer from a product?”
Tell an agent
Get the visibility exception for customer {customerKey} on product {key}.
Show whether product {key} is hidden from customer {customerKey}.
GET
/api/v1/admin/products({key})/customproperties({custompropertyKey})
Get a custom property on a product · Products get custom property by key and custompropertykey
#
Ask an LLM
“How do I read one custom property value stored on a product?”
“Can I fetch a single extension field that my team added to product records?”
Tell an agent
Get custom property {custompropertyKey} of product {key}.
Show the value of custom property {custompropertyKey} on product {key}.
GET
/api/v1/admin/products({key})/dealers({dealerKey})
Get a dealer that carries a product · Products get dealer by key and dealerkey
#
Ask an LLM
“Which dealer record is linked to a product under a given dealer key?”
“Can I read one dealer record through the product's dealers list?”
Tell an agent
Get dealer {dealerKey} for product {key}.
Show the dealer {dealerKey} that stocks product {key}.
GET
/api/v1/admin/products({key})/documents({documentKey})
Get a document attached to a product · Products get document by key and documentkey
#
Ask an LLM
“Where do I fetch a spec sheet or manual document attached to a product?”
“Can I read one product document record by its key?”
Tell an agent
Get document {documentKey} of product {key}.
Show the attached document {documentKey} for product {key}.
GET
/api/v1/admin/products({key})/parentrelatedcategories({categoryrelatedproductKey})
Get a category that lists a product as related · Products get parent related category by key and categoryrelatedproductkey
#
Ask an LLM
“How do I find a category that points to a product as one of its related products?”
“Can I read a parent category relationship for a product?”
Tell an agent
Get parent related category {categoryrelatedproductKey} for product {key}.
Show the category relation {categoryrelatedproductKey} that references product {key}.
GET
/api/v1/admin/products({key})/parentrelatedproducts({productrelatedproductKey})
Get a product that lists this one as related · Products get parent related product by key and productrelatedproductkey
#
Ask an LLM
“How do I see which other product references this product as a related item?”
“Can I read an inbound product relationship where this item is the child?”
Tell an agent
Get parent related product link {productrelatedproductKey} for product {key}.
Show the inbound relation {productrelatedproductKey} pointing at product {key}.
GET
/api/v1/admin/products({key})/productimages({productimageKey})
Get an image of a product · Products get product image by key and productimagekey
#
Ask an LLM
“What does the record for one image in a product's gallery contain?”
“Can I fetch a single product image's details by its key?”
Tell an agent
Get image {productimageKey} of product {key}.
Show the gallery image {productimageKey} for product {key}.
GET
/api/v1/admin/products({key})/productkitsections({productkitsectionKey})
Get a kit section of a product · Products get product kit section by key and productkitsectionkey
#
Ask an LLM
“What's in one section of a configurable product kit?”
“Can I inspect a single kit section that makes up a bundled product?”
Tell an agent
Get kit section {productkitsectionKey} of product {key}.
Show the kit section {productkitsectionKey} inside product {key}.
GET
/api/v1/admin/products({key})/productrelatedproducts({productrelatedproductKey})
Get a related product this product points to · Products get product related product by key and productrelatedproductkey
#
Ask an LLM
“How do I read one outbound related-product link, like an accessory or cross-sell, on a product?”
“Can I check a specific product-to-product relationship this item defines?”
Tell an agent
Get related product link {productrelatedproductKey} defined on product {key}.
Show the outbound related item {productrelatedproductKey} of product {key}.
GET
/api/v1/admin/products({key})/productunitofmeasures({productunitofmeasureKey})
Get one unit of measure record on a product · Products get product unit of measure by key and productunitofmeasurekey
#
Ask an LLM
“How do I read one unit-of-measure record, such as a case, through a product's navigation?”
“Can I fetch a specific product unit of measure by its key from the product?”
Tell an agent
Get unit of measure record {productunitofmeasureKey} of product {key}.
Show the unit record {productunitofmeasureKey} nested under product {key}.
GET
/api/v1/admin/products({key})/productwarehouses({productwarehouseKey})
Get a product's warehouse record · Products get product warehouse by key and productwarehousekey
#
Ask an LLM
“What does a product's stocking record for one warehouse look like?”
“Can I check a single warehouse entry for a product?”
Tell an agent
Get warehouse record {productwarehouseKey} of product {key}.
Show the warehouse entry {productwarehouseKey} for product {key}.
GET
/api/v1/admin/products({key})/promotionresults({promotionresultKey})
Get a promotion result tied to a product · Products get promotion result by key and promotionresultkey
#
Ask an LLM
“Which promotion result applies to a particular product?”
“Can I read one promotion outcome record through the product?”
Tell an agent
Get promotion result {promotionresultKey} for product {key}.
Show the promotion outcome {promotionresultKey} on product {key}.
GET
/api/v1/admin/products({key})/restrictiongroupadditions({restrictiongroupKey})
Get a restriction group addition on a product · Products get restriction group addition by key and restrictiongroupkey
#
Ask an LLM
“How do I check whether a product was explicitly added to a restriction group?”
“Can I read a restriction group addition record from the product?”
Tell an agent
Get restriction group addition {restrictiongroupKey} on product {key}.
Show whether product {key} was added to restriction group {restrictiongroupKey}.
GET
/api/v1/admin/products({key})/restrictiongroupexceptions({restrictiongroupKey})
Get a restriction group exception on a product · Products get restriction group exception by key and restrictiongroupkey
#
Ask an LLM
“How do I check whether a product is exempted from a restriction group?”
“Can I read a restriction group exception that carves a product out?”
Tell an agent
Get restriction group exception {restrictiongroupKey} on product {key}.
Show whether product {key} is excepted from restriction group {restrictiongroupKey}.
GET
/api/v1/admin/products({key})/restrictiongroups({restrictiongroupKey})
Get a restriction group a product belongs to · Products get restriction group by key and restrictiongroupkey
#
Ask an LLM
“Which restriction group governs who can buy this product?”
“Can I read the restriction group record itself through a product?”
Tell an agent
Get restriction group {restrictiongroupKey} assigned to product {key}.
Show the purchase restriction group {restrictiongroupKey} for product {key}.
GET
/api/v1/admin/products({key})/ruleclauses({ruleclauseKey})
Get a rule clause applied to a product · Products get rule clause by key and ruleclausekey
#
Ask an LLM
“What does one rule clause attached to a product's rules say?”
“Can I inspect a single rule condition defined for a product?”
Tell an agent
Get rule clause {ruleclauseKey} of product {key}.
Show the rule condition {ruleclauseKey} on product {key}.
GET
/api/v1/admin/products({key})/specifications({specificationKey})
Get a specification of a product · Products get specification by key and specificationkey
#
Ask an LLM
“Can I read one specification section, like dimensions or materials, for a product?”
“Where is a single product specification record fetched by key?”
Tell an agent
Get specification {specificationKey} of product {key}.
Show the spec entry {specificationKey} for product {key}.
GET
/api/v1/admin/products({key})/stylechildren({productKey})
Get a style child variant of a product · Products get style children by key and productkey
#
Ask an LLM
“How do I read one child variant of a style parent product in the admin API?”
“Can I fetch a specific style child, such as a size or color variant, from its parent?”
Tell an agent
Get style child {productKey} of parent product {key}.
Show the admin record of variant {productKey} under style parent {key}.
GET
/api/v1/admin/products({key})/styletraitvalues({styletraitvalueKey})
Get a style trait value on a product · Products get style trait value by key and styletraitvaluekey
#
Ask an LLM
“How do I read the style trait value, like 'Red' or 'Large', set on a product?”
“Can I check which style trait value defines a particular variant?”
Tell an agent
Get style trait value {styletraitvalueKey} of product {key}.
Show the trait value {styletraitvalueKey} that product {key} carries.
GET
/api/v1/admin/products({key})/subscriptionproducts({subscriptionproductKey})
Get a subscription product linked to a product · Products get subscription product by key and subscriptionproductkey
#
Ask an LLM
“Which subscription product record is tied to a product?”
“Can I check a specific recurring-order subscription configuration on an item?”
Tell an agent
Get subscription product {subscriptionproductKey} for product {key}.
Show the subscription link {subscriptionproductKey} on product {key}.
GET
/api/v1/admin/products({key})/taxexemptions({taxexemptionKey})
Get a tax exemption applied to a product · Products get tax exemption by key and taxexemptionkey
#
Ask an LLM
“How do I check whether a product carries a particular tax exemption?”
“Can I read one tax exemption record through a product?”
Tell an agent
Get tax exemption {taxexemptionKey} on product {key}.
Show the tax exemption {taxexemptionKey} assigned to product {key}.
GET
/api/v1/admin/products({key})/websites({websiteKey})
Get a website a product is sold on · Products get website by key and websitekey
#
Ask an LLM
“How do I confirm a product is published to one particular storefront website?”
“Can I read a website record through the product's websites list?”
Tell an agent
Get website {websiteKey} for product {key}.
Show the storefront site {websiteKey} that sells product {key}.
GET
/api/v1/admin/products({key})/wishlistproducts({wishlistproductKey})
Get a wish list entry for a product · Products get wish list product by key and wishlistproductkey
#
Ask an LLM
“Can I read one wish list entry that contains a given product?”
“Where is a specific shopper's saved-list line for an item stored?”
Tell an agent
Get wish list entry {wishlistproductKey} for product {key}.
Show the saved-list line {wishlistproductKey} holding product {key}.
Ask an LLM
“How do I search the storefront catalog by keyword with the version 1 products endpoint?”
“Can I narrow a v1 product search to a price range or a set of brands?”
Tell an agent
Search v1 storefront products for {query}.
Find v1 products in category {categoryId} priced between {minimumPrice} and {maximumPrice}.
Ask an LLM
“How do I load one product's storefront detail page data with the v1 API?”
“Can a v1 product lookup also add the item to the shopper's recently viewed list?”
Tell an agent
Get v1 storefront product {productId}.
Load v1 product {productId} in unit of measure {unitOfMeasure} for quantity {qtyOrdered}.
GET
/api/v1/products/{productId}/crosssells
Get cross-sell products for a product · Products V1 get cross sell async
#
Ask an LLM
“What cross-sell suggestions show alongside a product?”
“Which products does the storefront recommend as cross-sells for an item?”
Tell an agent
Get cross-sells for product {productId}.
List the recommended add-on products for {productId}.
Ask an LLM
“How do I get the real-time price a shopper would pay for a product?”
“Does the price change if I ask for a different unit of measure or order quantity?”
Tell an agent
Get the price of product {productId}.
Price product {productId} for {qtyOrdered} units in {unitOfMeasure}.
GET
/api/v1/products/{productId}/availability
Check a product's inventory availability · Products V1 get availability async
#
Ask an LLM
“Is a product in stock right now?”
“Can the availability check include inventory from alternate warehouses?”
Tell an agent
Check availability for product {productId}.
Check stock for product {productId} including alternate inventory: {includeAlternateInventory}.
Ask an LLM
“How do I fetch several products at once by their extended names?”
“Can I look up a batch of items in a single POST instead of one call per product?”
Tell an agent
Batch get products with extended names {extendedNames}.
Look up all of these products by extended name in one request: {extendedNames}.
Ask an LLM
“What does the v1 products feederData endpoint return?”
“Where can I pull the v1 product feeder data sample set?”
Tell an agent
Get the v1 product feeder data.
Fetch the feederData payload from the version 1 products endpoint.
Ask an LLM
“How do I search products with the newer v2 storefront endpoint using page tokens?”
“Can a v2 product search include products from subcategories of a category?”
Tell an agent
Search v2 storefront products for {search}.
List v2 products in category {categoryId} including subcategories: {includeProductsInSubCategories}.
GET
/api/v2/products/{ProductId}
Get a storefront product (v2) · Products V2 get async2 by productid
#
Ask an LLM
“How do I fetch one product through the v2 storefront API with its attributes?”
“Can I get a v2 product in the context of a specific category?”
Tell an agent
Get v2 product {ProductId}.
Get v2 product {ProductId} with attributes included: {includeAttributes}.
GET
/api/v2/products/{productId}/alsopurchased
List products also purchased with a product · Products V2 get also purchased collection async by productid
#
Ask an LLM
“What do other customers usually buy together with this product?”
“Can I page through the 'customers also purchased' list for an item?”
Tell an agent
List products also purchased with {productId}.
Show page {page} of the also-purchased items for product {productId}.
GET
/api/v2/products/{productId}/relatedproducts
List a product's related products (v2) · Products V2 get related product collection async by productid
#
Ask an LLM
“How do I list related products, such as accessories, for an item in the v2 storefront API?”
“Can I filter a product's related items by relationship type?”
Tell an agent
List v2 related products for {productId}.
List products related to {productId} by relationship {relationship}.
GET
/api/v2/products/{productId}/variantchildren
List a product's variants · Products V2 get variant child collection async by productid
#
Ask an LLM
“How do I list all the variants, like each size and color, of a style product?”
“Can I page through a parent product's variant children on the storefront?”
Tell an agent
List variant children of product {productId}.
Show {pageSize} variants per page for product {productId}.
GET
/api/v2/products/{productId}/variantchildren/{variantChildId}
Get one variant of a product · Products V2 get variant child async by productid and variantchildid
#
Ask an LLM
“How do I load a single variant of a style product on the storefront?”
“Can I include attributes when fetching one variant child?”
Tell an agent
Get variant {variantChildId} of product {productId}.
Load storefront variant {variantChildId} of {productId} with its attributes.
GET
/api/v2/products/feederData/productWithMostAttributes
Get the product with the most attributes · Products V2 get product with most attributes
#
Ask an LLM
“Which product in the catalog has the most attributes defined?”
“Where do I get the feeder product with the richest attribute set?”
Tell an agent
Get the product with the most attributes.
Fetch the feeder product carrying the largest attribute count.
GET
/api/v2/products/feederData/productWithMostVariants
Get the product with the most variants · Products V2 get product with most variants
#
Ask an LLM
“Which product in the catalog has the most variants?”
“Where do I get the feeder product with the biggest variant list?”
Tell an agent
Get the product with the most variants.
Fetch the feeder product carrying the largest number of variant children.
Ask an LLM
“How do I push updated product metadata to the data platform as my inventory changes?”
“Can I sync product objects in Optimizely Data Platform whenever my catalog updates?”
Tell an agent
Update product objects in the data platform with the latest inventory metadata.
Sync my changed products to the data platform products object.