diff --git a/redfish-core/include/utils/sw_utils.hpp b/redfish-core/include/utils/sw_utils.hpp
index 6695ef0..8f0cba8 100644
--- a/redfish-core/include/utils/sw_utils.hpp
+++ b/redfish-core/include/utils/sw_utils.hpp
@@ -371,6 +371,46 @@
 }
 
 /**
+ * @brief Put LowestSupportedVersion of input swId into json response
+ *
+ * This function will put the MinimumVersion from D-Bus of the input
+ * software id to ["LowestSupportedVersion"].
+ *
+ * @param[i,o] asyncResp    Async response object
+ * @param[i] swId The software ID to get Minimum Version for
+ * @param[i]   dbusSvc  The dbus service implementing the software object
+ *
+ * @return void
+ */
+inline void getSwMinimumVersion(
+    const std::shared_ptr<bmcweb::AsyncResp>& asyncResp,
+    const std::shared_ptr<std::string>& swId, const std::string& dbusSvc)
+{
+    BMCWEB_LOG_DEBUG("getSwMinimumVersion: svc {}, swId {}", dbusSvc, *swId);
+
+    sdbusplus::message::object_path path("/xyz/openbmc_project/software");
+    path /= *swId;
+
+    dbus::utility::getProperty<std::string>(
+        dbusSvc, path, "xyz.openbmc_project.Software.MinimumVersion",
+        "MinimumVersion",
+        [asyncResp](const boost::system::error_code& ec,
+                    const std::string& swMinimumVersion) {
+            if (ec)
+            {
+                // not all software has this interface and it is not critical
+                return;
+            }
+
+            BMCWEB_LOG_DEBUG("getSwMinimumVersion: MinimumVersion {}",
+                             swMinimumVersion);
+
+            asyncResp->res.jsonValue["LowestSupportedVersion"] =
+                swMinimumVersion;
+        });
+}
+
+/**
  * @brief Put status of input swId into json response
  *
  * This function will put the appropriate Redfish state of the input
diff --git a/redfish-core/lib/update_service.hpp b/redfish-core/lib/update_service.hpp
index 3699264..33875fc 100644
--- a/redfish-core/lib/update_service.hpp
+++ b/redfish-core/lib/update_service.hpp
@@ -1323,6 +1323,8 @@
 
                 found = true;
                 sw_util::getSwStatus(asyncResp, swId, obj.second[0].first);
+                sw_util::getSwMinimumVersion(asyncResp, swId,
+                                             obj.second[0].first);
                 getSoftwareVersion(asyncResp, obj.second[0].first, obj.first,
                                    *swId);
             }
