API Overview
MenuCraft API provides endpoints for restaurant owners to manage their menu categories, items, and business settings.
Base URL: /api/v1
Authentication
Most endpoints require authentication using a JWT token. Include the token in the Authorization header:
Authorization: Bearer <your_jwt_token>
/api/v1/admin/login
Login to get access token.
Request Body:
{
"email": "user@example.com",
"password": "your_password"
}
Response:
{
"accessToken": "jwt_access_token",
"refreshToken": "jwt_refresh_token"
}
/api/v1/admin/token
Refresh your access token.
Request Body:
{
"token": "refresh_token"
}
Categories
/api/v1/category
Get all categories with pagination.
Query Parameters:
page - Page number (default: 1)
limit - Items per page (default: 10)
/api/v1/category
Create a new category. (Requires authentication)
Request Body:
{
"name": "Category Name",
"image": "base64_encoded_image",
"section": "Section Name"
}
/api/v1/category/getById/:id
Get a specific category by ID. (Requires authentication)
/api/v1/category
Update a category. (Requires authentication)
Request Body:
{
"id": 1,
"name": "Updated Name",
"image": "base64_encoded_image",
"section": "Updated Section"
}
/api/v1/category/:id
Delete a category. (Requires authentication)
/api/v1/category/search
Search categories by name. (Requires authentication)
Query Parameters:
name - Search term
page - Page number (default: 1)
limit - Items per page (default: 10)
Items
/api/v1/item
Get all items with pagination.
Query Parameters:
page - Page number (default: 1)
limit - Items per page (default: 10)
/api/v1/item
Create a new item. (Requires authentication)
Request Body:
{
"name": "Item Name",
"description": "Item Description",
"image": "base64_encoded_image",
"category_id": 1,
"type": "NonVeg"
}
/api/v1/item/getById/:id
Get a specific item by ID. (Requires authentication)
/api/v1/item/getByCategory
Get items by category ID.
Query Parameters:
category_id - Category ID
page - Page number (default: 1)
limit - Items per page (default: 10)
/api/v1/item
Update an item. (Requires authentication)
Request Body:
{
"id": 1,
"name": "Updated Item Name",
"description": "Updated Description",
"image": "base64_encoded_image",
"category_id": 1,
"type": "Veg"
}
/api/v1/item/:id
Delete an item. (Requires authentication)
/api/v1/item/search
Search items by name.
Query Parameters:
query - Search term
page - Page number (default: 1)
limit - Items per page (default: 10)
Settings
/api/v1/settings
Create business settings. (Requires authentication)
Request Body:
{
"logo": "logo_url",
"business_name": "Restaurant Name",
"address": "Restaurant Address",
"phone_no": "1234567890"
}
/api/v1/settings
Get business settings. (Requires authentication)
/api/v1/settings
Update business settings. (Requires authentication)
Request Body:
{
"logo": "updated_logo_url",
"business_name": "Updated Restaurant Name",
"address": "Updated Restaurant Address",
"phone_no": "0987654321"
}