Products API
The Products API lets you manage your entire product catalog programmatically. Create, retrieve, update, and delete products, and filter listings by status, category, or date range.
Scope: products:read products:write
Management API preview
Catalog ingestion through Shopify and WooCommerce is live in the Cresva backend. The brand-facing Products Management API documented here ships with the public Management API release. Until then, manage your catalog from the Cresva dashboard or via the supported ingestion adapters.
GET
/productsList all products. Supports pagination and filtering.
Pagination: All list endpoints support page (default 1), perPage (default 20, max 100), sort, order (asc/desc), since and until (ISO 8601). See Rate Limits for usage best practices.
Query Parameters
statusstringFilter by status: active, inactive, allcategorystringFilter by product categorysincestringISO 8601 start dateuntilstringISO 8601 end datebash
curl https://api.cresva.ai/api/storefront/[brandId]/products?status=active&perPage=10 \
-H "Authorization: Bearer cresva_ak_..."javascript
const res = await fetch("https://api.cresva.ai/api/storefront/[brandId]/products?status=active", {
headers: { Authorization: "Bearer " + process.env.CRESVA_API_KEY },
});
const { data, pagination } = await res.json();GET
/products/:idRetrieve a single product by ID.
bash
curl https://api.cresva.ai/api/storefront/[brandId]/products/prod_a1b2c3d4 \
-H "Authorization: Bearer cresva_ak_..."javascript
const res = await fetch("https://api.cresva.ai/api/storefront/[brandId]/products/prod_a1b2c3d4", {
headers: { Authorization: "Bearer " + process.env.CRESVA_API_KEY },
});
const { data } = await res.json();POST
/productsCreate a new product.
Request Body
titlestringProduct title (required)descriptionstringProduct descriptionpricenumberPrice in smallest currency unit (required)currencystringISO 4217 currency code (required)categorystringProduct categoryimageUrlstringProduct image URLmetadataobjectArbitrary key-value metadatabash
curl -X POST https://api.cresva.ai/api/storefront/[brandId]/products \
-H "Authorization: Bearer cresva_ak_..." \
-H "Content-Type: application/json" \
-d '{
"title": "Wireless Headphones Pro",
"description": "Premium noise-cancelling wireless headphones",
"price": 19999,
"currency": "USD",
"category": "electronics/audio"
}'javascript
const res = await fetch("https://api.cresva.ai/api/storefront/[brandId]/products", {
method: "POST",
headers: {
Authorization: "Bearer " + process.env.CRESVA_API_KEY,
"Content-Type": "application/json",
},
body: JSON.stringify({
title: "Wireless Headphones Pro",
description: "Premium noise-cancelling wireless headphones",
price: 19999,
currency: "USD",
category: "electronics/audio",
}),
});
const { data } = await res.json();PATCH
/products/:idUpdate an existing product. Send only the fields you want to change.
Request Body
Include any subset of the product fields to update only those values.
titlestringProduct titledescriptionstringProduct descriptionpricenumberPrice in smallest currency unitcurrencystringISO 4217 currency codecategorystringProduct categoryimageUrlstringProduct image URLmetadataobjectArbitrary key-value metadatabash
curl -X PATCH https://api.cresva.ai/api/storefront/[brandId]/products/prod_a1b2c3d4 \
-H "Authorization: Bearer cresva_ak_..." \
-H "Content-Type: application/json" \
-d '{ "price": 17999 }'javascript
const res = await fetch("https://api.cresva.ai/api/storefront/[brandId]/products/prod_a1b2c3d4", {
method: "PATCH",
headers: {
Authorization: "Bearer " + process.env.CRESVA_API_KEY,
"Content-Type": "application/json",
},
body: JSON.stringify({ price: 17999 }),
});
const { data } = await res.json();DELETE
/products/:idDelete a product.
bash
curl -X DELETE https://api.cresva.ai/api/storefront/[brandId]/products/prod_a1b2c3d4 \
-H "Authorization: Bearer cresva_ak_..."javascript
const res = await fetch("https://api.cresva.ai/api/storefront/[brandId]/products/prod_a1b2c3d4", {
method: "DELETE",
headers: { Authorization: "Bearer " + process.env.CRESVA_API_KEY },
});
const { data } = await res.json();Product object
JSON
{
"id": "prod_a1b2c3d4",
"title": "Wireless Headphones Pro",
"description": "Premium noise-cancelling wireless headphones",
"price": 19999,
"currency": "USD",
"category": "electronics/audio",
"imageUrl": "https://cdn.example.com/products/headphones.jpg",
"isActive": true,
"metadata": { "sku": "WHP-001", "weight_grams": 250 },
"createdAt": "2026-03-15T10:00:00Z",
"updatedAt": "2026-03-20T14:30:00Z"
}