diff --git a/Redfish.md b/Redfish.md
index 42039e2..e8eb939 100644
--- a/Redfish.md
+++ b/Redfish.md
@@ -847,6 +847,7 @@
 
 - PCIeInterface
   - LanesInUse
+- Status
 
 ### /redfish/v1/Systems/system/Processors/
 
diff --git a/redfish-core/lib/pcie.hpp b/redfish-core/lib/pcie.hpp
index 45625f7..2754216 100644
--- a/redfish-core/lib/pcie.hpp
+++ b/redfish-core/lib/pcie.hpp
@@ -217,6 +217,31 @@
     return std::nullopt;
 }
 
+inline void getPCIeDeviceState(const std::shared_ptr<bmcweb::AsyncResp>& aResp,
+                               const std::string& pcieDevicePath,
+                               const std::string& service)
+{
+    sdbusplus::asio::getProperty<bool>(
+        *crow::connections::systemBus, service, pcieDevicePath,
+        "xyz.openbmc_project.Inventory.Item", "Present",
+        [aResp](const boost::system::error_code& ec, const bool value) {
+        if (ec)
+        {
+            if (ec.value() != EBADR)
+            {
+                BMCWEB_LOG_ERROR << "DBUS response error for State";
+                messages::internalError(aResp->res);
+            }
+            return;
+        }
+
+        if (!value)
+        {
+            aResp->res.jsonValue["Status"]["State"] = "Absent";
+        }
+        });
+}
+
 inline void getPCIeDeviceAsset(const std::shared_ptr<bmcweb::AsyncResp>& aResp,
                                const std::string& pcieDevicePath,
                                const std::string& service)
@@ -371,6 +396,7 @@
         "redfish", "v1", "Systems", "system", "PCIeDevices", pcieDeviceId);
     aResp->res.jsonValue["Name"] = "PCIe Device";
     aResp->res.jsonValue["Id"] = pcieDeviceId;
+    aResp->res.jsonValue["Status"]["State"] = "Enabled";
 }
 
 inline void handlePCIeDeviceGet(App& app, const crow::Request& req,
@@ -394,6 +420,7 @@
                               const std::string& service) {
         addPCIeDeviceCommonProperties(aResp, pcieDeviceId);
         getPCIeDeviceAsset(aResp, pcieDevicePath, service);
+        getPCIeDeviceState(aResp, pcieDevicePath, service);
         getPCIeDeviceProperties(
             aResp, pcieDevicePath, service,
             [aResp, pcieDeviceId](
