Product Data Model
The table below covers every key field in theProductOut schema returned by the API.
Categories
Custom categories are created per shop and let you organize products in a way that matches your own business logic. Categories support nesting viaparent_id, so you can build hierarchies like Beverages → Cold Drinks → Juices.
Barcode Lookup
Mutasib supports two barcode lookup paths: one scoped to your shop, and one that queries the global OpenFood database.Lookup Within Your Shop
Find a product in your shop’s catalog by scanning its barcode. This is the endpoint used by the POS screen when a cashier scans an item.ProductOut object is returned. If no match is found, the API returns 404.
Global OpenFood Database
If a scanned barcode doesn’t exist in your shop yet, you can look it up in the OpenFood global database to pre-fill product details before creating a new record.country query parameter scopes the lookup; pass world to search the global OpenFood dataset. The response includes publicly available product metadata such as name, brand, and images sourced from OpenFood contributors worldwide.
The OpenFood lookup is read-only — it never creates a product in your shop automatically. You still need to call
POST /api/v1/shops/{shop_id}/products/ with the returned data to add the item to your catalog.