diff --git a/redfish-core/include/registries.hpp b/redfish-core/include/registries.hpp
index 7ee5232..6b30be9 100644
--- a/redfish-core/include/registries.hpp
+++ b/redfish-core/include/registries.hpp
@@ -16,6 +16,18 @@
 #pragma once
 namespace redfish::message_registries
 {
+struct Header
+{
+    const char* copyright;
+    const char* type;
+    const char* id;
+    const char* name;
+    const char* language;
+    const char* description;
+    const char* registryPrefix;
+    const char* registryVersion;
+    const char* owningEntity;
+};
 
 struct Message
 {
diff --git a/redfish-core/include/registries/base_message_registry.hpp b/redfish-core/include/registries/base_message_registry.hpp
index 1d54fdd..472f51e 100644
--- a/redfish-core/include/registries/base_message_registry.hpp
+++ b/redfish-core/include/registries/base_message_registry.hpp
@@ -22,7 +22,17 @@
 
 namespace redfish::message_registries::base
 {
-
+const Header header = {
+    .copyright = "Copyright 2014-2018 DMTF. All rights reserved.",
+    .type = "#MessageRegistry.v1_0_0.MessageRegistry",
+    .id = "Base.1.4.0",
+    .name = "Base Message Registry",
+    .language = "en",
+    .description = "This registry defines the base messages for Redfish",
+    .registryPrefix = "Base",
+    .registryVersion = "1.4.0",
+    .owningEntity = "DMTF",
+};
 const std::array registry = {
     MessageEntry{
         "AccessDenied",
diff --git a/redfish-core/lib/message_registries.hpp b/redfish-core/lib/message_registries.hpp
index f01caf9..e44e97d 100644
--- a/redfish-core/lib/message_registries.hpp
+++ b/redfish-core/lib/message_registries.hpp
@@ -100,8 +100,10 @@
         asyncResp->res.jsonValue["Name"] = "Base Message Registry File";
         asyncResp->res.jsonValue["Description"] =
             "DMTF Base Message Registry File Location";
-        asyncResp->res.jsonValue["Id"] = "Base";
-        asyncResp->res.jsonValue["Registry"] = "Base.1.4";
+        asyncResp->res.jsonValue["Id"] =
+            message_registries::base::header.registryPrefix;
+        asyncResp->res.jsonValue["Registry"] =
+            message_registries::base::header.id;
         nlohmann::json &messageRegistryLanguageArray =
             asyncResp->res.jsonValue["Languages"];
         messageRegistryLanguageArray = nlohmann::json::array();
@@ -144,17 +146,22 @@
         std::shared_ptr<AsyncResp> asyncResp = std::make_shared<AsyncResp>(res);
 
         asyncResp->res.jsonValue["@Redfish.Copyright"] =
-            "Copyright 2014-2018 DMTF. All rights reserved.";
+            message_registries::base::header.copyright;
         asyncResp->res.jsonValue["@odata.type"] =
-            "#MessageRegistry.v1_0_0.MessageRegistry";
-        asyncResp->res.jsonValue["Id"] = "Base.1.4.0";
-        asyncResp->res.jsonValue["Name"] = "Base Message Registry";
-        asyncResp->res.jsonValue["Language"] = "en";
+            message_registries::base::header.type;
+        asyncResp->res.jsonValue["Id"] = message_registries::base::header.id;
+        asyncResp->res.jsonValue["Name"] =
+            message_registries::base::header.name;
+        asyncResp->res.jsonValue["Language"] =
+            message_registries::base::header.language;
         asyncResp->res.jsonValue["Description"] =
-            "This registry defines the base messages for Redfish";
-        asyncResp->res.jsonValue["RegistryPrefix"] = "Base";
-        asyncResp->res.jsonValue["RegistryVersion"] = "1.4.0";
-        asyncResp->res.jsonValue["OwningEntity"] = "DMTF";
+            message_registries::base::header.description;
+        asyncResp->res.jsonValue["RegistryPrefix"] =
+            message_registries::base::header.registryPrefix;
+        asyncResp->res.jsonValue["RegistryVersion"] =
+            message_registries::base::header.registryVersion;
+        asyncResp->res.jsonValue["OwningEntity"] =
+            message_registries::base::header.owningEntity;
         nlohmann::json &messageArray = asyncResp->res.jsonValue["Messages"];
         messageArray = nlohmann::json::array();
 
diff --git a/scripts/parse_registries.py b/scripts/parse_registries.py
index d9d6cf3..3eff312 100644
--- a/scripts/parse_registries.py
+++ b/scripts/parse_registries.py
@@ -37,8 +37,6 @@
 
 namespace redfish::message_registries::{}
 {{
-
-const std::array registry = {{
 '''
 
 SCRIPT_DIR = os.path.dirname(os.path.realpath(__file__))
@@ -65,6 +63,21 @@
 
     with open(file, 'w') as registry:
         registry.write(REGISTRY_HEADER.format(namespace))
+        # Parse the Registry header info
+        registry.write("const Header header = {")
+        registry.write(".copyright = \"{}\",".format(json["@Redfish.Copyright"]))
+        registry.write(".type = \"{}\",".format(json["@odata.type"]))
+        registry.write(".id = \"{}\",".format(json["Id"]))
+        registry.write(".name = \"{}\",".format(json["Name"]))
+        registry.write(".language = \"{}\",".format(json["Language"]))
+        registry.write(".description = \"{}\",".format(json["Description"]))
+        registry.write(".registryPrefix = \"{}\",".format(json["RegistryPrefix"]))
+        registry.write(".registryVersion = \"{}\",".format(json["RegistryVersion"]))
+        registry.write(".owningEntity = \"{}\",".format(json["OwningEntity"]))
+        registry.write("};")
+
+        # Parse each Message entry
+        registry.write("const std::array registry = {")
         for messageId, message in sorted(json["Messages"].items()):
             registry.write("MessageEntry{")
             registry.write("\"{}\",".format(messageId))
