diff --git a/vpd-manager/include/utility/json_utility.hpp b/vpd-manager/include/utility/json_utility.hpp
index 9a78b68..4bf3846 100644
--- a/vpd-manager/include/utility/json_utility.hpp
+++ b/vpd-manager/include/utility/json_utility.hpp
@@ -1158,5 +1158,45 @@
         return nlohmann::json{};
     }
 }
+
+/**
+ * @brief API to get list of FRUs for which "monitorPresence" is true.
+ *
+ * @param[in] i_sysCfgJsonObj - System config JSON object.
+ *
+ * @return On success, returns list of FRUs for which "monitorPresence" is true,
+ * empty list on error.
+ */
+inline std::vector<types::Path> getFrusWithPresenceMonitoring(
+    const nlohmann::json& i_sysCfgJsonObj) noexcept
+{
+    std::vector<types::Path> l_frusWithPresenceMonitoring;
+    try
+    {
+        if (!i_sysCfgJsonObj.contains("frus"))
+        {
+            throw JsonException("Missing frus tag in system config JSON.");
+        }
+
+        const nlohmann::json& l_listOfFrus =
+            i_sysCfgJsonObj["frus"].get_ref<const nlohmann::json::object_t&>();
+
+        for (const auto& l_aFru : l_listOfFrus)
+        {
+            if (l_aFru.at(0).value("monitorPresence", false))
+            {
+                l_frusWithPresenceMonitoring.emplace_back(
+                    l_aFru.at(0).value("inventoryPath", ""));
+            }
+        }
+    }
+    catch (const std::exception& l_ex)
+    {
+        logging::logMessage(
+            "Failed to get list of FRUs with presence monitoring, error: " +
+            std::string(l_ex.what()));
+    }
+    return l_frusWithPresenceMonitoring;
+}
 } // namespace jsonUtility
 } // namespace vpd
