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.
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.
| Operator | Attribute | Description | Example |
|---|---|---|---|
eq | id, 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, description | Equals. 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) |
like | sku, slug, upc_ean, manufacturer_part_num, name, tags, description, external_ref | Like. Checks if the operand contains the specified string. Wildcards are supported. | ?filter=like(name,*some-name*) |
in | id, name, sku, slug, upc_ean, manufacturer_part_num, product_types, parent_id, tags, external_ref | Checks 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) |
gt | id, created_at, updated_at, external_ref | Greater than. Checks if the value of the field is greater than the given value. | ?filter=gt(updated_at,2024-01-01T00:00:00Z) |
ge | id, created_at, updated_at, external_ref | Greater 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) |
lt | id, created_at, updated_at, external_ref | Less than. Checks if the value of the field is less than the given value. | ?filter=lt(updated_at,2025-01-01T00:00:00Z) |
le | id, created_at, updated_at, external_ref | Less 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.isbn | Filters using a nested extension field. | ?filter=eq(extensions.book.isbn,1765426) |
eq (shopper_attributes) | shopper_attributes.color | Filters using a shopper custom attribute field. | ?filter=eq(shopper_attributes.color,red) |
eq (admin_attributes) | admin_attributes.warehouse | Filters using an admin custom attribute field. | ?filter=eq(admin_attributes.warehouse,US-EAST) |
Request
Responses
- 200
- 400
- 500
Returns a list of all products.
Bad request. The request failed validation.
Internal server error. There was a system failure in the platform.