diff --git a/api/apiBaseRouter.js b/api/apiBaseRouter.js
new file mode 100644
index 0000000000000000000000000000000000000000..ebf3692bfd9c1afd30137ed0ea24b123ded6d3cc
--- /dev/null
+++ b/api/apiBaseRouter.js
@@ -0,0 +1,14 @@
+const healthCheckRouter = require('./health-check/routes');
+const layoutRouter = require('./layout/routes');
+const apiBaseRouter = require('express').Router();
+
+// Exposed endpoints
+apiBaseRouter.use('/health-check', healthCheckRouter);
+
+// apiBaseRouter.use('/pan', panRouter);
+
+// apiBaseRouter.use('/otp', otpRouter);
+
+apiBaseRouter.use('/widget', layoutRouter);
+
+module.exports = apiBaseRouter;
diff --git a/api/health-check/controller.js b/api/health-check/controller.js
new file mode 100644
index 0000000000000000000000000000000000000000..2fda039dd9ae20e9eb671958065d56bbbd64ebe9
--- /dev/null
+++ b/api/health-check/controller.js
@@ -0,0 +1,17 @@
+
+
+const healthCheck = (req, res, next) => {
+  try {
+
+
+
+    return res.sendStatus(200);
+  } catch (error) {
+
+    console.log(error)
+  }
+};
+
+module.exports = {
+  healthCheck,
+};
diff --git a/api/health-check/routes.js b/api/health-check/routes.js
new file mode 100644
index 0000000000000000000000000000000000000000..adbcd23400b9c9b5c0437905a9452a330707752f
--- /dev/null
+++ b/api/health-check/routes.js
@@ -0,0 +1,7 @@
+const healthCheckRouter = require('express').Router();
+const { healthCheck } = require('./controller');
+
+healthCheckRouter.get('/', healthCheck);
+
+
+module.exports = healthCheckRouter;
diff --git a/api/layout/business.js b/api/layout/business.js
new file mode 100644
index 0000000000000000000000000000000000000000..73ab557ed99ea2dea4a1e854a037a7f654385999
--- /dev/null
+++ b/api/layout/business.js
@@ -0,0 +1,25 @@
+/* eslint-disable prefer-promise-reject-errors */
+/* eslint-disable no-throw-literal */
+// const logger = require('utils/logger');
+const getAllWidgetService = require('../layout/service');
+
+
+
+const getAllWidget = async () => {
+  try {
+    // logger.info(`Entering | getAllWidget BusinessLogic |`);
+    const response = await getAllWidgetService.getAllWidget();
+    // logger.info(`Exiting | generateAadhaarOtp BusinessLogic |`);
+    return { status: '200', response }
+  } catch (error) {
+    // logger.error(` Error | getAllWidget BusinessLogic | ${error}`)
+    throw error
+  }
+
+};
+
+
+
+module.exports = {
+  getAllWidget,
+};
diff --git a/api/layout/controller.js b/api/layout/controller.js
new file mode 100644
index 0000000000000000000000000000000000000000..e06ad30387899f199c9457d2fd94e9e0091d274d
--- /dev/null
+++ b/api/layout/controller.js
@@ -0,0 +1,29 @@
+// const logger = require('utils/logger');
+const layoutBusiness = require('./business');
+// const Joi = require('joi');
+
+const getAllWidget = async (req, res, next) => {
+  try {
+    console.log("comign here")
+    // logger.info(`Entering | getAllWidget Controller | ${req.body}`);
+    // const schema = Joi.object({
+    //   aadhaarNumber: Joi.string().required(),
+    // });
+    // const { error } = schema.validate({  });
+    // if (error) {
+    //   logger.error(` Error | getAllWidget Controller | ${JSON.stringify(error)}`)
+    //   return next(new ExpressError('BAD_REQUEST'));
+    // }
+    const response = await layoutBusiness.getAllWidget();
+    // logger.info(`Exiting | getAllWidget Controller |`);
+    return res.status(response.status).json({ data: response });
+  } catch (error) {
+    // logger.error(` Error | getAllWidget Controller | ${error}`)
+    next(new ExpressError(error));
+  }
+};
+
+
+module.exports = {
+  getAllWidget,
+};
\ No newline at end of file
diff --git a/api/layout/routes.js b/api/layout/routes.js
new file mode 100644
index 0000000000000000000000000000000000000000..eaa7087603557d94d92a8178724933dc17847738
--- /dev/null
+++ b/api/layout/routes.js
@@ -0,0 +1,10 @@
+const layoutRouter = require('express').Router();
+const { getAllWidget} = require('./controller');
+
+layoutRouter.get('/allLayout', getAllWidget);
+  
+// layoutRouter.post('/aadhaarOtpVerify', aadhaarOtpVerify);
+
+// layoutRouter.post('/aadhaarPanSimilarity', aadhaarPanSimilarity);
+
+module.exports = layoutRouter;
\ No newline at end of file
diff --git a/api/layout/service.js b/api/layout/service.js
new file mode 100644
index 0000000000000000000000000000000000000000..b5c9e2396ccdd9943655f3f9f327206600203f66
--- /dev/null
+++ b/api/layout/service.js
@@ -0,0 +1,20 @@
+// const logger = require('utils/logger');
+
+
+
+const getAllWidget = async () => {
+  try {
+    // logger.info(`Entering | getAllWidget Service |`);
+    const response = "123";
+    // logger.info(`Exiting | getAllWidget Service |`);
+    return { status: '200', response }
+  } catch (error) {
+    // logger.error(` Error | getAllWidget Service | ${error}`)
+    throw error
+  }
+
+};
+
+module.exports = {
+  getAllWidget,
+};
\ No newline at end of file
diff --git a/api/models/template.js b/api/models/template.js
new file mode 100644
index 0000000000000000000000000000000000000000..98426ca9bfbcf2b0828eebb1b286412f91a933d5
--- /dev/null
+++ b/api/models/template.js
@@ -0,0 +1,22 @@
+const mongoose = require('mongoose');
+const Schema = mongoose.Schema;
+
+// Define schema for widgets within a template or page
+const WidgetRefSchema = new Schema({
+    widgetId: { type: mongoose.Schema.Types.ObjectId, ref: 'Widget', required: true }, // Reference to the Widget model
+    position: { type: Number, required: true },
+    startTime: { type: Date, required: true },
+    endTime: { type: Date, required: true }
+});
+
+// Define main Template schema
+const TemplateSchema = new Schema({
+    name: { type: String, required: true },
+    desc: { type: String },
+    widgets: [WidgetRefSchema],
+    hashId: { type: String, unique: true, required: true },
+    createdAt: { type: Date, default: Date.now },
+    updatedAt: { type: Date, default: Date.now }
+});
+
+module.exports = mongoose.model('Template', TemplateSchema);
diff --git a/api/models/widget.js b/api/models/widget.js
new file mode 100644
index 0000000000000000000000000000000000000000..f95ddc3a04fa642a09e68e12b15a06bb85ea53cf
--- /dev/null
+++ b/api/models/widget.js
@@ -0,0 +1,45 @@
+const mongoose = require('mongoose');
+const Schema = mongoose.Schema;
+
+// Define schema for the button data
+const ButtonDataSchema = new Schema({
+    url: { type: String, required: true },
+    title: { type: String, required: true }
+});
+
+// Define schema for banner data
+const BannerDataSchema = new Schema({
+    imageName: { type: String, default: '' },
+    headingText: { type: String, required: true },
+    subHeadingText: { type: String, required: true },
+    landingUrl: { type: String, required: true },
+    timerPosition: { type: String, default: null },
+    timerColor: { type: String, default: null }
+});
+
+// Define schema for list items
+const ListItemSchema = new Schema({
+    bannerData: { type: BannerDataSchema, required: true },
+    display_order: { type: Number, required: true },
+    dimension: {
+        length: { type: Number, required: true },
+        breadth: { type: Number, required: true }
+    },
+    banner_title: { type: String, required: true }
+});
+
+// Define main Widget schema
+const WidgetSchema = new Schema({
+    title: { type: String, required: true },
+    layout: { type: String, required: true },
+    priority: { type: Number, required: true },
+    enable: { type: Boolean, default: true },
+    buttonData: [ButtonDataSchema],
+    sectionHeadingText: { type: String, required: true },
+    apiUrl: { type: String, required: true },
+    list: [ListItemSchema],
+    createdAt: { type: Date, default: Date.now },
+    updatedAt: { type: Date, default: Date.now }
+});
+
+module.exports = mongoose.model('Widget', WidgetSchema);
diff --git a/server.js b/server.js
index b99148637ddd19a5c8a6a6330ab58cada353805f..c4ce85d076b11f611eeb14db0c54c5e7bfb246b2 100644
--- a/server.js
+++ b/server.js
@@ -7,6 +7,9 @@ const connectDB = require('./db');
 
 const app = express();
 app.use(bodyParser.json());
+const apiBaseRouter = require('./api/apiBaseRouter');
+
+const baseURL = '/api-service';
 
 // Connect to MongoDB
 connectDB();
@@ -15,6 +18,9 @@ connectDB();
 const swaggerDocument = YAML.load('./swagger.yaml');
 app.use('/api-docs', swaggerUi.serve, swaggerUi.setup(swaggerDocument));
 
+// API base URL
+app.use(apiBaseRouter);
+
 
 // Start the server
 const PORT = process.env.PORT || 5000;
diff --git a/swagger.yaml b/swagger.yaml
index d63e67b4734a809138f2c0f3e454d404ec207382..a2b52340b94b86aa320d9df8dfa015d8cc66f589 100644
--- a/swagger.yaml
+++ b/swagger.yaml
@@ -3,6 +3,7 @@ info:
   title: Layout Management API
   version: 1.0.0
   description: API for managing layouts including creating, retrieving, and deleting layouts.
+  
 paths:
   /api/layout/{layout}:
     get:
@@ -79,7 +80,7 @@ paths:
         404:
           description: Layout not found
 
-  /api/AllLayout:
+  /widget/allLayout:
     get:
       summary: Get all layouts
       responses: