diff --git a/source/adios2/core/ADIOS.cpp b/source/adios2/core/ADIOS.cpp
index d6e10f6b562528f05c190ac0c72206e77656feb1..acd211aae52fccafae890d727a2ada7a630be3f7 100644
--- a/source/adios2/core/ADIOS.cpp
+++ b/source/adios2/core/ADIOS.cpp
@@ -79,6 +79,18 @@ IO &ADIOS::DeclareIO(const std::string ioName)
     return ioPair.first->second;
 }
 
+IO &ADIOS::GetIO(const std::string name)
+{
+    auto itIO = m_IOs.find(name);
+    if (itIO == m_IOs.end())
+    {
+        throw std::invalid_argument(
+            "ERROR: Unable to find previously defined IO object with name \"" +
+            name + "\" in call to GetIO.");
+    }
+    return itIO->second;
+}
+
 // PRIVATE FUNCTIONS
 void ADIOS::CheckMPI() const
 {
diff --git a/source/adios2/core/ADIOS.h b/source/adios2/core/ADIOS.h
index 6a5f9770f195216660cc51646a5717870547b3b4..c9e9937076f33f3d15f06c0d4cc02f304f38a2ef 100644
--- a/source/adios2/core/ADIOS.h
+++ b/source/adios2/core/ADIOS.h
@@ -80,6 +80,11 @@ public:
      */
     IO &DeclareIO(const std::string ioName);
 
+    /**
+     * Retrieve an already defined IO object
+     */
+    IO &GetIO(const std::string name);
+
 protected: // no const member to allow default empty and copy constructors
     /** XML File to be read containing configuration information */
     std::string m_ConfigFile;
diff --git a/source/adios2/core/IO.cpp b/source/adios2/core/IO.cpp
index 3210b5b97499e7012d0799890b69ae131c92951b..968d42e63545f5e4c7fad0c2ae621f3a2779234e 100644
--- a/source/adios2/core/IO.cpp
+++ b/source/adios2/core/IO.cpp
@@ -45,6 +45,8 @@ void IO::SetIOMode(const IOMode ioMode) { m_IOMode = ioMode; };
 
 void IO::SetParameters(const Params &parameters) { m_Parameters = parameters; }
 
+const Params &IO::GetParameters() const { return m_Parameters; }
+
 unsigned int IO::AddTransport(const std::string type,
                               const std::vector<std::string> &parametersVector)
 {
diff --git a/source/adios2/core/IO.h b/source/adios2/core/IO.h
index c2854aea1c34cdebec64f6b39b1f91b2d9c0bb8a..bf13346d8a2bf387a36e26a772937115036df511 100644
--- a/source/adios2/core/IO.h
+++ b/source/adios2/core/IO.h
@@ -87,6 +87,11 @@ public:
      */
     void SetParameters(const Params &parameters = Params());
 
+    /**
+     * Retrieve existing parameter set
+     */
+    const Params &GetParameters() const;
+
     /**
      * Adds a transport and its parameters for the method
      * @param type must be a supported transport type under /include/transport