Skip to main content
The Categories API exposes the product taxonomy that organizes your storefront. Use it to build navigation menus, category landing pages, and scoped product grids. All three endpoints are public — no session cookie is required. Only active, non-deleted categories are visible to customers.
The recommended pattern for building a category page is to first call GET /categories to fetch all visible categories (with their public_id values), then call GET /categories/{category_public_id}/products to list products scoped to the selected category. This avoids hard-coding category IDs in your client.

List Categories

Retrieve a paginated list of customer-visible categories. Optionally search by name or description and sort alphabetically or by date.
Query parameters
integer
default:"1"
Page number (1-based).
integer
default:"20"
Number of results per page. Minimum 1, maximum 100.
Free-text search across category name and description (trimmed, max 100 characters).
string
default:"name"
Sort field. Prefix with - for descending. Allowed values: name, -name, created_at, -created_at, updated_at, -updated_at. Default is alphabetical by name.
Response fields
boolean
Always true on success.
array
Array of category objects.
object
Pagination metadata (page, limit, total, totalPages, hasNext, hasPrev).
Example — Build a navigation menu
Example response

Get a Category

Retrieve a single category by its public ID, including the number of products assigned to it.
Path parameters
string
required
The category’s public ID. Pattern: cat_*.
Response fields
object
A single category object with the same fields as the list response, plus:
Example — Load a category header
Example response
Error responses

List Products in a Category

Retrieve all customer-visible products belonging to a specific category. Supports the same filtering and sorting options as the global product list.
Path parameters
string
required
The category’s public ID. Pattern: cat_*. Returns 404 if the category is inactive, deleted, or does not exist.
Query parameters
integer
default:"1"
Page number (1-based).
integer
default:"20"
Number of results per page. Minimum 1, maximum 100.
string
Free-text search within this category’s products (name, brand, description).
string
default:"-created_at"
Sort field. Prefix with - for descending. Allowed values: name, -name, created_at, -created_at, updated_at, -updated_at.
Response fields The response shape is identical to GET /products — an array of product summary objects under data, each containing public_id, name, slug, brand, primary_image, and created_at, plus a meta pagination object. Example — Render a category product grid
Example response
Error responses