diff --git a/api/apiBaseRouter.js b/api/apiBaseRouter.js
index 113178f5e277258fabceb34b49def1416c55bd36..7954c66cdf6231e6e671e2a79a8df55f8faa8d15 100644
--- a/api/apiBaseRouter.js
+++ b/api/apiBaseRouter.js
@@ -1,5 +1,5 @@
 const healthCheckRouter = require('./health-check/routes');
-const layoutRouter = require('./layout/routes');
+const widgetRouter = require('./widget/routes');
 const templateRouter = require('./template/routes')
 const apiBaseRouter = require('express').Router();
 
@@ -10,7 +10,7 @@ apiBaseRouter.use('/health-check', healthCheckRouter);
 
 // apiBaseRouter.use('/otp', otpRouter);
 
-apiBaseRouter.use('/widget', layoutRouter);
+apiBaseRouter.use('/widget', widgetRouter);
 
 apiBaseRouter.use('/template', templateRouter);
 
diff --git a/api/template/business.js b/api/template/business.js
index b72e0ae51dbd514eea38ad2efd5952bf0204e132..fb5bf946a0a307c869a97dcb26f154de81d302ef 100644
--- a/api/template/business.js
+++ b/api/template/business.js
@@ -24,7 +24,19 @@ const createTemplate = async (name, desc, widgets, hashId) => {
 
 };
 
+const getPerticularWidget = async (page) => {
+  try {
+    const response = await templateService.getPerticularWidget(page);
+    console.log(page,"Pagessssssss");
+    return { status: '200', response }
+  } catch (error) {
+    throw error
+  }
+
+};
+
 module.exports = {
   updateAndMapWidget,
-  createTemplate
+  createTemplate,
+  getPerticularWidget
 };
diff --git a/api/template/controller.js b/api/template/controller.js
index ffb6154e096952e4951ce6893a6ad8d74f492a4c..b2fc611c9a4abedd724ead2393b0e83560ab1d4e 100644
--- a/api/template/controller.js
+++ b/api/template/controller.js
@@ -26,7 +26,19 @@ const createTemplate = async (req, res, next) => {
   }
 };
 
+const getPerticularWidget = async (req, res) => {
+  try {
+    console.log("GET template details of a particular page");
+    const { page } = req.params;
+    const response = await templateBusiness.getPerticularWidget(page);
+    return res.status(response.status).json({ data: response });
+  } catch (error) {
+    throw error;
+  }
+};
+
 module.exports = {
   updateAndMapWidget,
-  createTemplate
+  createTemplate,
+  getPerticularWidget
 }
\ No newline at end of file
diff --git a/api/template/routes.js b/api/template/routes.js
index 63d69c3e6e30928410736dcef2bcf4908397ee9c..c173181266f55eafb17c131d656afbac2cc46614 100644
--- a/api/template/routes.js
+++ b/api/template/routes.js
@@ -1,10 +1,12 @@
 const templateRouter = require('express').Router();
 
-const {  updateAndMapWidget,createTemplate } = require('./controller');
+const {  updateAndMapWidget,createTemplate,getPerticularWidget } = require('./controller');
 
 
 templateRouter.put('/:page/widgets/:widgetId', updateAndMapWidget);
 
 templateRouter.post('/createTemplate', createTemplate);
 
+templateRouter.get('/template/:page', getPerticularWidget);
+
 module.exports = templateRouter;
\ No newline at end of file
diff --git a/api/template/service.js b/api/template/service.js
index 1e1554b7631ef2c7fd260796c42937737cf1acf3..a98b3d7e11839c134d5a87bd8a6b601929e385bb 100644
--- a/api/template/service.js
+++ b/api/template/service.js
@@ -56,8 +56,22 @@ const createTemplate = async (name, desc, widgets, hashId) => {
 
 };
 
+const getPerticularWidget = async (page,res) => {
+  try {
+    const template = await Template.findOne({ name: page}).populate('widgets.widgetId');
+    if (!template) {
+      return res.status(404).json({ error: 'Template not found' });
+    }
+    return template;
+  } catch (error) {
+    throw error
+  }
+
+};
+
 
 module.exports = {
   updateAndMapWidget,
-  createTemplate
+  createTemplate,
+  getPerticularWidget
 };
\ No newline at end of file
diff --git a/api/widget/business.js b/api/widget/business.js
new file mode 100644
index 0000000000000000000000000000000000000000..5e03a21b60e0cb3e7539cfba1f3310cf3ad7be7e
--- /dev/null
+++ b/api/widget/business.js
@@ -0,0 +1,32 @@
+/* eslint-disable prefer-promise-reject-errors */
+/* eslint-disable no-throw-literal */
+// const logger = require('utils/logger');
+const widgetService = require('./service');
+
+
+
+const getAllWidget = async (page) => {
+  try {
+    const response = await widgetService.getAllWidget(page);
+    return { status: '200', response }
+  } catch (error) {
+    throw error
+  }
+
+};
+
+const createWidget = async (data) => {
+  try {
+    const response = await widgetService.createWidget(data);
+    return { status: '200', response }
+  } catch (error) {
+    throw error
+  }
+
+};
+
+
+module.exports = {
+  getAllWidget,
+  createWidget,
+};
diff --git a/api/widget/controller.js b/api/widget/controller.js
new file mode 100644
index 0000000000000000000000000000000000000000..ebeecb7f6c811974ca9bfe74322398f9d21c2632
--- /dev/null
+++ b/api/widget/controller.js
@@ -0,0 +1,31 @@
+// const logger = require('utils/logger');
+const widgetBusiness = require('./business');
+// const Joi = require('joi');
+
+const getAllWidget = async (req, res, next) => {
+  try {
+    console.log("comign here")
+    const { page } = req.params;
+    const response = await widgetBusiness.getAllWidget(page);
+    return res.status(response.status).json({ data: response });
+  } catch (error) {
+    throw error
+  }
+};
+const createWidget = async (req, res, next) => {
+  try {
+    console.log("comign createWidget")
+
+    const response = await widgetBusiness.createWidget(req.body);
+    return res.status(response.status).json({ data: response });
+  } catch (error) {
+    throw error
+  }
+};
+
+
+
+module.exports = {
+  getAllWidget,
+  createWidget,
+};
\ No newline at end of file
diff --git a/api/widget/routes.js b/api/widget/routes.js
new file mode 100644
index 0000000000000000000000000000000000000000..a097b46837e53ea82f976f4530ab56dac006e24f
--- /dev/null
+++ b/api/widget/routes.js
@@ -0,0 +1,9 @@
+const widgetRouter = require('express').Router();
+const { getAllWidget, createWidget } = require('./controller');
+
+widgetRouter.get('/allWidget/:page', getAllWidget);
+
+widgetRouter.post('/createWidget', createWidget);
+
+
+module.exports = widgetRouter;
\ No newline at end of file
diff --git a/api/widget/service.js b/api/widget/service.js
new file mode 100644
index 0000000000000000000000000000000000000000..705512b899812413ba854892fa4f60fe91ac8f50
--- /dev/null
+++ b/api/widget/service.js
@@ -0,0 +1,35 @@
+// const logger = require('utils/logger');
+
+const Widget = require("../models/widget");
+const Template = require("../models/template")
+
+const getAllWidget = async (page) => {
+  try {
+    const template = await Template.findOne({ name: page}).populate('widgets.widgetId');
+    if (!template) {
+      return res.status(404).json({ error: 'Template not found' });
+    }
+    res.status(200).json(template);
+  } catch (error) {
+    throw error
+  }
+
+};
+
+const createWidget = async (data) => {
+  try {
+    console.log("in service")
+    const widget = new Widget(data);
+    await widget.save();
+    return { status: 201, id: widget._id, message: 'Widget created successfully' };
+  } catch (error) {
+    throw error
+  }
+
+};
+
+
+module.exports = {
+  getAllWidget,
+  createWidget,
+};
\ No newline at end of file
diff --git a/swagger.yaml b/swagger.yaml
index b170eb5bc2afe077fc5dc30432445a85b084d78d..812af00b4f006f197380c03fae8bb1ca83dca530 100644
--- a/swagger.yaml
+++ b/swagger.yaml
@@ -9,7 +9,7 @@ info:
 #     description: Local server
 
 paths:
-  /template/{page}:
+  /template/template/{page}:
     get:
       tags:
         - "Template"
@@ -62,7 +62,7 @@ paths:
                   error:
                     type: string
 
-  /widget/allLayout/{page}:
+  /widget/allWidget/{page}:
     get:
       tags:
         - "Widget"
@@ -312,7 +312,7 @@ paths:
                 desc:
                   type: string
                   description: A description of the template
-                  example: "Template for the homepage layout"
+                  example: "Template for the homepage widget"
                 widgets:
                   type: array
                   description: A list of widgets mapped to the template