{"success":true,"data":{"status":"ok","routes":[{"route":"GET /","desc":"Return available routes for the app"},{"route":"GET /health","desc":"Return app health and db connection"},{"route":"GET /me","desc":"Return current API key plan, usage and remaining quota"},{"route":"GET /products?q=&page=&limit=","desc":"Return paginated list of products with optional name search"},{"route":"GET /products/search?q=&storeId=&page=&limit=","desc":"Search products by name in a specific store and return their price"},{"route":"GET /products/:storeId/like?q=&page=&limit=","desc":"Ranked 3-pass search for products in a store"},{"route":"GET /products/:barcode","desc":"Return a single product by barcode"},{"route":"GET /products/:barcode/prices","desc":"Return a product with its current prices across all stores"},{"route":"GET /products/:barcode/prices/:storeId","desc":"Return the price of a product in a specific store"},{"route":"GET /products/groups?q=&page=&limit=","desc":"Search product groups by name (normalized product names across chains)"},{"route":"GET /products/groups/:id","desc":"Return a product group with all its member barcodes"},{"route":"GET /products/groups/:id/prices/:storeId","desc":"Return the cheapest price for a product group at a specific store"},{"route":"GET /stores/chains","desc":"Return all supermarket chains with their store counts"},{"route":"GET /stores?city=&chain=&page=&limit=","desc":"Return paginated list of stores with optional city and chain filters"},{"route":"GET /stores/:id","desc":"Return a single store by ID including chain information"},{"route":"POST /basket/compare","desc":"Compare total basket price across stores for a list of barcodes"},{"route":"POST /basket/total","desc":"Get total basket cost at a single store with per-item breakdown"},{"route":"POST /importer/run","desc":"Trigger the data import pipeline"}],"timestamp":"2026-11-08T08:27:58.756Z"},"timestamp":"2026-11-08T08:27:58.756Z"}