Need help with your APIs? I offer API discovery, governance & evangelism services. Explore services →
API Evangelist API Evangelist
Discovery
Learnings
Guidance
Toolbox
Alignment
API Evangelist LLC

Elastic Path Variations API

```mdx-code-blockimport VariationsOverview from '/docs/partials/pxm/variations/variationsoverview.mdx';import VariationsReusability from '/docs/partials/pxm/variations/variationsreusability.mdx';import ChildProducts from '/docs/partials/pxm/variations/childproducts.mdx';import BuildChildren from '/docs/partials/pxm/variations/buildchildproducts.mdx';import ProductModifiers from '/docs/partials/pxm/variations/productmodifiers.mdx';import PriceModifiers from "/docs/partials/pxm/variations/pricemodifiers.mdx";### Reusability### Child Products### Building Child Products### Sorting the Order of Variations and OptionsThe `variation_matrix` object lists the variation IDs and variation option IDs and their corresponding product IDs that are generated when the variation and variation options are built with a product. The `variation_matrix` can then be added to your catalogs.The order of the variations in the `variation_matrix` is the order of the variations in the array when the variations were linked to the product. For example, the first variation in the `variation_matrix` corresponds to the first variation in the array, and so on. You can use the `sort_order`attribute to sort the order of your variation and variation options in the `variation_matrix` object. The sort order value is visible when you add the variations and variation options to your catalogs. You can then use the `sort_order` value to program your storefront to display the variations and variation options in the order that you want.Add the `sort_order` attribute to the body of your request and specify a `sort_order` value. A `sort_order` value must be a number. You can specify any numbers that you want.- 1, 2, 3, or 100, 90, 80, and so on.- Zero or negative numbers.You can set `sort_order` to either `null` or omit it entirely from the request if you wish to remove an existing `sort_order` attribute.:::caution- Commerce does not sort variations and variation options. You must program your storefront to sort the variations and variation options in the order that you want.- You must rebuild your products for the sort order changes to take effect. See [**Build Child Products**](#build-child-products).:::### Product Modifiers### Price Modifiers```

Elastic Path Variations API is one of 100 APIs that Elastic Path publishes on the APIs.io network, described by a machine-readable OpenAPI specification.

Tagged areas include Variations. The published artifact set on APIs.io includes an OpenAPI specification and API documentation.

This API exposes 21 operations across 9 paths, and defines 31 schemas. It is described by OpenAPI 3.1.0, at version 25.1126.6886238.

Requests are made against 2 base URLs: https://useast.api.elasticpath.com, https://euwest.api.elasticpath.com.

21 operations 9 paths 31 schemas 4 DELETE8 GET5 POST4 PUT

Metadata

The identity and technical contract details declared by the specification.

Specification
OpenAPI 3.1.0
API Version
25.1126.6886238
Base URL
https://useast.api.elasticpath.com
Authentication
HTTP Bearer
License
Resource Areas
1

Authentication & Security 1

Elastic Path Variations API declares 1 security scheme for authenticating requests. It accepts HTTP bearer tokens (BearerToken). By default, every request must be authenticated.

Paths & Operations 21

Across 9 paths, the API surfaces 21 operations — 4 DELETE, 8 GET, 5 POST, 4 PUT. Each is listed below with its method, path, parameters, and response codes.

Variations 21

mdx-code-block import VariationsOverview from '/docs/partials/pxm/variations/variationsoverview.mdx'; import VariationsReusability from '/docs/partials/pxm/variations/variationsre…

POST
/pcm/products/{productID}/build
Build child products
buildChildProducts 1 param body → 201403404422500
GET
/pcm/products/{productID}/children
Get child products
getChildProducts 1 param → 200400500
POST
/pcm/products/{productID}/relationships/variations
Create a product variation relationship
createProductVariationRelationships 1 param body → 204400403404409422500
GET
/pcm/products/{productID}/relationships/variations
Get all product variation relationships
getProductVariationRelationships 1 param → 200400403404409422500
PUT
/pcm/products/{productID}/relationships/variations
Replace a product variation relationship
updateProductVariationRelationships 1 param body → 204400403404409422500
DELETE
/pcm/products/{productID}/relationships/variations
Delete a product variation relationships
deleteProductVariationRelationships 1 param body → 204400403404409422500
POST
/pcm/variations
Create a variation
createVariation body → 201422500
GET
/pcm/variations
Get all variations
getAllVariations 2 params → 200400500
GET
/pcm/variations/{variationID}
Get a variation
getVariation 1 param → 200400404500
PUT
/pcm/variations/{variationID}
Update a variation
updateVariation 1 param body → 200403404409422500
DELETE
/pcm/variations/{variationID}
Delete a variation and all it's associated options.
deleteVariation 1 param → 204403422500
POST
/pcm/variations/{variationID}/options
Create a variation option
createVariationOption 1 param body → 201422500
GET
/pcm/variations/{variationID}/options
Get all variation options
getAllVariationOptions 3 params → 200400500
GET
/pcm/variations/{variationID}/options/{optionID}
Get a variation option
getVariationOption 2 params → 200400404500
PUT
/pcm/variations/{variationID}/options/{optionID}
Update a variation option
updateVariationOption 2 params body → 200403404409422500
DELETE
/pcm/variations/{variationID}/options/{optionID}
Delete a variation option
deleteVariationOption 2 params → 204403422500
POST
/pcm/variations/{variationID}/options/{optionID}/modifiers
Create a modifier
createModifier 2 params body → 201422500
GET
/pcm/variations/{variationID}/options/{optionID}/modifiers
Get all modifiers
getAllModifiers 4 params → 200400500
GET
/pcm/variations/{variationID}/options/{optionID}/modifiers/{modifierID}
Get a modifier
getModifier 3 params → 200400404500
PUT
/pcm/variations/{variationID}/options/{optionID}/modifiers/{modifierID}
Update a modifier
updateModifier 3 params body → 200403404409422500
DELETE
/pcm/variations/{variationID}/options/{optionID}/modifiers/{modifierID}
Delete a modifier
deleteModifier 3 params → 204403422500

Schemas 31

The contract defines 31 schemas that model the data the API accepts and returns. The most detailed are elastic_path_file (9 properties), product_response (5 properties), multi_links (5 properties), job (4 properties). Each schema is shown below with its type and property counts.

product_build_rules
object
You can build a combination of child products associated with a product, based on build rules that you specify. This is useful, for example, if you have a vari…
3 properties
single
object
1 property 1 required
created_variation
object
1 property 1 required
error
object
1 property 1 required
create_variation
object
1 property 1 required
product_custom_inputs
object
You use the custominputs attribute to allow your shoppers to add custom text to a product when adding product items to their carts. This is useful, for example…
admin_attributes
object
adminattributes are not displayed in catalogs. This means adminattributes can only be viewed by administrators. If you want a custom attribute to be displayed…
elastic_path_file
object
9 properties
created_modifier
object
1 property
multi_links
object
Links allow you to navigate between pages of results. :::caution Planned pagination changes — on or after 1 September 2026 The pagination behaviour of PIM list…
5 properties
update_option
object
1 property 1 required
multi_product_response
object
4 properties
shopper_attributes
object
shopperattributes are displayed in catalogs. This means shopperattributes can be viewed by both shoppers and administrators. If you do not want a custom attrib…
included_response
object
Included is an array of resources that are included in the response.
3 properties
create_modifier
object
Use modifiers to change the properties of child products that are inherited from a parent product. With modifiers, you only need to have one parent product wit…
1 property 1 required
single_variation
object
1 property 1 required
product_locales
object
Product Experience Manager supports localization of products and hierarchies. If your store supports multiple languages, you can localize product names and des…
multi_options
object
3 properties
single_option
object
1 property 1 required
multi_modifiers
object
3 properties
single_modifier
object
1 property
variations_response
object
1 property
create_option
object
1 property 1 required
job
object
4 properties 4 required
multi_variations
object
3 properties
product_variations_request
object
1 property
created_option
object
1 property 1 required
product_response
object
5 properties
product_bundle_components
object
With Product Experience Manager, you can create and manage bundles. A bundle is a purchasable product, consisting of one or more products that you want to sell…
update_modifier
object
1 property 1 required
update_variation
object
1 property 1 required

Specification

The full machine-readable OpenAPI contract behind this narrative.

Source

elastic-path-variations-api-openapi.yml Raw ↑

Other APIs Elastic Path publishes across the network.

Elastic Path GraphQL API
Elastic Path Account Addresses API
Elastic Path Account Authentication Settings API
Elastic Path Account Cart Associations API
Elastic Path Account Management Authentication API
Elastic Path Account Members API
Elastic Path Account Membership API
Elastic Path Account Membership Settings API
Elastic Path Account Tags API
Elastic Path Accounts API
Elastic Path Administrator Latest Releases Catalog API API
Elastic Path Application Keys API