diff --git a/redfish-core/lib/odata.hpp b/redfish-core/lib/odata.hpp
new file mode 100644
index 0000000..beb2647
--- /dev/null
+++ b/redfish-core/lib/odata.hpp
@@ -0,0 +1,56 @@
+#pragma once
+
+#include "app.hpp"
+#include "error_messages.hpp"
+#include "http_request.hpp"
+#include "http_response.hpp"
+#include "query.hpp"
+#include "registries/privilege_registry.hpp"
+#include "utility.hpp"
+
+#include <boost/url/format.hpp>
+#include <nlohmann/json.hpp>
+
+#include <memory>
+#include <ranges>
+#include <string>
+#include <string_view>
+
+namespace redfish
+{
+
+inline void redfishOdataGet(const crow::Request& /*req*/,
+                            const std::shared_ptr<bmcweb::AsyncResp>& asyncResp)
+{
+    nlohmann::json::object_t obj;
+    obj["@odata.context"] = "/redfish/v1/$metadata";
+    nlohmann::json::array_t value;
+    for (std::string_view service :
+         {"$metadata", "odata", "JsonSchemas", "Service", "ServiceRoot",
+          "Systems", "Chassis", "Managers", "SessionService", "AccountService",
+          "UpdateService"})
+    {
+        nlohmann::json::object_t serviceObj;
+        serviceObj["kind"] = "Singleton";
+        serviceObj["name"] = "$metadata";
+        boost::urls::url url = boost::urls::format("/redfish/v1/{}", service);
+        if (service == "Service")
+        {
+            url = boost::urls::url("/redfish/v1");
+        }
+        serviceObj["url"] = url;
+        value.emplace_back(std::move(serviceObj));
+    }
+
+    obj["value"] = std::move(value);
+
+    asyncResp->res.jsonValue = std::move(obj);
+}
+
+inline void requestRoutesOdata(App& app)
+{
+    BMCWEB_ROUTE(app, "/redfish/v1/odata/")
+        .methods(boost::beast::http::verb::get)(redfishOdataGet);
+}
+
+} // namespace redfish
diff --git a/redfish-core/src/redfish.cpp b/redfish-core/src/redfish.cpp
index 57378d5..3cda4ec 100644
--- a/redfish-core/src/redfish.cpp
+++ b/redfish-core/src/redfish.cpp
@@ -26,6 +26,7 @@
 #include "metric_report.hpp"
 #include "metric_report_definition.hpp"
 #include "network_protocol.hpp"
+#include "odata.hpp"
 #include "pcie.hpp"
 #include "power.hpp"
 #include "power_subsystem.hpp"
@@ -53,6 +54,7 @@
 RedfishService::RedfishService(App& app)
 {
     requestRoutesMetadata(app);
+    requestRoutesOdata(app);
 
     requestAccountServiceRoutes(app);
     if constexpr (BMCWEB_REDFISH_AGGREGATION)
diff --git a/static/redfish/v1/odata/index.json b/static/redfish/v1/odata/index.json
deleted file mode 100644
index dbde0a8..0000000
--- a/static/redfish/v1/odata/index.json
+++ /dev/null
@@ -1,60 +0,0 @@
-{
-    "@odata.context": "/redfish/v1/$metadata",
-    "value": [
-        {
-            "kind": "Singleton",
-            "name": "$metadata",
-            "url": "/redfish/v1/$metadata"
-        },
-        {
-            "kind": "Singleton",
-            "name": "odata",
-            "url": "/redfish/v1/odata"
-        },
-        {
-            "kind": "Singleton",
-            "name": "JsonSchemas",
-            "url": "/redfish/v1/JsonSchemas"
-        },
-        {
-            "kind": "Singleton",
-            "name": "Service",
-            "url": "/redfish/v1/"
-        },
-        {
-            "kind": "Singleton",
-            "name": "ServiceRoot",
-            "url": "/redfish/v1/ServiceRoot"
-        },
-        {
-            "kind": "Singleton",
-            "name": "Systems",
-            "url": "/redfish/v1/Systems"
-        },
-        {
-            "kind": "Singleton",
-            "name": "Chassis",
-            "url": "/redfish/v1/Chassis"
-        },
-        {
-            "kind": "Singleton",
-            "name": "Managers",
-            "url": "/redfish/v1/Managers"
-        },
-        {
-            "kind": "Singleton",
-            "name": "SessionService",
-            "url": "/redfish/v1/SessionService"
-        },
-        {
-            "kind": "Singleton",
-            "name": "AccountService",
-            "url": "/redfish/v1/AccountService"
-        },
-        {
-            "kind": "Singleton",
-            "name": "UpdateService",
-            "url": "/redfish/v1/UpdateService"
-        }
-    ]
-}
