diff --git a/extensions/openpower-pels/manager.cpp b/extensions/openpower-pels/manager.cpp
index 7e42020..3b1e118 100644
--- a/extensions/openpower-pels/manager.cpp
+++ b/extensions/openpower-pels/manager.cpp
@@ -641,9 +641,38 @@
     return {_logManager.lastEntryID(), _repo.lastPelID()};
 }
 
-std::string Manager::getPELJSON(uint32_t /*obmcLogID*/)
+std::string Manager::getPELJSON(uint32_t obmcLogID)
 {
-    return std::string{};
+    Repository::LogID id{Repository::LogID::Obmc(obmcLogID)};
+
+    // Throws InvalidArgument if not found
+    auto pelID = getPELIdFromBMCLogId(obmcLogID);
+
+    auto cmd = fmt::format("/usr/bin/peltool -i {:#x}", pelID);
+
+    FILE* pipe = popen(cmd.c_str(), "r");
+    if (!pipe)
+    {
+        log<level::ERR>(fmt::format("Error running {}", cmd).c_str());
+        throw common_error::InternalFailure();
+    }
+
+    std::string output;
+    std::array<char, 1024> buffer;
+    while (fgets(buffer.data(), buffer.size(), pipe) != nullptr)
+    {
+        output.append(buffer.data());
+    }
+
+    int rc = pclose(pipe);
+    if (WEXITSTATUS(rc) != 0)
+    {
+        log<level::ERR>(
+            fmt::format("Error running {}, rc = {}", cmd, rc).c_str());
+        throw common_error::InternalFailure();
+    }
+
+    return output;
 }
 
 void Manager::checkPelAndQuiesce(std::unique_ptr<openpower::pels::PEL>& pel)
diff --git a/extensions/openpower-pels/manager.hpp b/extensions/openpower-pels/manager.hpp
index ae8670f..4432634 100644
--- a/extensions/openpower-pels/manager.hpp
+++ b/extensions/openpower-pels/manager.hpp
@@ -211,7 +211,7 @@
      *
      * @return std::string - The fully parsed PEL in JSON
      */
-    std::string getPELJSON(uint32_t obmcLogID);
+    std::string getPELJSON(uint32_t obmcLogID) override;
 
     /**
      * @brief Converts the ESEL field in an OpenBMC event log to a
