Elastic Path
Elastic Path is a headless commerce platform providing REST and GraphQL APIs for managing catalogs, products, price books, promotions, carts, orders, subscriptions, payments, and customer accounts in composable commerce architectures. It is designed for B2B, D2C, and multi-brand enterprise retailers building API-first, microservices-based shopping experiences.
Elastic Path publishes 99 APIs on the APIs.io network, including Account Addresses API, Account Authentication Settings API, Account Cart Associations API, and 96 more. Tagged areas include Commerce, Headless Commerce, Composable Commerce, eCommerce, and B2B.
The Elastic Path catalog on APIs.io includes 1 Spectral governance ruleset.
Elastic Path’s developer surface includes authentication, documentation, engineering blog, pricing, support, and 12 more developer resources.
100 APIs
CommerceHeadless CommerceComposable CommerceeCommerceB2BProductsCatalogsOrdersPromotionsSubscriptionsPayments
Individual APIs this provider publishes, each with its own machine-readable definition.
GraphQL abstraction over a subset of the Elastic Path Commerce Cloud APIs, providing a flexible query interface optimized for shopper-facing experiences including product browsi...
The API to organize account addresses.
You can use the Account Authentication Settings endpoint to retrieve or modify how settings controlling account and account member authentication.
You can create associations between an account and one or more carts. After cart associations exist for an account, those carts are accessible across any device. You can delete ...
Commerce provides authentication tokens for an `Account` and an `Account Member`.
An `Account Member` resource is a user that you can add to accounts using account memberships. Account members API is read only, and you cannot add users using this API. There i...
The `Account Membership` resource represents the relationship between an account and an account member. This relationship is many to many. Each account can have multiple account...
Account Membership Settings allow Account Members to be associated to, at most, N accounts at a time. You can set this value to any number up to 10,000. The default value is 10,...
Account Tags are custom labels or metadata that can be attached to accounts to help organize and filter them based on specific attributes or criteria.
An Account represents the entity that participates in a Commerce transaction. Accounts can have Carts, Orders, Subscriptions, and Addresses.
Use the Administrator Latest Releases Catalog View API to retrieve product, hierarchy and node information. :::danger The Administrator Latest Releases Catalog View API is for A...
You can use application keys to generate `client_credentials` and `implicit` tokens.
An authentication realm is a container that consists of the following: - Users - Represented by [User Authentication Info](/docs/api/single-sign-on/user-authentication-infos) ob...
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 together. You can...
Products added to a cart are referred to as a `cart_item`.
A Cart contains the product and custom cart items that a user intends to purchase. After a Cart is ready for Checkout, you can use the [Checkout endpoint](/docs/api/carts/checko...
The Cart Payments API from Elastic Path — 1 operation(s) for cart payments.
Use Cart Settings to configure cart behavior for your store, including cart expiry, custom discounts, rule promotions, deferred inventory checks, and cart visibility for admins.
The Cart Shipping Groups API from Elastic Path — 2 operation(s) for cart shipping groups.
A catalog contains the products available for sale either in your organization or store. A catalog also contains information about how to organize those products for navigation ...
The checkout workflow ties together many of the key concepts covered in this section. When a customer initiates the checkout process, an order is created from the cart. The orde...
:::caution - There is a hard limit of 10 currencies per store. :::
A **Custom API Entry** is a specific instance of a resource, such as a single wishlist in a Custom API for wishlists. Custom API Entries can be accessed in two different ways, v...
A Custom API Role Policy defines the level of access a role has to a Custom API. By default, administrative roles like **Store Admin** or **Org Admin** have full access to all C...
Custom APIs allow you to extend the capabilities of Commerce. With Custom APIs, you can efficiently manage large data sets while benefiting from both simple and complex multidim...
With custom discounts, you can allow your shoppers to apply discounts from external services to their purchases. To apply custom discounts to carts and cart items, you need to s...
A Custom Field represents a single field of data (for example a Product Rating). A Custom API is composed of one or more Custom Fields. Here is a comparison of different types a...
The Custom Relationships API from Elastic Path — 2 operation(s) for custom relationships.
The API to organize customer addresses.
You can create associations between a customer and one or more carts. After cart associations exist for a customer, those carts are accessible across any device. You can delete ...
Dunning is the process of handling failed payment attempts. This is important for recovering revenue from failed payments, reduces customer churn and maintains cashflow. By impl...
### Entries in Commerce Entries hold the pieces of data collected within the fields. If your flow has more than one field related to it, you see multiple field slugs. ### Entrie...
### Entry Relationships in Commerce When you create a field that uses `relationship` as a `field_type`, you update your entry values using the `Entry Relationship` endpoints. ##...
```mdx-code-block import TemplatesOverview from '/docs/partials/pxm/templates/extendingproducts.mdx'; ```
A feature indicates some benefit that is received as a result of having an active subscription. This translates to tags being applied to the subscriber's account allowing access...
With fields, you can: - in Commerce, use a field in your flows to represent single field of data (for example a `Product Rating`) to be applied to an entity - in Product Experie...
You can upload image files or URLs by using `multipart/form-data` as the content type header. For example, `"Content-Type: multipart/form-data" \`. Commerce supports the followi...
### Flows in Commerce There are two scenarios for using flows: - Extend an existing resource, such as customers and orders. - Create a new resource, such as a blog, wishlist, or...
The Gateways API from Elastic Path — 12 operation(s) for gateways.
The Generate an Access Token API from Elastic Path — 1 operation(s) for generate an access token.
```mdx-code-block import HierarchyOverview from '/docs/partials/pxm/hierarchies/hierarchies.mdx'; import HierarchyCatalog from '/docs/partials/pxm/hierarchies/hierarchycatalogs....
You can create and update product price books and prices in bulk, at both organization and store level, using the Price Book Import API. This is useful, for example, if you have...
You can import stock positions for up to 50,000 products in a single operation via an import. This is useful for synchronosing external systems with Elastic Path. The API uses a...
Indexable Fields allow you to extend and fine-tune the search schema. By default, the search index includes all the core product fields like name, description, SKU, slug etc. In...
Setting up and managing integrations.
The Inventory API allows you to manage stock for products at both organization and store levels. Each product keeps a history of inventory transactions, enabling easier stock au...
Invoices represent the amount a customer owes for a subscription. Elastic Path Subscriptions generates an invoice for every period in a subscription billing cycle. Invoices prov...
Jobs manage the indexing operations for catalog search. When catalogs are published or when reindexing is required, jobs process the product data and build search indexes. ### J...
The Locations API from Elastic Path — 2 operation(s) for locations.
You can use the Logs TTL Settings endpoint to retrieve and update settings controlling logs time-to-live (TTL).
The Merchant Realm Mappings API from Elastic Path — 2 operation(s) for merchant realm mappings.
An offering is a combination of plans and pricing options; plans are combined with one or more pricing options to form an offering. For example, your company provides online str...
The OIDC IDP Login endpoints handle the initiation of OpenID Connect authentication flows. When a user needs to authenticate via OIDC, they are redirected to these endpoints whi...
An OpenID Connect Profile resource represents a specific configuration of an OpenID Connect Provider. An authentication realm can have multiple OpenID Connect Profiles. This all...
The Order Shipping Groups API from Elastic Path — 2 operation(s) for order shipping groups.
An Order is created through the [checkout](/docs/api/carts/checkout) endpoint within the Carts API. An order is created after a customer checks out their cart. On creation, the ...
A `password_profile` resource represents a specific configuration that allows users to authenticate through username and password. Password Profiles support One-Time Password To...
When you [checkout](/docs/api/carts/checkout) a [cart](/docs/api/carts/cart-management), an unpaid [order](/docs/api/carts/orders) is returned. You can process the payment for t...
Erasure requests enable you to exercise the right, referred to in regulations such as GDPR, as the right to be forgotten or right to erase. Erasure requests allow you to wipe ou...
When a user’s personal data is changed, an event is logged by Commerce. You can use the Personal Data Logs endpoint to access these logs. This API is read only, and you cannot a...
This is a supplementary endpoint for the [logs](/docs/api/personal-data/logs-time-to-live-settings) endpoint. It allows you to view all data entries that are related to the reso...
You can use price modifiers to change the price property of child products. By default, child products inherit the same price as their base products. Using price modifiers, you ...
Price books contain prices for the products in your catalog. Each catalog must have one price book. In your storefront, the product prices are displayed in the currency for the ...
Price books contain prices for the products in your catalog. Use the Price Books API to create price books and add product prices to the price book. ### Volume (tiers) Pricing U...
```mdx-code-block import ProductExport from '/docs/partials/pxm/import/export.mdx'; ``` ### Characteristics of Exporting Products - Product exports are an asyn...
Products are the items or services that you might want to sell in your store. In Product Experience Manager, products can also have associated rich media assets, such as product...
Products are the items or services that you might want to sell in your store. In Product Experience Manager, products can also have associated rich media assets, such as product...
```mdx-code-block import ProductImport from '/docs/partials/pxm/import/import.mdx'; ``` #### Using Imported Main Image Files You can use the main images that y...
The Product Relationships API from Elastic Path — 3 operation(s) for product relationships.
```mdx-code-block import ProductTags from '/docs/partials/pxm/products/tags.mdx'; ```
```mdx-code-block import ProductsOverview from '/docs/partials/pxm/products/productsoverview.mdx'; import ProductTypes from '/docs/partials/pxm/products/types.mdx'; import Produ...
You can apply promotions automatically to all customer carts, or you can create promotion codes that customers must enter to receive the discount. You can enable this feature by...
Use Jobs API to initiate a job within a promotion. Jobs operate asynchronously and have a different status based on their progress. The following are the job statuses: - `pendin...
The Promotions Standard API from Elastic Path — 3 operation(s) for promotions standard.
Proration is the adjustment of charges or credits on a subscriber's account based on the amount of time a service is used. Proration ensures that subscribers are only charged fo...
When a catalog is published, a catalog release is created. A catalog release provides a snapshot of the product information taken at the time of publication. You can have one or...
The Rule Promotion Codes API from Elastic Path — 2 operation(s) for rule promotion codes.
The Rule Promotion Jobs API from Elastic Path — 3 operation(s) for rule promotion jobs.
The Rule Promotion Usages API from Elastic Path — 3 operation(s) for rule promotion usages.
The Rule Promotions API from Elastic Path — 2 operation(s) for rule promotions.
If your store requires multiple catalogs, add catalog rules to control when a catalog is displayed. A catalog rule contains a catalog plus the criteria under which to display th...
You can schedule your billing, tax, and payment runs. By scheduling billing, tax, and payment runs, you automate the process, reducing manual intervention and ensuring the jobs ...
The Search API enables you to search for products in your published catalogs. Search provides powerful capabilities including full-text search, filtering, faceting, and sorting ...
Search Indexes represent the indexed data for your catalog releases. Each time a catalog is published with search enabled, a search index is created containing the product data ...
Search Profiles are configuration objects that control how search queries are executed. They provide a powerful way to customize search relevance, filtering, and ranking without...
The Searchable Fields API returns a list of all fields available for searching, filtering, faceting, and sorting in your search queries. This includes both the standard product ...
The Settings API allow you to configure global settings for your project.
Use the Shopper Catalog View API to retrieve hierarchy, node and product information for a catalog release. When you publish a catalog for a store, you can define catalog rules ...
Standard Shopper Roles represent the roles of customers.
Standard User Roles represent the roles that can be assigned to users through Commerce Manager. These roles define the level of access a user has to Commerce Manager.
Stopword Sets allow you to define sets of common words (such as "the", "a", "an", "is") that should be ignored during search queries. By removing these low-value terms from sear...
A subscriber is someone who subscribes to your plan or service.
Elastic Path Subscriptions enables you to manage your subscriptions plans and pricing options, using offerings. Offerings can contain any combination of pricing options and a pl...
Synonym Sets allow you to define groups of equivalent or related terms so that searches for one term also return results for its synonyms. This helps shoppers find products rega...
Taxes differ by country and can differ within the country by region, state, or province. Each jurisdiction has a unique tax code and rate. If your store serves many jurisdiction...
Methods to allow you to modify and view a products stock via transactions.
A `user-authentication-info` represents a user. This object contains information, such as the name and email address, and has sub-resources for each mechanism that the user can ...
The `user-authentication-oidc-profile-info` object is the information object about the relationship between a [User Authentication Info](/docs/api/single-sign-on/user-authentica...
The `user-authentication-password-profile-info` object is the information object about the relationship between a [User Authentication Info](/docs/api/single-sign-on/user-authen...
```mdx-code-block import VariationsOverview from '/docs/partials/pxm/variations/variationsoverview.mdx'; import VariationsReusability from '/docs/partials/pxm/variations/variati...
GraphQL schemas published by this provider.
Published pricing tiers and plan structures.
Documented rate limits and quota policies.
Cost, billing, and metering signals for API financial operations.
Spectral governance rulesets for linting and validating these APIs.
Standalone JSON Schema definitions for this provider's data models.
Example request and response payloads for these APIs.
Authentication, domain security, vulnerability disclosure, and trust-center signals.
Recommended x-agentic-access execution contracts for AI agents.
aid: elastic-path
name: Elastic Path
description: Elastic Path is a headless commerce platform providing REST and GraphQL APIs for managing catalogs, products,
price books, promotions, carts, orders, subscriptions, payments, and customer accounts in composable commerce architectures.
It is designed for B2B, D2C, and multi-brand enterprise retailers building API-first, microservices-based shopping experiences.
accessModel:
pricing: unknown
onboarding: self-serve
trial: false
try_now: false
public: false
label: Self-serve signup
confidence: medium
source:
- authentication
generated: '2026-07-22'
method: derived
image: https://kinlane-images.s3.amazonaws.com/shared/apis-json/icons/elastic-path.png
url: https://raw.githubusercontent.com/api-evangelist/elastic-path/refs/heads/main/apis.yml
created: 2026-06-13
modified: 2026-06-13
specificationVersion: '0.19'
tags:
- Commerce
- Headless Commerce
- Composable Commerce
- eCommerce
- B2B
- Products
- Catalogs
- Orders
- Promotions
- Subscriptions
- Payments
apis:
- aid: elastic-path:graphql-api
name: Elastic Path GraphQL API
description: GraphQL abstraction over a subset of the Elastic Path Commerce Cloud APIs, providing a flexible query interface
optimized for shopper-facing experiences including product browsing and catalog queries.
image: https://kinlane-images.s3.amazonaws.com/shared/apis-json/apis-json-logo.jpg
humanURL: https://www.elasticpath.com/technologies/graphql-ecommerce
baseURL: https://useast.api.elasticpath.com
tags:
- Commerce
- GraphQL
- Catalogs
- Products
- Storefront
properties:
- type: Documentation
url: https://www.elasticpath.com/technologies/graphql-ecommerce
- type: GitHubRepository
url: https://github.com/elasticpath/elasticpath-graphql-server
- url: graphql/elastic-path-graphql.md
type: GraphQL
- url: graphql/elastic-path-schema.graphql
type: GraphQLSchema
- aid: elastic-path:elastic-path-account-addresses-api
name: Elastic Path Account Addresses API
description: The API to organize account addresses.
humanURL: https://developer.elasticpath.com/api
baseURL: https://useast.api.elasticpath.com
tags:
- Account Addresses
properties:
- type: OpenAPI
url: openapi/elastic-path-account-addresses-api-openapi.yml
- type: Documentation
url: https://developer.elasticpath.com/api
- aid: elastic-path:elastic-path-account-authentication-settings-api
name: Elastic Path Account Authentication Settings API
description: You can use the Account Authentication Settings endpoint to retrieve or modify how settings controlling account
and account member authentication.
humanURL: https://developer.elasticpath.com/api
baseURL: https://useast.api.elasticpath.com
tags:
- Account Authentication Settings
properties:
- type: OpenAPI
url: openapi/elastic-path-account-authentication-settings-api-openapi.yml
- type: Documentation
url: https://developer.elasticpath.com/api
- aid: elastic-path:elastic-path-account-cart-associations-api
name: Elastic Path Account Cart Associations API
description: 'You can create associations between an account and one or more carts. After cart associations exist for an
account, those carts are accessible across any device. You can delete associations as required.
There are two ways to access the cart: with an [Account Management Authentication Tokens](/docs/api/accounts/post-v-2-account-members-tokens)
and without one.
### With an `Account Management Authentication` token
These endpoints are for users who authenticated implicitly and require an Account Management Authentication token in the
header to access the account cart associations APIs. For more information, see the [Account Token](/docs/api/accounts/post-v-2-account-members-tokens)
documentation.
#### Cart creation
Shoppers create carts and can use any of the carts that they created to check out an order.
:::note
You can create a cart id, name, and description for the cart. The cart requires a name. Ensure that the string length
is greater than or equal to one. Use any symbol in the name and description. For cart id, ensure that you follow the guidelines
for safe characters. For more information about cart id naming requirements, see [Safe Characters](/guides/Getting-Started/safe-characters).
:::
### Without an `Account Management Authentication` token
These endpoints are for users who use the Client Credentials Token and do not require an account management authentication
token in the header to access the account cart associations APIs. For more information, see the [Authentication](/docs/authentication/security)
documentation.
This user acts as a system administrator and can call any account cart association operations for any account and cart.
### Error Codes
You might encounter the following response codes, depending on the scenario:
* `400` - `The type does not exist or is not listed as account` - Ensure that the type is `account` and is present.
* `403` - `Cannot associate more than one account`.
* `403` - `Account does not have the required permissions to fulfill this request`.
* `403` - `Invalid json payload` - Check JSON input. The request body must be an array `[]`. If the request body is an
object, the error is generated.'
humanURL: https://developer.elasticpath.com/api
baseURL: https://useast.api.elasticpath.com
tags:
- Account Cart Associations
properties:
- type: OpenAPI
url: openapi/elastic-path-account-cart-associations-api-openapi.yml
- type: Documentation
url: https://developer.elasticpath.com/api
- aid: elastic-path:elastic-path-account-management-authentication-api
name: Elastic Path Account Management Authentication API
description: Commerce provides authentication tokens for an `Account` and an `Account Member`.
humanURL: https://developer.elasticpath.com/api
baseURL: https://useast.api.elasticpath.com
tags:
- Account Management Authentication
properties:
- type: OpenAPI
url: openapi/elastic-path-account-management-authentication-api-openapi.yml
- type: Documentation
url: https://developer.elasticpath.com/api
- aid: elastic-path:elastic-path-account-members-api
name: Elastic Path Account Members API
description: 'An `Account Member` resource is a user that you can add to accounts using account memberships.
Account members API is read only, and you cannot add users using this API. There is a 1 to 1 correspondence between User
Authentication Info and an Account Member, the corresponding objects have the same id. You must use the `user_authentication_info`
object to create users in the authentication realm of account authentication settings. For more information on adding
account members, see the [Adding Accounts and Account Members](/guides/How-To/Accounts/add-account-and-member) section.'
humanURL: https://developer.elasticpath.com/api
baseURL: https://useast.api.elasticpath.com
tags:
- Account Members
properties:
- type: OpenAPI
url: openapi/elastic-path-account-members-api-openapi.yml
- type: Documentation
url: https://developer.elasticpath.com/api
- aid: elastic-path:elastic-path-account-membership-api
name: Elastic Path Account Membership API
description: The `Account Membership` resource represents the relationship between an account and an account member. This
relationship is many to many. Each account can have multiple account members, and each account member can be a member
of multiple accounts.
humanURL: https://developer.elasticpath.com/api
baseURL: https://useast.api.elasticpath.com
tags:
- Account Membership
properties:
- type: OpenAPI
url: openapi/elastic-path-account-membership-api-openapi.yml
- type: Documentation
url: https://developer.elasticpath.com/api
- aid: elastic-path:elastic-path-account-membership-settings-api
name: Elastic Path Account Membership Settings API
description: 'Account Membership Settings allow Account Members to be associated to, at most, N accounts at a time. You
can set this value to any number up to 10,000. The default value is 10,000.
This setting is only applied to new account memberships. If an account member is added to 3 accounts, and the setting
is reduced to 1, the account member remains in the 3 accounts and can no longer be added to more.'
humanURL: https://developer.elasticpath.com/api
baseURL: https://useast.api.elasticpath.com
tags:
- Account Membership Settings
properties:
- type: OpenAPI
url: openapi/elastic-path-account-membership-settings-api-openapi.yml
- type: Documentation
url: https://developer.elasticpath.com/api
- aid: elastic-path:elastic-path-account-tags-api
name: Elastic Path Account Tags API
description: Account Tags are custom labels or metadata that can be attached to accounts to help organize and filter them
based on specific attributes or criteria.
humanURL: https://developer.elasticpath.com/api
baseURL: https://useast.api.elasticpath.com
tags:
- Account Tags
properties:
- type: OpenAPI
url: openapi/elastic-path-account-tags-api-openapi.yml
- type: Documentation
url: https://developer.elasticpath.com/api
- aid: elastic-path:elastic-path-accounts-api
name: Elastic Path Accounts API
description: An Account represents the entity that participates in a Commerce transaction. Accounts can have Carts, Orders,
Subscriptions, and Addresses.
humanURL: https://developer.elasticpath.com/api
baseURL: https://useast.api.elasticpath.com
tags:
- Accounts
properties:
- type: OpenAPI
url: openapi/elastic-path-accounts-api-openapi.yml
- type: Documentation
url: https://developer.elasticpath.com/api
- aid: elastic-path:elastic-path-administrator-latest-releases-catalog-api-api
name: Elastic Path Administrator Latest Releases Catalog API API
description: 'Use the Administrator Latest Releases Catalog View API to retrieve product, hierarchy and node information.
:::danger
The Administrator Latest Releases Catalog View API is for Administrator use only. Do not use these endpoints on your customer-facing
frontends.
:::
Publishing a catalog creates a release of that catalog that you can use in an organization or in a specific store or other
shopper experience. You can retrieve the hierarchies, nodes, and the `live` products associated with a catalog release.
You can see which parent nodes a product is associated with. This is useful if want to improve how your shoppers search
your store, for example.
Currently, published catalogs are limited to the current release and two releases prior to the current release.'
humanURL: https://developer.elasticpath.com/api
baseURL: https://useast.api.elasticpath.com
tags:
- Administrator Latest Releases Catalog API
properties:
- type: OpenAPI
url: openapi/elastic-path-administrator-latest-releases-catalog-api-api-openapi.yml
- type: Documentation
url: https://developer.elasticpath.com/api
- aid: elastic-path:elastic-path-application-keys-api
name: Elastic Path Application Keys API
description: You can use application keys to generate `client_credentials` and `implicit` tokens.
humanURL: https://developer.elasticpath.com/api
baseURL: https://useast.api.elasticpath.com
tags:
- Application Keys
properties:
- type: OpenAPI
url: openapi/elastic-path-application-keys-api-openapi.yml
- type: Documentation
url: https://developer.elasticpath.com/api
- aid: elastic-path:elastic-path-authentication-realms-api
name: Elastic Path Authentication Realms API
description: "An authentication realm is a container that consists of the following:\n\n - Users - Represented by [User\
\ Authentication Info](/docs/api/single-sign-on/user-authentication-infos)\nobjects\n - Authentication profiles - Ways\
\ for the users to authenticate, such as one or more [OpenID Connect\nProfiles](/docs/api/single-sign-on/oidc-profiles)\
\ or [Password Profiles](/docs/api/single-sign-on/password-profiles)\n - Mappings between users and authentication profiles\
\ - [User Authentication OpenID Connect Profile\nInfo](/docs/api/single-sign-on/user-authentication-oidc-profile-infos)\
\ or [User Authentication Password Profile Infos](/docs/api/single-sign-on/user-authentication-password-profile-infos)\n\
Here's a domain diagram showing these relationships\n\n\
\nComposable Commerce comes with three per-store pre-set realms:\n - Buyer Organization. For customers: users who buy\
\ products from your store.\n - Merchant Organization. For administrators: users who log in to Commerce Manager to modify\
\ the\nstore’s settings or catalog.\n - Account Management Realm. For account members: users who buy products from your\
\ store on behalf\nof accounts. Password profiles are only available for account management realm."
humanURL: https://developer.elasticpath.com/api
baseURL: https://useast.api.elasticpath.com
tags:
- Authentication Realms
properties:
- type: OpenAPI
url: openapi/elastic-path-authentication-realms-api-openapi.yml
- type: Documentation
url: https://developer.elasticpath.com/api
- aid: elastic-path:elastic-path-bundle-component-products-relationships-api
name: Elastic Path Bundle Component Products Relationships API
description: '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 together.
You can create multiple components within a bundle. Each component must have at least one or more options. Each option
is a product and a quantity.'
humanURL: https://developer.elasticpath.com/api
baseURL: https://useast.api.elasticpath.com
tags:
- Bundle Component Products Relationships
properties:
- type: OpenAPI
url: openapi/elastic-path-bundle-component-products-relationships-api-openapi.yml
- type: Documentation
url: https://developer.elasticpath.com/api
- aid: elastic-path:elastic-path-cart-items-api
name: Elastic Path Cart Items API
description: Products added to a cart are referred to as a `cart_item`.
humanURL: https://developer.elasticpath.com/api
baseURL: https://useast.api.elasticpath.com
tags:
- Cart Items
properties:
- type: OpenAPI
url: openapi/elastic-path-cart-items-api-openapi.yml
- type: Documentation
url: https://developer.elasticpath.com/api
- aid: elastic-path:elastic-path-cart-management-api
name: Elastic Path Cart Management API
description: 'A Cart contains the product and custom cart items that a user intends to purchase. After a Cart is ready for
Checkout, you can use the [Checkout endpoint](/docs/api/carts/checkout) to convert the cart to an order.
:::note
- Adding, modifying, or removing any cart items, custom items, or promotions always returns the cart meta, calculated
using the calculation method. This is useful to update the client with up-to-date totals.
- We will automatically delete carts 7 days after they were last updated.
- If you do not pass a `X-MOLTIN-CURRENCY` header specifying what currency you would like the cart to use, the products
in the cart are converted to your default currency.
:::'
humanURL: https://developer.elasticpath.com/api
baseURL: https://useast.api.elasticpath.com
tags:
- Cart Management
properties:
- type: OpenAPI
url: openapi/elastic-path-cart-management-api-openapi.yml
- type: Documentation
url: https://developer.elasticpath.com/api
- aid: elastic-path:elastic-path-cart-payments-api
name: Elastic Path Cart Payments API
description: The Cart Payments API from Elastic Path — 1 operation(s) for cart payments.
humanURL: https://developer.elasticpath.com/api
baseURL: https://useast.api.elasticpath.com
tags:
- Cart Payments
properties:
- type: OpenAPI
url: openapi/elastic-path-cart-payments-api-openapi.yml
- type: Documentation
url: https://developer.elasticpath.com/api
- aid: elastic-path:elastic-path-cart-settings-api
name: Elastic Path Cart Settings API
description: Use Cart Settings to configure cart behavior for your store, including cart expiry, custom discounts, rule
promotions, deferred inventory checks, and cart visibility for admins.
humanURL: https://developer.elasticpath.com/api
baseURL: https://useast.api.elasticpath.com
tags:
- Cart Settings
properties:
- type: OpenAPI
url: openapi/elastic-path-cart-settings-api-openapi.yml
- type: Documentation
url: https://developer.elasticpath.com/api
- aid: elastic-path:elastic-path-cart-shipping-groups-api
name: Elastic Path Cart Shipping Groups API
description: The Cart Shipping Groups API from Elastic Path — 2 operation(s) for cart shipping groups.
humanURL: https://developer.elasticpath.com/api
baseURL: https://useast.api.elasticpath.com
tags:
- Cart Shipping Groups
properties:
- type: OpenAPI
url: openapi/elastic-path-cart-shipping-groups-api-openapi.yml
- type: Documentation
url: https://developer.elasticpath.com/api
- aid: elastic-path:elastic-path-catalogs-api
name: Elastic Path Catalogs API
description: 'A catalog contains the products available for sale either in your organization or store. A catalog also contains
information about how to organize those products for navigation menus and search facets in a shopper experience.
Before you create a catalog you must define the following resources:
- Hierarchies: hierarchies and nodes to categorize the products. See [**Hierarchies**](/docs/api/pxm/products/hierarchies).
- Products: product information, associated assets, and links to hierarchy nodes. See [**Products**](/docs/api/pxm/products/products).
- Price Books: prices for the products associated with the hierarchies. See [**Price Books**](/docs/api/pxm/pricebooks).
A catalog is a combination of hierarchies and a price book.
### Products
Commerce automatically assigns types to the products you create. Product types can be used in catalogs. For example, in
your catalog, you can filter on `parent` so that only your parent products are displayed in your storefront.
You can use product tags to store or assign a key word against a product or service that you sell in your store. The product
tag can then be used to describe or label that product. Product tags represent similarities between products who do not
share the same attributes. Using product tags means that you can group your products together, for example, by brand,
category, subcategory, colors, types, industries, and so on. Product tags can be used in catalogs. For example, you can
categorize your products based on color. Your shoppers can then search your products by color, enabling shoppers to quickly
find what they are looking for, increasing the likelihood of a purchase, and boosting conversion rates.
### Hierarchies
The hierarchies determine which products appear in the catalog, that is, only the products that are associated with the
selected hierarchies are included in the catalog. You can also specify the order you want your hierarchies to display
in a published catalog. You can order your hierarchies on a catalog-by-catalog basis.

For more information, see [**create a Catalog**](/docs/api/pxm/catalog/create-catalog).
#### Understanding How Products And Nodes Are Associated
You can use `breadcrumb` metadata to understand how products and nodes are associated. it explains how products are associated
with parent nodes and the relationship among the array of nodes. This is useful if you want to improve how your shoppers
search within your store.
The `breadcrumb` information that you get in an endpoint response depends on whether the endpoint is retrieving product
or node details.
| Object | Product/Node | Description |
| --- | --- | --- |
| `breadcrumb` | Node | A list of nodes that a product is associated with. Up to 10 levels of nodes are displayed, depending
on the number of levels of nodes you have. |
| `bread_crumbs` | Product | The relationship among the array of nodes a product is associated with, demonstrating the
linking of the children nodes with the parent nodes. Up to 10 levels of nodes are displayed, depending on the number of
levels of nodes you have. |
| `bread_crumb_nodes` | Product | An array of parent node IDs that a product is associated with. The `bread_crumb_node`
metadata lists up to 10 levels of parent nodes, depending on the number of levels of parent nodes you have. |
#### Understanding `bread_crumbs` Metadata
The following diagram illustrates a parent and child nodes.

1. The product is in **Node 2**. The ID for **Node 2** is shown first in the first set of breadcrumbs.
1. **Node 2** is part of **Hierarchy 1**. The ID for **Hierarchy 1** is shown second.
1. **Node 1** is the parent node of **Node 2**. The ID for **Node 1** is shown last.
1. The product is also in **Node 3**. The ID for **Node 3** is shown first in the second set of breadcrumbs.
1. **Node 3** is in the root of **Hierarchy 1**. The ID for **Hierarchy 1** is shown last.
In the `bread_crumb_nodes` metadata, you can see a list of parent nodes a product is associated with.
If you subsequently add a product to a new node, then the `bread_crumb_nodes` metadata appends the new node to the top
of the list. Using the example above, if we add the product to **Node 1**:
1. The `bread_crumb_nodes` metadata is generated to show the new node appended to the top of the list.
1. The `bread_crumbs` metadata is updated with the new node.
#### Understanding Breadcrumb Metadata for Child Products
When a catalog is published, the breadcrumb information for a child product includes the metadata mentioned for the parent
product, in addition to the information specific to the child product. For example, **Product A** is the parent product,
associated with **Node 1** and **Node 2**. The metadata for child **Product B** includes **Node 1** and **Node 2**, in
addition to its own metadata information.
### Nodes
The nodes determine which products appear under this in the catalog, that is, only the products that are associated with
the selected node are shown under this node.
### Price books
A price book contains the prices for each of the products in the catalog. You can create multiple price books for different
scenarios, such as seasonal sales, business versus retail customer pricing, and reward programs. When creating a catalog,
you can specify up to five price books. You must set a priority for your price books. Product prices are displayed in
the catalog according to the priority of the price books. See [Create a catalog](/docs/api/pxm/catalog/create-catalog).'
humanURL: https://developer.elasticpath.com/api
baseURL: https://useast.api.elasticpath.com
tags:
- Catalogs
properties:
- type: OpenAPI
url: openapi/elastic-path-catalogs-api-openapi.yml
- type: Documentation
url: https://developer.elasticpath.com/api
- aid: elastic-path:elastic-path-checkout-api
name: Elastic Path Checkout API
description: "The checkout workflow ties together many of the key concepts covered in this section. When a customer initiates\
\ the checkout process, an order is created from the cart. The order is incomplete until after a successful payment is\
\ made. A complete order can be shipped and the product deducted from inventory counts.\n\n\n\
\n### Summary of the checkout workflow\n\n1. Add a product to a cart. A cart and its reference number is generated.\n\
2. Manage the cart items. For example, you might add items, remove items, and change quantities.\n3. Check out the cart.\
\ An incomplete order is created.\n4. Pay for an order: provide billing and shipping details, if you are a new customer.\
\ The order is now in the processing status.\n5. If using a manual gateway, after you authorize and capture it, Composable\
\ Commerce considers the order complete. If you use a third-party integration supported by Composable Commerce (such as\
\ Stripe), after the third-party gateway authorizes and captures the payment, the order becomes complete. Usually capture\
\ does not occur at the same time as authorization. For more information, see the Capture section.\n6. After the order\
\ is shipped, you can manually flag it as fulfilled.\n\n### Carts\n\nWhen a product is added to a cart, a cart is generated\
\ together with its unique reference ID that on checkout becomes a part of the order ID. If you are using our JavaScript\
\ software development kit, generating a cart reference ID is done for you; otherwise, add a cart reference generator\
\ to your functionality.\n\n### Promotions and custom items\n\nOptionally, apply a promotion code on a cart, or add custom_items\
\ to modify the product price (typically to handle taxes, customs, or shipping).\n\n### Checkout\n\nYou can checkout a\
\ cart with an associated customer name and email (customer object). Typically, this would be used for new customers or\
\ ones that prefer to shop as guests. Use the `customer.id` checkout option to checkout for an existing customer. After\
\ a successful checkout is completed, the response contains an order.\n\nEmail addresses that either begin or end with\
\ a period, or contain consecutive periods, are considered invalid, resulting in the following error:\n```json\n\"errors\"\
: [\n {\n \"status\": 400,\n \"source\": \"data.customer.email\",\n \"title\": \"format\",\n \"detail\"\
: \"Does not match format 'email'\"\n }\n]\n ```\n\n### Payments\n\nOn checkout, an incomplete order is created. You\
\ can then use a third-party integration to handle your payment gateway. If the payment gateway is supported by Composable\
\ Commerce, such as Stripe, the payment is processed externally but handled internally. When a successful validation is\
\ returned, Composable Commerce flags the order as complete.\n\nIf you are using a payment method not officially supported\
\ by Composable Commerce, the gateway needs to be implemented and handled manually. After the payment has been authorized\
\ and captured either through Commerce Manager or API, the status of an order becomes complete.\n\n### Shipping\n\nThe\
\ status of an order and the status of shipping are handled separately, and so an order can be complete but not shipped.\
\ Orders that have not been shipped yet have a status of unfulfilled. This flag is generated automatically by Composable\
\ Commerce when an order is created. Currently, you can only update the shipping status manually, through the API. After\
\ the order is shipped, flag its shipping status as fulfilled.\n\n### Inventory\n\nIf enabled, you can manage your stock.\
\ As such, your stock is automatically updated as soon as a product is checked out."
humanURL: https://developer.elasticpath.com/api
baseURL: https://useast.api.elasticpath.com
tags:
- Checkout
properties:
- type: OpenAPI
url: openapi/elastic-path-checkout-api-openapi.yml
- type: Documentation
url: https://developer.elasticpath.com/api
- aid: elastic-path:elastic-path-currencies-api
name: Elastic Path Currencies API
description: ':::caution
- There is a hard limit of 10 currencies per store.
:::'
humanURL: https://developer.elasticpath.com/api
baseURL: https://useast.api.elasticpath.com
tags:
- Currencies
properties:
- type: OpenAPI
url: openapi/elastic-path-currencies-api-openapi.yml
- type: Documentation
url: https://developer.elasticpath.com/api
- aid: elastic-path:elastic-path-custom-api-entries-api
name: Elastic Path Custom API Entries API
description: "A **Custom API Entry** is a specific instance of a resource, such as a single wishlist in a Custom API for\
\ wishlists.\n\nCustom API Entries can be accessed in two different ways, via the **extension** endpoint, or the **settings**\
\ endpoint:\n\n* Extension Endpoint: `/v2/extensions/{custom-api-slug}` - This is the primary endpoint created for use.\
\ Most clients should use this endpoint as it adheres to the semantics of the configuration. Retrieve the [OpenAPI Specifications](/docs/api/commerce-extensions/get-open-api-specification)\
\ to learn how to interact with this endpoint.\n* Settings Endpoint: `/v2/settings/extensions/custom-apis/{custom-api-id}/entries/`\
\ - This endpoint should only be used in cases where you want to interact with your Custom APIs in a generic way in an\
\ admin capacity.\n\nCurrently, the distinction between these endpoints is minimal. The extension endpoint uses a slug\
\ in the URL path, and the settings endpoint uses an ID. For most use cases involving the new Custom API, we recommend\
\ using the extension endpoint.\n\nConceptually, the settings endpoint is analogous to reflection in most programming\
\ languages. You use it when you want to operate in a generic way. For example, we used the settings endpoint to build\
\ Commerce Manager. Another example is if you need to import and export various types of data from CSV files. Instead\
\ of writing multiple scripts for different extension endpoints, you can write one script that operates on the settings\
\ endpoint.\n\n## Events\n\nYou can integrate Commerce Extensions with your external systems by observing the appropriate\
\ events. For more information, see [Integrations](/docs/api/integrations/integrations-introduction).\n\nGiven you have\
\ a Custom API with `api_type` of `wishlist_ext` and you want to perform additional processing when an action is taken,\
\ like when a wishlist is created:\n\n```bash\ncurl -X POST https://useast.api.elasticpath.com/v2/extensions/wishlists\
\ \\\n -H \"Authorization: Bearer XXXX\" \\\n -H \"Content-Type: application/json\" \\\n -d $ {\n \"data\": {\n\
\ \"type\": \"wishlist_ext\",\n \"name\": \"My Wishlist\",\n \"items_count\": 0,\n \"keep_purchased\"\
: false\n }\n }\n```\n\nWhen you [create an integration](/docs/api/integrations/create-integration) with `wishlist_ext.created`\
\ in `observes` field.\nThen the configured `webhook` or `aws_sqs` will receive the appropriate message.\n\nYou can configure\
\ integrations to observe the following events for your Custom API Entries:\n* Created\n* Updated\n* Deleted"
humanURL: https://developer.elasticpath.com/api
baseURL: https://useast.api.elasticpath.com
tags:
- Custom API Entries
properties:
- type: OpenAPI
url: openapi/elastic-path-custom-api-entries-api-openapi.yml
- type: Documentation
url: https://developer.elasticpath.com/api
- aid: elastic-path:elastic-path-custom-api-role-policies-api
name: Elastic Path Custom API Role Policies API
description: 'A Custom API Role Policy defines the level of access a role has to a Custom API. By default, administrative
roles like **Store Admin** or **Org Admin** have full access to all Custom APIs. To grant access to other roles, a policy
must be created for that specific role and Custom API.
Below are the permissions that can be assigned to a role:
| Permission | Description |
|------------|------------------------------------------|
| **Create** | Create a Custom API Entry. |
| **List** | Retrieve a list of Custom API Entries. |
| **Read** | Get a Custom API Entry. |
| **Update** | Update a Custom API Entry. |
| **Delete** | Delete a Custom API Entry. |'
humanURL: https://developer.elasticpath.com/api
baseURL: https://useast.api.elasticpath.com
tags:
- Custom API Role Policies
properties:
- type: OpenAPI
url: openapi/elastic-path-custom-api-role-policies-api-openapi.yml
- type: Documentation
url: https://developer.elasticpath.com/api
- aid: elastic-path:elastic-path-custom-apis-api
name: Elasti
# --- truncated at 32 KB (224 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/elastic-path/refs/heads/main/apis.yml