diff --git a/vpd-manager/include/worker.hpp b/vpd-manager/include/worker.hpp
index 38d108d..25f692e 100644
--- a/vpd-manager/include/worker.hpp
+++ b/vpd-manager/include/worker.hpp
@@ -43,12 +43,16 @@
      *
      * @param[in] pathToConfigJSON - Path to the config JSON, if applicable.
      * @param[in] i_maxThreadCount - Maximum thread while collecting FRUs VPD.
+     * @param[in] i_vpdCollectionMode - Mode in which VPD collection should take
+     * place.
      *
      * Note: Throws std::exception in case of construction failure. Caller needs
      * to handle to detect successful object creation.
      */
     Worker(std::string pathToConfigJson = std::string(),
-           uint8_t i_maxThreadCount = constants::MAX_THREADS);
+           uint8_t i_maxThreadCount = constants::MAX_THREADS,
+           types::VpdCollectionMode i_vpdCollectionMode =
+               types::VpdCollectionMode::DEFAULT_MODE);
 
     /**
      * @brief Destructor
@@ -153,6 +157,16 @@
     }
 
     /**
+     * @brief API to get VPD collection mode
+     *
+     * @return VPD collection mode enum value
+     */
+    inline types::VpdCollectionMode getVpdCollectionMode() const
+    {
+        return m_vpdCollectionMode;
+    }
+
+    /**
      * @brief Collect single FRU VPD
      * API can be used to perform VPD collection for the given FRU, only if the
      * current state of the system matches with the state at which the FRU is
@@ -565,5 +579,9 @@
 
     // List of EEPROM paths for which VPD collection thread creation has failed.
     std::forward_list<std::string> m_failedEepromPaths;
+
+    // VPD collection mode
+    types::VpdCollectionMode m_vpdCollectionMode{
+        types::VpdCollectionMode::DEFAULT_MODE};
 };
 } // namespace vpd
