Skip to content
Cresva
Developers

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/products

List 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, all
categorystringFilter by product category
sincestringISO 8601 start date
untilstringISO 8601 end date
bash
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/:id

Retrieve 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/products

Create a new product.

Request Body

titlestringProduct title (required)
descriptionstringProduct description
pricenumberPrice in smallest currency unit (required)
currencystringISO 4217 currency code (required)
categorystringProduct category
imageUrlstringProduct image URL
metadataobjectArbitrary key-value metadata
bash
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/:id

Update 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 title
descriptionstringProduct description
pricenumberPrice in smallest currency unit
currencystringISO 4217 currency code
categorystringProduct category
imageUrlstringProduct image URL
metadataobjectArbitrary key-value metadata
bash
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/:id

Delete 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"
}