diff --git a/redfish-core/lib/aggregation_service.hpp b/redfish-core/lib/aggregation_service.hpp
new file mode 100644
index 0000000..e03047a
--- /dev/null
+++ b/redfish-core/lib/aggregation_service.hpp
@@ -0,0 +1,63 @@
+#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 <nlohmann/json.hpp>
+
+#include <functional>
+#include <memory>
+
+namespace redfish
+{
+
+inline void handleAggregationServiceHead(
+    App& app, const crow::Request& req,
+    const std::shared_ptr<bmcweb::AsyncResp>& asyncResp)
+{
+    if (!redfish::setUpRedfishRoute(app, req, asyncResp))
+    {
+        return;
+    }
+    asyncResp->res.addHeader(
+        boost::beast::http::field::link,
+        "</redfish/v1/JsonSchemas/AggregationService/AggregationService.json>; rel=describedby");
+}
+
+inline void handleAggregationServiceGet(
+    App& app, const crow::Request& req,
+    const std::shared_ptr<bmcweb::AsyncResp>& asyncResp)
+{
+    if (!redfish::setUpRedfishRoute(app, req, asyncResp))
+    {
+        return;
+    }
+    asyncResp->res.addHeader(
+        boost::beast::http::field::link,
+        "</redfish/v1/JsonSchemas/AggregationService/AggregationService.json>; rel=describedby");
+    nlohmann::json& json = asyncResp->res.jsonValue;
+    json["@odata.id"] = "/redfish/v1/AggregationService";
+    json["@odata.type"] = "#AggregationService.v1_0_1.AggregationService";
+    json["Id"] = "AggregationService";
+    json["Name"] = "Aggregation Service";
+    json["Description"] = "Aggregation Service";
+    json["ServiceEnabled"] = true;
+}
+
+inline void requestAggregationServiceRoutes(App& app)
+{
+    BMCWEB_ROUTE(app, "/redfish/v1/AggregationService/")
+        .privileges(redfish::privileges::headAggregationService)
+        .methods(boost::beast::http::verb::head)(
+            std::bind_front(handleAggregationServiceHead, std::ref(app)));
+    BMCWEB_ROUTE(app, "/redfish/v1/AggregationService/")
+        .privileges(redfish::privileges::getAggregationService)
+        .methods(boost::beast::http::verb::get)(
+            std::bind_front(handleAggregationServiceGet, std::ref(app)));
+}
+
+} // namespace redfish
diff --git a/redfish-core/lib/service_root.hpp b/redfish-core/lib/service_root.hpp
index 98d39d6..7d586cb 100644
--- a/redfish-core/lib/service_root.hpp
+++ b/redfish-core/lib/service_root.hpp
@@ -58,6 +58,10 @@
         "/redfish/v1/SessionService/Sessions";
     asyncResp->res.jsonValue["AccountService"]["@odata.id"] =
         "/redfish/v1/AccountService";
+#ifdef BMCWEB_ENABLE_REDFISH_AGGREGATION
+    asyncResp->res.jsonValue["AggregationService"]["@odata.id"] =
+        "/redfish/v1/AggregationService";
+#endif
     asyncResp->res.jsonValue["Chassis"]["@odata.id"] = "/redfish/v1/Chassis";
     asyncResp->res.jsonValue["JsonSchemas"]["@odata.id"] =
         "/redfish/v1/JsonSchemas";
