Get all products
GEThttps://euwest.api.elasticpath.com/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.
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) |
Request
Query Parameters
- Files or main image. For example,
include=files,main_image
. - Component product data. For example,
include=component_products
. - Key attribute data, such as SKU or slug.
Possible values: >= 0
and <= 10000
The number of records to offset the results by.
Possible values: >= 0
and <= 10000
The number of records per page. The maximum limit is 100.
Many Commerce API endpoints support filtering. The general syntax is described here.
For more information about the attributes and operators that are supported, see Get all products.
Possible values: [files
, main_image
, component_products
]
Using the include parameter, you can retrieve top-level resources.
Responses
- 200
- 400
- 500
Returns a list of all products.
- application/json
- Schema
- Example (auto)
- list-products
Schema
data object[]
included object
meta object
{
"data": [
{
"id": "string",
"type": "product",
"attributes": {
"name": "string",
"description": "string",
"slug": "string",
"sku": "string",
"status": "live",
"commodity_type": "physical",
"upc_ean": "string",
"mpn": "string",
"external_ref": "string",
"locales": {},
"tags": [
"string"
],
"extensions": {},
"custom_inputs": {},
"build_rules": {
"default": "include",
"include": [
"string"
],
"exclude": [
"string"
]
},
"components": {}
},
"meta": {
"created_at": "2020-09-22T09:00:00",
"updated_at": "2020-09-22T09:00:00",
"owner": "organization",
"variations": [
{
"id": "string",
"name": "string",
"options": [
{
"id": "string",
"name": "string",
"description": "string"
}
]
}
],
"custom_relationships": [
null
],
"child_variations": [
{
"id": "string",
"name": "string",
"sort_order": 0,
"options": [
{
"id": "string",
"name": "string",
"description": "string"
}
],
"option": {
"id": "string",
"name": "string",
"description": "string"
}
}
],
"product_types": [
"parent"
],
"variation_matrix": {}
},
"relationships": {}
}
],
"included": {
"main_images": [
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"type": "file",
"file_name": "file_name.jpg",
"mime_type": "image/jpeg",
"file_size": 36000,
"public": true,
"meta": {
"timestamps": {
"created_at": "2023-10-11T13:02:25.293Z"
},
"dimensions": {
"width": 1800,
"height": 1000
}
},
"links": {
"self": "https://useast.api.elasticpath.com/v2/files/ddc28c74-a7df-46be-b262-8fa69a6e7d52"
},
"link": {
"href": "https://files-eu.epusercontent.com/e8c53cb0-120d-4ea5-8941-ce74dec06038/f8cf26b3-6d38-4275-937a-624a83994702.png",
"meta": {
"results": {
"total": 2
}
}
}
}
],
"component_products": [
{
"id": "string",
"type": "product",
"attributes": {
"name": "string",
"description": "string",
"slug": "string",
"sku": "string",
"status": "live",
"commodity_type": "physical",
"upc_ean": "string",
"mpn": "string",
"external_ref": "string",
"locales": {},
"tags": [
"string"
],
"extensions": {},
"custom_inputs": {},
"build_rules": {
"default": "include",
"include": [
"string"
],
"exclude": [
"string"
]
},
"components": {}
},
"meta": {
"created_at": "2020-09-22T09:00:00",
"updated_at": "2020-09-22T09:00:00",
"owner": "organization",
"variations": [
{
"id": "string",
"name": "string",
"options": [
{
"id": "string",
"name": "string",
"description": "string"
}
]
}
],
"custom_relationships": [
null
],
"child_variations": [
{
"id": "string",
"name": "string",
"sort_order": 0,
"options": [
{
"id": "string",
"name": "string",
"description": "string"
}
],
"option": {
"id": "string",
"name": "string",
"description": "string"
}
}
],
"product_types": [
"parent"
],
"variation_matrix": {}
},
"relationships": {}
}
],
"files": [
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"type": "file",
"file_name": "file_name.jpg",
"mime_type": "image/jpeg",
"file_size": 36000,
"public": true,
"meta": {
"timestamps": {
"created_at": "2023-10-11T13:02:25.293Z"
},
"dimensions": {
"width": 1800,
"height": 1000
}
},
"links": {
"self": "https://useast.api.elasticpath.com/v2/files/ddc28c74-a7df-46be-b262-8fa69a6e7d52"
},
"link": {
"href": "https://files-eu.epusercontent.com/e8c53cb0-120d-4ea5-8941-ce74dec06038/f8cf26b3-6d38-4275-937a-624a83994702.png",
"meta": {
"results": {
"total": 2
}
}
}
}
]
},
"meta": {
"results": {
"total": 2
}
}
}
{
"data": [
{
"type": "product",
"id": "9c85b276-09b4-488e-a59c-c561bae14c9e",
"attributes": {
"commodity_type": "physical",
"custom_inputs": {
"back": {
"name": "T-Shirt Back",
"validation_rules": [
{
"type": "string",
"options": {
"max_length": 50
}
}
],
"required": false
},
"front": {
"name": "T-Shirt Front",
"validation_rules": [
{
"type": "string",
"options": {
"max_length": 50
}
}
],
"required": false
}
},
"description": "T-shirt.",
"mpn": "1234-5678-TTTT",
"name": "T-Shirt",
"sku": "97805",
"slug": "97805",
"status": "live",
"upc_ean": "12345656",
"tags": [
"tag1",
"tag2"
],
"extensions": {
"products(size)": {
"widthMM": 600,
"fuelType": "electric",
"hasUKPlug": true,
"online": null
}
}
},
"relationships": {
"children": {
"data": [],
"links": {
"self": "/products/9c85b276-09b4-488e-a59c-c561bae14c9e/children"
}
},
"component_products": {
"data": [],
"links": {
"self": "/products/9c85b276-09b4-488e-a59c-c561bae14c9e/relationships/component_products"
}
},
"files": {
"data": [],
"links": {
"self": "/products/9c85b276-09b4-488e-a59c-c561bae14c9e/relationships/files"
}
},
"main_image": {
"data": null
},
"templates": {
"data": [],
"links": {
"self": "/products/9c85b276-09b4-488e-a59c-c561bae14c9e/relationships/templates"
}
},
"variations": {
"data": [],
"links": {
"self": "/products/9c85b276-09b4-488e-a59c-c561bae14c9e/relationships/variations"
}
}
},
"meta": {
"created_at": "2022-08-18T14:25:57.391Z",
"owner": "store",
"product_types": [
"standard"
],
"updated_at": "2022-08-18T14:25:57.391Z"
}
}
],
"meta": {
"results": {
"total": 1
}
}
}
Bad request. The request failed validation.
- application/json
- Schema
- Example (auto)
- bad-request
Schema
errors undefined[]required
{
"errors": [
{
"status": "500",
"title": "Internal server error",
"detail": "An internal error has occurred.",
"request_id": "00000000-0000-0000-0000-000000000000",
"meta": {
"missing_ids": [
"e7d50bd5-1833-43c0-9848-f9d325b08be8"
]
}
}
]
}
{
"errors": [
{
"title": "Bad Request",
"detail": "Could not parse the supplied filter",
"status": "400"
}
]
}
Internal server error. There was a system failure in the platform.
- application/json
- Schema
- Example (auto)
- internal-server-error
Schema
errors undefined[]required
{
"errors": [
{
"status": "500",
"title": "Internal server error",
"detail": "An internal error has occurred.",
"request_id": "00000000-0000-0000-0000-000000000000",
"meta": {
"missing_ids": [
"e7d50bd5-1833-43c0-9848-f9d325b08be8"
]
}
}
]
}
{
"errors": [
{
"status": "500",
"title": "Internal Server Error",
"detail": "There was an internal server error, you can report with your request id.",
"request_id": "635da56d-75a1-43cd-b696-7ab119756b3a"
}
]
}
Authorization: http
name: bearerAuthtype: httpscheme: bearer
- csharp
- curl
- dart
- go
- http
- java
- javascript
- kotlin
- c
- nodejs
- objective-c
- ocaml
- php
- powershell
- python
- r
- ruby
- rust
- shell
- swift
- HTTPCLIENT
- RESTSHARP
var client = new HttpClient();
var request = new HttpRequestMessage(HttpMethod.Get, "https://euwest.api.elasticpath.com/pcm/products");
request.Headers.Add("Accept", "application/json");
request.Headers.Add("Authorization", "Bearer <token>");
var response = await client.SendAsync(request);
response.EnsureSuccessStatusCode();
Console.WriteLine(await response.Content.ReadAsStringAsync());