Storefront API
Catalog
Products and categories, public read.
Product object
{
"id": "f3a7e9b8-1c2d-4e5f-9a0b-1c2d3e4f5a6b",
"slug": "kurti-emerald",
"name": "Emerald Kurti",
"description": "Hand-block printed cotton kurti.",
"price": "1490.00",
"comparePrice": "1990.00",
"stock": 12,
"sku": "KRT-EM-M",
"tags": ["new", "summer"],
"isActive": true,
"isFeatured": false,
"createdAt": "2026-05-20T08:00:00.000Z",
"updatedAt": "2026-05-26T14:30:00.000Z"
}Money fields are always strings. See Money and numbers.
List products
GET /api/v1/store/productsQuery parameters
| Name | Type | Default | Notes |
|---|---|---|---|
limit | integer (1–100) | 20 | Page size. |
cursor | string | — | Opaque cursor from previous response. |
q | string | — | Substring match against name and SKU. |
categorySlug | string | — | Restrict to products in this category. |
sort | enum | newest | newest, price-asc, price-desc, name-asc, popular. |
Example
curl "https://api.sellvik.app/api/v1/store/products?sort=newest&limit=2" \
-H "X-Sellvik-Key: <publishable-key>"Response
{
"items": [
{ "id": "...", "slug": "kurti-emerald", "name": "Emerald Kurti", "price": "1490.00", "stock": 12 },
{ "id": "...", "slug": "saree-rose", "name": "Rose Saree", "price": "3200.00", "stock": 4 }
],
"nextCursor": "eyJpZCI6Im..."
}Get a product by slug
GET /api/v1/store/products/{slug}Path parameters
| Name | Type | Notes |
|---|---|---|
| slug | string | Product slug. Lowercase, hyphenated. |
Example
curl "https://api.sellvik.app/api/v1/store/products/kurti-emerald" \
-H "X-Sellvik-Key: <publishable-key>"Response
200 with a Product object as above. 404 not_found if the slug doesn't
exist or the product is inactive.
Category object
{
"id": "c1d2e3f4-...",
"name": "Sarees",
"slug": "sarees",
"description": "Cotton and silk sarees.",
"imageUrl": "https://r2.sellvik.com/categories/sarees.jpg",
"parentId": null,
"isFeatured": true,
"productCount": 47
}List categories
GET /api/v1/store/categoriesReturns active categories ordered by sortOrder then name. Cursor-paginated.
Example
curl "https://api.sellvik.app/api/v1/store/categories" \
-H "X-Sellvik-Key: <publishable-key>"Response
{
"items": [
{ "id": "...", "name": "Sarees", "slug": "sarees", "productCount": 47 },
{ "id": "...", "name": "Kurtis", "slug": "kurtis", "productCount": 33 }
],
"nextCursor": null
}Get a category by slug
GET /api/v1/store/categories/{slug}Returns the category and its products (paginated separately if very large).
curl "https://api.sellvik.app/api/v1/store/categories/sarees" \
-H "X-Sellvik-Key: <publishable-key>"