diff --git a/redfish-core/include/utils/query_param.hpp b/redfish-core/include/utils/query_param.hpp
index 5e9ef13..f51993e 100644
--- a/redfish-core/include/utils/query_param.hpp
+++ b/redfish-core/include/utils/query_param.hpp
@@ -49,7 +49,6 @@
 {
 namespace query_param
 {
-inline constexpr size_t maxEntriesPerPage = 1000;
 
 enum class ExpandType : uint8_t
 {
@@ -178,6 +177,7 @@
     std::optional<size_t> skip = std::nullopt;
 
     // Top
+    static constexpr size_t maxTop = 1000; // Max entries a response contain
     std::optional<size_t> top = std::nullopt;
 
     // Select
@@ -334,7 +334,7 @@
     }
 
     // Range check for sanity.
-    if (query.top > maxEntriesPerPage)
+    if (query.top > Query::maxTop)
     {
         return QueryError::OutOfRange;
     }
@@ -411,8 +411,7 @@
             if (topRet == QueryError::OutOfRange)
             {
                 messages::queryParameterOutOfRange(
-                    res, value, "$top",
-                    "0-" + std::to_string(maxEntriesPerPage));
+                    res, value, "$top", "0-" + std::to_string(Query::maxTop));
                 return std::nullopt;
             }
         }
diff --git a/redfish-core/lib/log_services.hpp b/redfish-core/lib/log_services.hpp
index 8c062aa..ee3ccfc 100644
--- a/redfish-core/lib/log_services.hpp
+++ b/redfish-core/lib/log_services.hpp
@@ -1170,8 +1170,7 @@
         {
             return;
         }
-        size_t top =
-            delegatedQuery.top.value_or(query_param::maxEntriesPerPage);
+        size_t top = delegatedQuery.top.value_or(query_param::Query::maxTop);
         size_t skip = delegatedQuery.skip.value_or(0);
 
         // Collections don't include the static data added by SubRoute
@@ -1899,8 +1898,7 @@
         }
         // If we weren't provided top and skip limits, use the defaults.
         size_t skip = delegatedQuery.skip.value_or(0);
-        size_t top =
-            delegatedQuery.top.value_or(query_param::maxEntriesPerPage);
+        size_t top = delegatedQuery.top.value_or(query_param::Query::maxTop);
         size_t logCount = 0;
         // This vector only store the entries we want to expose that
         // control by skip and top.
@@ -2200,8 +2198,7 @@
         }
 
         size_t skip = delegatedQuery.skip.value_or(0);
-        size_t top =
-            delegatedQuery.top.value_or(query_param::maxEntriesPerPage);
+        size_t top = delegatedQuery.top.value_or(query_param::Query::maxTop);
 
         // Collections don't include the static data added by SubRoute
         // because it has a duplicate entry for members
@@ -3512,8 +3509,7 @@
         asyncResp->res.jsonValue["Members"] = nlohmann::json::array();
         asyncResp->res.jsonValue["Members@odata.count"] = 0;
         size_t skip = delegatedQuery.skip.value_or(0);
-        size_t top =
-            delegatedQuery.top.value_or(query_param::maxEntriesPerPage);
+        size_t top = delegatedQuery.top.value_or(query_param::Query::maxTop);
         getCurrentBootNumber(asyncResp, skip, top);
         });
 }
