Skip to main content

Get all products

GET 

/pcm/products

Retrieves a list of all your products in the Product Experience Manager system.

You can also use include to retrieve top-level resources, such as files or images, and key attribute data, such as SKU or slug for component products in a product bundle. With this option, you can get more information about the products in a product bundle in your store front, improving the buying experience for your shoppers.

Pagination

This endpoint supports offset-based pagination using page[offset] and page[limit] query parameters.

Planned pagination changes — on or after 1 June 2026

The pagination links returned by this endpoint currently differ from the Elastic Path Commerce Cloud platform standard. Specifically, the current link is not returned, first/last are not always present, prev is incorrectly omitted on the second page, and next is incorrectly omitted on the second-to-last page.

On or after 1 June 2026, this endpoint will be updated so that current and first are always present, last is present on every page except the final page, next is present on every page except the last, and prev is present on every page except the first. See the links schema for full details.

If your integration iterates through pages using these links, please verify that it will handle the updated behaviour correctly before this date.

Filtering

Many Commerce API endpoints support filtering. The general syntax is described in Filtering.

The following attributes and operators are supported.

OperatorAttributeDescriptionExample
eqid, sku, slug, upc_ean, manufacturer_part_num, name, templates, commodity_type, owner, product_types, parent_id, tags, status, has_nodes (false only), created_at, updated_at, external_ref, descriptionEquals. Checks if the values of two operands are equal. If they are, the condition is true. For product_types, you can only specify one product type. Note: has_nodes can only be filtered as false.?filter=eq(name,some-name)
likesku, slug, upc_ean, manufacturer_part_num, name, tags, description, external_refLike. Checks if the operand contains the specified string. Wildcards are supported.?filter=like(name,*some-name*)
inid, name, sku, slug, upc_ean, manufacturer_part_num, product_types, parent_id, tags, external_refChecks if the values are included in the specified list. If they are, the condition is true. For product_types, you can specify more than one product type.?filter=in(id,some-id)
gtid, created_at, updated_at, external_refGreater than. Checks if the value of the field is greater than the given value.?filter=gt(updated_at,2024-01-01T00:00:00Z)
geid, created_at, updated_at, external_refGreater than or equal to. Checks if the value of the field is greater than or equal to the given value.?filter=ge(created_at,2023-01-01T00:00:00Z)
ltid, created_at, updated_at, external_refLess than. Checks if the value of the field is less than the given value.?filter=lt(updated_at,2025-01-01T00:00:00Z)
leid, created_at, updated_at, external_refLess than or equal to. Checks if the value of the field is less than or equal to the given value.?filter=le(created_at,2022-01-01T00:00:00Z)
eq (extensions)extensions.book.isbnFilters using a nested extension field.?filter=eq(extensions.book.isbn,1765426)
eq (shopper_attributes)shopper_attributes.colorFilters using a shopper custom attribute field.?filter=eq(shopper_attributes.color,red)
eq (admin_attributes)admin_attributes.warehouseFilters using an admin custom attribute field.?filter=eq(admin_attributes.warehouse,US-EAST)

Request

Responses

Returns a list of all products.

Ask External AI