Skip to Content
Products

Products

Manage the catalog that powers your storefronts, orders, and conversations. Use this API to keep products in sync with your inventory or commerce systems.

All endpoints share the prefix /v1/products and authenticate with an API key.

EndpointScope
GET /v1/productsproducts:read
GET /v1/products/:idproducts:read
POST /v1/productsproducts:write
PATCH /v1/products/:idproducts:write

List products

GET /v1/products

Query parameters

ParameterTypeDescription
searchstringMatch against product name
pagenumberPage number (default 1)
limitnumberItems per page (default 50)
{ "message": "Products retrieved", "data": [ { "id": "p1a2b3c4-...", "name": "Jollof Rice", "price": 2500, "quantity": 40, "sku": "JR-001", "isActive": true, "createdAt": "2026-01-01T00:00:00.000Z" } ], "meta": { "total": 1, "page": 1, "perPage": 50, "totalPages": 1, "hasMore": false } }

Get a product

GET /v1/products/:id

Returns a single product with its variants. Responds 404 not_found if the ID doesn’t belong to your business.

Create a product

POST /v1/products

Creating a product with a name that already exists updates the existing one instead of creating a duplicate.

Body

FieldTypeRequiredDescription
namestringYesProduct name (2–255 characters)
pricenumberYesSelling price
descriptionstringNoProduct description
quantitynumberNoInitial stock quantity
skustringNoStock-keeping unit
barcodestringNoBarcode
category_iduuidNoCategory to file under
cost_pricenumberNoYour cost, for margin reporting
unitstringNoUnit of measure (e.g. kg, piece)
is_activebooleanNoWhether the product is sellable
reorder_levelnumberNoLow-stock threshold
image_urlsstring[]NoImage URLs
store_idsuuid[]NoStores to stock the product in
{ "name": "Jollof Rice", "price": 2500, "quantity": 40, "sku": "JR-001", "unit": "plate" }

Response 201 Created - the created (or updated) product.

Pass an Idempotency-Key header (or idempotency_key field) so retries don’t create duplicate products.

Update a product

PATCH /v1/products/:id

Send only the fields you want to change: name, price, description, sku, barcode, category_id, cost_price, unit, is_active, reorder_level, image_urls.

Stock quantity is managed through inventory operations, not this endpoint - PATCH changes catalog attributes only.

{ "price": 2700, "is_active": true }

Response 200 OK - the updated product.

Last updated on