diff --git a/vpd-tool/include/tool_constants.hpp b/vpd-tool/include/tool_constants.hpp
index 6e89957..26c8e75 100644
--- a/vpd-tool/include/tool_constants.hpp
+++ b/vpd-tool/include/tool_constants.hpp
@@ -30,5 +30,9 @@
 constexpr auto objectMapperService = "xyz.openbmc_project.ObjectMapper";
 constexpr auto objectMapperObjectPath = "/xyz/openbmc_project/object_mapper";
 constexpr auto objectMapperInfName = "xyz.openbmc_project.ObjectMapper";
+constexpr auto chassisStateManagerService = "xyz.openbmc_project.State.Chassis";
+constexpr auto chassisStateManagerObjectPath =
+    "/xyz/openbmc_project/state/chassis0";
+constexpr auto chassisStateManagerInfName = "xyz.openbmc_project.State.Chassis";
 } // namespace constants
 } // namespace vpd
diff --git a/vpd-tool/include/tool_utils.hpp b/vpd-tool/include/tool_utils.hpp
index 598cdd2..97359c9 100644
--- a/vpd-tool/include/tool_utils.hpp
+++ b/vpd-tool/include/tool_utils.hpp
@@ -834,5 +834,39 @@
     return l_valueRead;
 }
 
+/**
+ * @brief API to check if chassis is powered off.
+ *
+ * This API queries Phosphor Chassis State Manager to know whether
+ * chassis is powered off.
+ *
+ * @return true if chassis is powered off, false otherwise.
+ */
+inline bool isChassisPowerOff()
+{
+    try
+    {
+        // ToDo: Handle in case system has multiple chassis
+        auto l_powerState = readDbusProperty(
+            constants::chassisStateManagerService,
+            constants::chassisStateManagerObjectPath,
+            constants::chassisStateManagerInfName, "CurrentPowerState");
+
+        if (auto l_curPowerState = std::get_if<std::string>(&l_powerState);
+            l_curPowerState &&
+            ("xyz.openbmc_project.State.Chassis.PowerState.Off" ==
+             *l_curPowerState))
+        {
+            return true;
+        }
+    }
+    catch (const std::exception& l_ex)
+    {
+        // Todo: Enale log when verbose is enabled
+        std::cerr << l_ex.what() << std::endl;
+    }
+    return false;
+}
+
 } // namespace utils
 } // namespace vpd
diff --git a/vpd-tool/include/vpd_tool.hpp b/vpd-tool/include/vpd_tool.hpp
index 7898d00..d1248da 100644
--- a/vpd-tool/include/vpd_tool.hpp
+++ b/vpd-tool/include/vpd_tool.hpp
@@ -287,5 +287,17 @@
      * @return On success returns 0, otherwise returns -1.
      */
     int dumpInventory(bool i_dumpTable = false) const noexcept;
+
+    /**
+     * @brief Resets the VPD on DBus for all the Frus.
+     *
+     * API clears the inventory persisted data and restarts the phosphor
+     * inventory manager(PIM) DBus service and the VPD manager service. VPD
+     * manager service collects the VPD for all the FRU's listed on the system
+     * config JSON and calls PIM to publish VPD on DBus.
+     *
+     * @return On success returns 0, otherwise returns -1.
+     */
+    int resetVpdOnDbus();
 };
 } // namespace vpd
