Example
Query Parameters
| Parameter | Type | Default | Notes |
|---|---|---|---|
apiKey | string | required | Plato API key. |
search | string | none | Search product names. |
q | string | none | Alternative search parameter. |
categoryId | string | none | Filter by category id. |
categorySlug | string | none | Filter by one category slug. |
categorySlugs | comma list | none | Filter by multiple category slugs. |
published | boolean | true | Use false to fetch unpublished products when allowed. |
soldout | boolean | none | Filter sold-out state. |
minPrice | number | none | Filter by price options. |
maxPrice | number | none | Filter by price options. |
slug | string | none | Fetch by exact product slug. |
ids | comma list | none | Fetch specific product ids. |
sortBy | string | createdAt | name, createdAt, updatedAt, or slug. |
sortOrder | string | desc | asc or desc. |
page | number | 1 | Page number. |
limit | number | 20 | Minimum 1, maximum 100. |
includeCmsData | boolean | true | Include CMS entries related to products. |
Response
CMS Data
WhenincludeCmsData=true, Plato looks for CMS entries related to MenuProduct.
The cmsData object is grouped by CMS database identifier:
includeCmsData=false when you only need the core product fields.
Notes
- Products default to
published=true. - Price filtering is applied against product price options.
- Use
slugfor product detail pages. - Use
idswhen another system already knows the product ids.