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.
List products
GET /v1/productsQuery parameters
{
"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/:idReturns a single product with its variants. Responds 404 not_found if the ID doesn’t
belong to your business.
Create a product
POST /v1/productsCreating a product with a name that already exists updates the existing one instead of creating a duplicate.
Body
{
"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/:idSend 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.