diff --git a/phosphor-regulators/src/config_file_parser.cpp b/phosphor-regulators/src/config_file_parser.cpp
index 0b4673d..be28fdc 100644
--- a/phosphor-regulators/src/config_file_parser.cpp
+++ b/phosphor-regulators/src/config_file_parser.cpp
@@ -80,6 +80,11 @@
         action = parseCompareVPD(element["compare_vpd"]);
         ++propertyCount;
     }
+    else if (element.contains("i2c_capture_bytes"))
+    {
+        action = parseI2CCaptureBytes(element["i2c_capture_bytes"]);
+        ++propertyCount;
+    }
     else if (element.contains("i2c_compare_bit"))
     {
         action = parseI2CCompareBit(element["i2c_compare_bit"]);
@@ -429,6 +434,31 @@
     return values;
 }
 
+std::unique_ptr<I2CCaptureBytesAction> parseI2CCaptureBytes(const json& element)
+{
+    verifyIsObject(element);
+    unsigned int propertyCount{0};
+
+    // Required register property
+    const json& regElement = getRequiredProperty(element, "register");
+    uint8_t reg = parseHexByte(regElement);
+    ++propertyCount;
+
+    // Required count property
+    const json& countElement = getRequiredProperty(element, "count");
+    uint8_t count = parseUint8(countElement);
+    if (count < 1)
+    {
+        throw std::invalid_argument{"Invalid byte count: Must be > 0"};
+    }
+    ++propertyCount;
+
+    // Verify no invalid properties exist
+    verifyPropertyCount(element, propertyCount);
+
+    return std::make_unique<I2CCaptureBytesAction>(reg, count);
+}
+
 std::unique_ptr<I2CCompareBitAction> parseI2CCompareBit(const json& element)
 {
     verifyIsObject(element);
diff --git a/phosphor-regulators/src/config_file_parser.hpp b/phosphor-regulators/src/config_file_parser.hpp
index 63dcfd6..1062ced 100644
--- a/phosphor-regulators/src/config_file_parser.hpp
+++ b/phosphor-regulators/src/config_file_parser.hpp
@@ -22,6 +22,7 @@
 #include "compare_vpd_action.hpp"
 #include "configuration.hpp"
 #include "device.hpp"
+#include "i2c_capture_bytes_action.hpp"
 #include "i2c_compare_bit_action.hpp"
 #include "i2c_compare_byte_action.hpp"
 #include "i2c_compare_bytes_action.hpp"
@@ -358,6 +359,19 @@
 std::vector<uint8_t> parseHexByteArray(const nlohmann::json& element);
 
 /**
+ * Parses a JSON element containing an i2c_capture_bytes action.
+ *
+ * Returns the corresponding C++ I2CCaptureBytesAction object.
+ *
+ * Throws an exception if parsing fails.
+ *
+ * @param element JSON element
+ * @return I2CCaptureBytesAction object
+ */
+std::unique_ptr<I2CCaptureBytesAction>
+    parseI2CCaptureBytes(const nlohmann::json& element);
+
+/**
  * Parses a JSON element containing an i2c_compare_bit action.
  *
  * Returns the corresponding C++ I2CCompareBitAction object.
