The Menu API manages the restaurant’s product catalogue and categories. Products carry availability flags so the kitchen can toggle items on or off without deleting them. Images are hosted on ImageKit and referenced by URL. There are two access tiers: a public endpoint returns only available products and categories without authentication, while the authenticated endpoints expose the full catalogue and mutation operations.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/FloresJesus/SS_RESTAURANT/llms.txt
Use this file to discover all available pages before exploring further.
Product object
Unique product identifier.
ID of the associated category, or
null if uncategorised.Category name joined from the
categoria_producto table.Product name.
Optional description shown on menus and order screens.
Unit price.
Full URL to the product image hosted on ImageKit.
true if the product is currently available to order.ISO timestamp of product creation.
Public routes (no authentication)
GET /api/public/menu
Returns the live, customer-facing menu. Only products wheredisponible = true are included. Results are grouped by category name, then by product name.
GET /api/public/menu
Response
Category endpoints (authenticated)
All routes below requireAuthorization: Bearer <token>.
GET /api/menu/categorias
Returns all product categories ordered alphabetically.POST /api/menu/categorias
Creates a new product category. Returns400 if a category with the same name already exists.
Roles: admin
Category name. Must be unique. Case-sensitive duplicate check.
Product endpoints (authenticated)
GET /api/menu
Returns all products (including unavailable ones) with category names. Ordered by category name, then product name.POST /api/menu
Creates a new menu product. Ifcategoria_id is provided, the category must exist.
Roles: admin
Product name shown on orders and menus.
Unit price. Stored as a decimal; values are coerced with
Number().ID of an existing category. Returns
400 if the category is not found.Optional description text.
Whether the product is immediately available to order. Defaults to
true.Direct URL to a product image. Use
POST /api/menu/upload to obtain a hosted URL first.Example request
Example response
PUT /api/menu/:id
Replaces all fields of an existing product.nombre and precio are required; all others fall back to the stored value if omitted. Returns 404 if the product does not exist.
Roles: admin
DELETE /api/menu/:id
Permanently removes a product from the catalogue. Returns404 if not found.
Roles: admin
POST /api/menu/upload
Uploads a product image to ImageKit under the/RestauranteSS/menu/ folder. The file is uploaded as multipart/form-data with the field name image. Returns the hosted URL to store in imagen_url.
Roles: admin
Constraints:
- Only image MIME types are accepted (
image/*). - Maximum file size: 3 MB.
Binary image file. Field name must be exactly
image.Upload response
Full CDN URL of the uploaded image on ImageKit.
Same as
imageUrl. Use this value as imagen_url when creating or updating a product.ImageKit file identifier, useful for future management operations.