diff --git a/app/helpers/groups/group_members_helper.rb b/app/helpers/groups/group_members_helper.rb
index 0fb7dc3805a60647e81eedd784ef57a83b2c6643..1bba9d789f5cfd855b62328c88ca7ef7a14cd9de 100644
--- a/app/helpers/groups/group_members_helper.rb
+++ b/app/helpers/groups/group_members_helper.rb
@@ -14,7 +14,7 @@ def group_members_app_data(
     banned:,
     include_relations:,
     search:,
-    pending_members:,
+    pending_members_count:,
     placeholder_users:
   )
     {
diff --git a/app/helpers/projects/project_members_helper.rb b/app/helpers/projects/project_members_helper.rb
index 8909edab055a3e8da361c709535024c80c0b1636..c70a18992dab314033cd0774540f7b30f123b720 100644
--- a/app/helpers/projects/project_members_helper.rb
+++ b/app/helpers/projects/project_members_helper.rb
@@ -19,7 +19,7 @@ def project_member_header_subtext(project)
   private
 
   def project_members_app_data(
-    project, members:, invited:, access_requests:, include_relations:, search:, pending_members:) # rubocop:disable Lint/UnusedMethodArgument -- Argument used in EE
+    project, members:, invited:, access_requests:, include_relations:, search:, pending_members_count:) # rubocop:disable Lint/UnusedMethodArgument -- Argument used in EE
     {
       user: project_members_list_data(project, members, { param_name: :page, params: { search_groups: nil } }),
       group: project_group_links_list_data(project, include_relations, search),
diff --git a/app/views/groups/group_members/index.html.haml b/app/views/groups/group_members/index.html.haml
index 87ba30b88353c6a3fc7f83a503a98ce8cb45342e..9ff3f0421e42ff74bef53018658bba434c2fed1c 100644
--- a/app/views/groups/group_members/index.html.haml
+++ b/app/views/groups/group_members/index.html.haml
@@ -32,7 +32,7 @@
                                                                              banned: @banned || [],
                                                                              include_relations: @include_relations,
                                                                              search: params[:search_groups],
-                                                                             pending_members: @pending_promotion_members,
+                                                                             pending_members_count: @pending_promotion_members_count,
                                                                              placeholder_users: @placeholder_users_count
                                                                             ).to_json } }
       = gl_loading_icon(css_class: 'gl-my-5', size: 'md')
diff --git a/app/views/projects/project_members/index.html.haml b/app/views/projects/project_members/index.html.haml
index 8a4e9de95e13928038f0bd667d18ab7487a6557e..f0c38b19cfe4fb2f340eb51e5a297092b99039e0 100644
--- a/app/views/projects/project_members/index.html.haml
+++ b/app/views/projects/project_members/index.html.haml
@@ -46,5 +46,5 @@
                                                                                       access_requests: @requesters,
                                                                                       include_relations: @include_relations,
                                                                                       search: params[:search_groups],
-                                                                                      pending_members: @pending_promotion_members) } }
+                                                                                      pending_members_count: @pending_promotion_members_count) } }
       = gl_loading_icon(css_class: 'gl-my-5', size: 'md')
diff --git a/ee/app/assets/javascripts/members/promotion_requests/store/state.js b/ee/app/assets/javascripts/members/promotion_requests/store/state.js
index 65703f9d8213b2b67721ca8b2242960a3df8ee68..a0b4b91a75569195ba5cbe7ac441486a139af5f2 100644
--- a/ee/app/assets/javascripts/members/promotion_requests/store/state.js
+++ b/ee/app/assets/javascripts/members/promotion_requests/store/state.js
@@ -1,5 +1,5 @@
-export default ({ pagination }) => ({
+export default ({ totalItems }) => ({
   pagination: {
-    totalItems: pagination?.totalItems ?? 0,
+    totalItems: totalItems ?? 0,
   },
 });
diff --git a/ee/app/controllers/ee/groups/group_members_controller.rb b/ee/app/controllers/ee/groups/group_members_controller.rb
index 14862ad3ff06125c8f7060cab12a362016891772..6b46743fc371426b9645a6bbf65463bd80d22ab3 100644
--- a/ee/app/controllers/ee/groups/group_members_controller.rb
+++ b/ee/app/controllers/ee/groups/group_members_controller.rb
@@ -40,7 +40,7 @@ def index
         # rubocop:disable Gitlab/ModuleWithInstanceVariables
         @banned = presented_banned_members
         @memberships_with_custom_role = present_group_members(group_memberships_with_custom_role)
-        @pending_promotion_members = pending_promotion_members
+        @pending_promotion_members_count = pending_promotion_members_count
         # rubocop:enable Gitlab/ModuleWithInstanceVariables
       end
 
@@ -168,14 +168,13 @@ def banned_members(params: {})
           .banned_from(group)
       end
 
-      def pending_promotion_members
+      def pending_promotion_members_count
         return unless can?(current_user, :admin_group_member, group)
 
         GitlabSubscriptions::MemberManagement::MemberApprovalFinder
           .new(current_user: current_user, params: params, source: group)
           .execute
-          .page(params[:promotion_requests_page])
-          .per(MEMBER_PER_PAGE_LIMIT)
+          .count
       end
     end
   end
diff --git a/ee/app/controllers/ee/projects/project_members_controller.rb b/ee/app/controllers/ee/projects/project_members_controller.rb
index 99db8a2c6f0ea0a379443b41be84843b7b5b3d48..081a863e487052f45aff807d0c2214ea3b4a47ca 100644
--- a/ee/app/controllers/ee/projects/project_members_controller.rb
+++ b/ee/app/controllers/ee/projects/project_members_controller.rb
@@ -13,7 +13,7 @@ def index
         super
 
         # rubocop:disable Gitlab/ModuleWithInstanceVariables -- Need to initialize pending members
-        @pending_promotion_members = pending_promotion_members
+        @pending_promotion_members_count = pending_promotion_members_count
         # rubocop:enable Gitlab/ModuleWithInstanceVariables
       end
 
@@ -37,14 +37,13 @@ def non_invited_members
         super.non_awaiting
       end
 
-      def pending_promotion_members
+      def pending_promotion_members_count
         return unless can?(current_user, :admin_project_member, project)
 
         GitlabSubscriptions::MemberManagement::MemberApprovalFinder
           .new(current_user: current_user, params: params, source: project)
           .execute
-          .page(params[:promotion_requests_page])
-          .per(MEMBER_PER_PAGE_LIMIT)
+          .count
       end
     end
   end
diff --git a/ee/app/helpers/ee/groups/group_members_helper.rb b/ee/app/helpers/ee/groups/group_members_helper.rb
index 9c01b40507a05ad40767a2f4f435cda175974e8a..48f1f61005bf5561463daeb3fa0b871880a940fc 100644
--- a/ee/app/helpers/ee/groups/group_members_helper.rb
+++ b/ee/app/helpers/ee/groups/group_members_helper.rb
@@ -21,7 +21,7 @@ def group_members_app_data(
     banned:,
     include_relations:,
     search:,
-    pending_members:,
+    pending_members_count:,
     placeholder_users:
   )
     super.merge!({
@@ -30,7 +30,7 @@ def group_members_app_data(
       can_filter_by_enterprise: group.domain_verification_available? && can?(current_user, :admin_group_member, group),
       banned: group_members_list_data(group, banned),
       manage_member_roles_path: manage_member_roles_path(group),
-      promotion_request: pending_members.present? ? promotion_pending_members_list_data(pending_members) : [],
+      promotion_request: { total_items: pending_members_count },
       can_approve_access_requests: !::Namespaces::FreeUserCap::Enforcement.new(group.root_ancestor).reached_limit?,
       namespace_user_limit: ::Namespaces::FreeUserCap.dashboard_limit
     })
diff --git a/ee/app/helpers/ee/members_helper.rb b/ee/app/helpers/ee/members_helper.rb
index 06dae14db6b2bddb86d395173c002cc0ee07e899..dc5da0df5dcb7b1cba7f77e80162ffdf894214a9 100644
--- a/ee/app/helpers/ee/members_helper.rb
+++ b/ee/app/helpers/ee/members_helper.rb
@@ -9,20 +9,6 @@ def members_page?
 
     private
 
-    def promotion_pending_members_list_data(pending_promotion_members)
-      pagination = { param_name: :promotion_requests_page, params: { page: nil } }
-      {
-        data: promotion_pending_members_serialized(pending_promotion_members),
-        pagination: members_pagination_data(pending_promotion_members, pagination)
-      }
-    end
-
-    def promotion_pending_members_serialized(pending_promotion_members)
-      GitlabSubscriptions::MemberManagement::MemberApprovalSerializer.new.represent(
-        pending_promotion_members, { current_user: current_user }
-      )
-    end
-
     def member_header_manage_namespace_members_text(namespace)
       manage_text = _(
         'To manage seats for all members associated with this group and its subgroups and projects, ' \
diff --git a/ee/app/helpers/ee/projects/project_members_helper.rb b/ee/app/helpers/ee/projects/project_members_helper.rb
index bb0613754ff6f027baf406629680646d3c262165..d3e49de066ddb2066e4733eb34fe5932ec94c61d 100644
--- a/ee/app/helpers/ee/projects/project_members_helper.rb
+++ b/ee/app/helpers/ee/projects/project_members_helper.rb
@@ -7,11 +7,11 @@ module ProjectMembersHelper
 
       override :project_members_app_data
       def project_members_app_data(
-        project, members:, invited:, access_requests:, include_relations:, search:, pending_members:
+        project, members:, invited:, access_requests:, include_relations:, search:, pending_members_count:
       )
         super.merge(
           manage_member_roles_path: manage_member_roles_path(project),
-          promotion_request: pending_members.present? ? promotion_pending_members_list_data(pending_members) : [],
+          promotion_request: { total_items: pending_members_count },
           can_approve_access_requests: can_approve_access_requests(project),
           namespace_user_limit: ::Namespaces::FreeUserCap.dashboard_limit
         )
diff --git a/ee/spec/frontend/members/promotion_requests/store/state_spec.js b/ee/spec/frontend/members/promotion_requests/store/state_spec.js
index df90e3bd0b449643d087e620c6b7d5b4f684705c..20ab4522541ec6b14bf21bde99678a12425520ba 100644
--- a/ee/spec/frontend/members/promotion_requests/store/state_spec.js
+++ b/ee/spec/frontend/members/promotion_requests/store/state_spec.js
@@ -3,7 +3,7 @@ import { pagination } from '../mock_data';
 
 describe('Promotion requests store state', () => {
   it('inits the state', () => {
-    const state = createState({ pagination });
+    const state = createState(pagination);
     expect(state).toEqual({ pagination });
   });
 });
diff --git a/ee/spec/helpers/ee/groups/group_members_helper_spec.rb b/ee/spec/helpers/ee/groups/group_members_helper_spec.rb
index 8ed16a90fec94216eb7a4fdcab4ac733010fe51f..07440b09022e76d01575770ac7887a23b65768df 100644
--- a/ee/spec/helpers/ee/groups/group_members_helper_spec.rb
+++ b/ee/spec/helpers/ee/groups/group_members_helper_spec.rb
@@ -22,7 +22,7 @@
       banned: banned,
       include_relations: [:inherited, :direct],
       search: nil,
-      pending_members: [],
+      pending_members_count: [],
       placeholder_users: {}
     )
   end
@@ -139,7 +139,7 @@
       end
     end
 
-    context 'with promotion_request' do
+    context 'with promotion_request_count' do
       let(:type) { :for_group_member }
       let(:member_namespace) { group }
 
@@ -152,12 +152,12 @@
           banned: banned,
           include_relations: [:inherited, :direct],
           search: nil,
-          pending_members: pending_members,
+          pending_members_count: pending_members_count,
           placeholder_users: {}
         )
       end
 
-      it_behaves_like 'adding promotion_request in app data'
+      it_behaves_like 'adding promotion_request_count in app data'
     end
 
     describe 'available roles' do
diff --git a/ee/spec/helpers/projects/project_members_helper_spec.rb b/ee/spec/helpers/projects/project_members_helper_spec.rb
index 7feda6434f1800e8c50523b58b1b9adc22e722a9..0beef38b2b5ec2c5d3a884fe8ae6ef0c2a1a959a 100644
--- a/ee/spec/helpers/projects/project_members_helper_spec.rb
+++ b/ee/spec/helpers/projects/project_members_helper_spec.rb
@@ -52,7 +52,7 @@ def call_project_members_app_data_json
         access_requests: [],
         include_relations: [:inherited, :direct],
         search: nil,
-        pending_members: []
+        pending_members_count: []
       )
     end
 
@@ -81,17 +81,17 @@ def initialize(user)
         access_requests: [],
         include_relations: [:inherited, :direct],
         search: nil,
-        pending_members: pending_members
+        pending_members_count: pending_members_count
       )
     end
 
-    let(:pending_members) { nil }
+    let(:pending_members_count) { nil }
 
-    context 'with promotion_request' do
+    context 'with promotion_request_count' do
       let(:type) { :for_project_member }
       let(:member_namespace) { project.project_namespace }
 
-      it_behaves_like 'adding promotion_request in app data'
+      it_behaves_like 'adding promotion_request_count in app data'
     end
 
     context 'with `can_approve_access_requests`' do
diff --git a/ee/spec/requests/groups/group_members_controller_spec.rb b/ee/spec/requests/groups/group_members_controller_spec.rb
index 0302742e12e8f3a54aef59b3930ea07984b3fb29..509a27a0a41761c530859953287891bb12c03c39 100644
--- a/ee/spec/requests/groups/group_members_controller_spec.rb
+++ b/ee/spec/requests/groups/group_members_controller_spec.rb
@@ -102,23 +102,10 @@
 
       context 'with member_promotion management feature enabled' do
         context 'when user can admin group' do
-          it 'assigns @pending_promotion_members with the correct pending members' do
+          it 'assigns @pending_promotion_members_count with the correct pending members' do
             get_group_members
 
-            expect(assigns(:pending_promotion_members)).to match_array(pending_member_approvals)
-          end
-
-          context 'with pagination' do
-            let(:params) { { promotion_requests_page: 2 } }
-
-            it 'paginates @pending_promotion_members correctly' do
-              stub_const("EE::#{described_class}::MEMBER_PER_PAGE_LIMIT", 1)
-
-              get_group_members
-
-              expect(assigns(:pending_promotion_members).size).to eq(1)
-              expect(assigns(:pending_promotion_members)).to contain_exactly(pending_member_approvals.second)
-            end
+            expect(assigns(:pending_promotion_members_count)).to eq(2)
           end
         end
 
@@ -127,19 +114,19 @@
             group.add_developer(user)
           end
 
-          it 'does not assigns @pending_promotion_members' do
+          it 'does not assigns @pending_promotion_members_count' do
             get_group_members
 
-            expect(assigns(:pending_promotion_members)).to eq(nil)
+            expect(assigns(:pending_promotion_members_count)).to eq(nil)
           end
         end
       end
 
       shared_examples "empty response" do
-        it 'assigns @pending_promotion_members be empty' do
+        it 'assigns @pending_promotion_members_count to be 0' do
           get_group_members
 
-          expect(assigns(:pending_promotion_members)).to be_empty
+          expect(assigns(:pending_promotion_members_count)).to eq(0)
         end
       end
 
diff --git a/ee/spec/requests/projects/project_members_controller_spec.rb b/ee/spec/requests/projects/project_members_controller_spec.rb
index c2eb40cb099e146090ed702336c48407f9b6321c..3bf97fa5fe40240e795b49159cd1605c749bd949 100644
--- a/ee/spec/requests/projects/project_members_controller_spec.rb
+++ b/ee/spec/requests/projects/project_members_controller_spec.rb
@@ -37,45 +37,31 @@
 
       context 'with member_promotion management feature enabled' do
         context 'when user can admin project' do
-          it 'assigns @pending_promotion_members' do
+          it 'assigns @pending_promotion_members_count' do
             make_request
 
-            expect(assigns(:pending_promotion_members)).to match_array(pending_member_approvals)
-          end
-
-          context 'with pagination' do
-            let(:param) { { promotion_requests_page: 2 } }
-
-            it 'paginates @pending_promotion_members correctly' do
-              group.add_owner(user)
-              stub_const("EE::#{described_class}::MEMBER_PER_PAGE_LIMIT", 1)
-
-              make_request
-
-              expect(assigns(:pending_promotion_members).size).to eq(1)
-              expect(assigns(:pending_promotion_members)).to contain_exactly(pending_member_approvals.second)
-            end
+            expect(assigns(:pending_promotion_members_count)).to eq(2)
           end
         end
 
         context 'when user cannot admin project' do
-          it 'does not assigns @pending_promotion_members' do
+          it 'does not assigns @pending_promotion_members_count' do
             user = create(:user)
             sign_in(user)
             project.add_developer(user)
 
             make_request
 
-            expect(assigns(:pending_promotion_members)).to eq(nil)
+            expect(assigns(:pending_promotion_members_count)).to eq(nil)
           end
         end
       end
 
       shared_examples "empty response" do
-        it 'assigns @pending_promotion_members be empty' do
+        it 'assigns @pending_promotion_members_count be be 0' do
           make_request
 
-          expect(assigns(:pending_promotion_members)).to be_empty
+          expect(assigns(:pending_promotion_members_count)).to eq(0)
         end
       end
 
diff --git a/ee/spec/support/shared_examples/helpers/promotion_request_shared_examples.rb b/ee/spec/support/shared_examples/helpers/promotion_request_shared_examples.rb
index a74bf412b3873c3884cd4889a41d83d47a255a88..e957de84cdbcc7aeba9b2b642ea7840ab9116aa3 100644
--- a/ee/spec/support/shared_examples/helpers/promotion_request_shared_examples.rb
+++ b/ee/spec/support/shared_examples/helpers/promotion_request_shared_examples.rb
@@ -1,24 +1,21 @@
 # frozen_string_literal: true
 
-RSpec.shared_examples 'adding promotion_request in app data' do
-  context 'when pending_members is nil' do
-    let!(:pending_members) { nil }
+RSpec.shared_examples 'adding promotion_request_count in app data' do
+  context 'when pending_members_count is nil' do
+    let!(:pending_members_count) { nil }
 
-    it 'returns `promotion_request` property with []' do
-      expect(helper_app_data[:promotion_request]).to eq []
+    it 'returns `promotion_request_count` property with []' do
+      expect(helper_app_data[:promotion_request]).to include({ total_items: nil })
     end
   end
 
   context 'when pending_members is not nil' do
-    let!(:pending_members) do
+    let!(:pending_members_count) do
       create_list(:member_approval, 2, type, member_namespace: member_namespace)
     end
 
-    it 'returns valid `promotion_request`' do
-      expect(helper_app_data[:promotion_request].keys).to match_array([:data, :pagination])
-      expect(helper_app_data[:promotion_request][:data].size).to eq(2)
-      expect(helper_app_data[:promotion_request][:data].first.keys).to match_array [:id, :created_at,
-        :updated_at, :requested_by, :reviewed_by, :new_access_level, :old_access_level, :source, :user]
+    it 'returns valid `promotion_request_count`' do
+      expect(helper_app_data[:promotion_request].keys).to match_array([:total_items])
     end
   end
 end
diff --git a/spec/helpers/groups/group_members_helper_spec.rb b/spec/helpers/groups/group_members_helper_spec.rb
index ed60630560e6c554cf748d60ba73c80846cd0ad2..b2e8381d8c4d28b080762071c4e8a0816d0f1342 100644
--- a/spec/helpers/groups/group_members_helper_spec.rb
+++ b/spec/helpers/groups/group_members_helper_spec.rb
@@ -36,7 +36,7 @@
         banned: [],
         include_relations: [:inherited, :direct],
         search: nil,
-        pending_members: [],
+        pending_members_count: [],
         placeholder_users: {
           pagination: {
             total_items: 3,
@@ -121,7 +121,7 @@
             banned: [],
             include_relations: include_relations,
             search: nil,
-            pending_members: [],
+            pending_members_count: [],
             placeholder_users: {}
           )
         end
diff --git a/spec/helpers/projects/project_members_helper_spec.rb b/spec/helpers/projects/project_members_helper_spec.rb
index f874e5d338a1a51bbd0086fc47e4fdb428d75015..191795a9d4ccb82aa2635934331deefd93f692aa 100644
--- a/spec/helpers/projects/project_members_helper_spec.rb
+++ b/spec/helpers/projects/project_members_helper_spec.rb
@@ -32,7 +32,7 @@
             access_requests: present_members(access_requests),
             include_relations: [:inherited, :direct],
             search: nil,
-            pending_members: []
+            pending_members_count: []
           )
         )
       end
@@ -142,7 +142,7 @@
                 access_requests: present_members(access_requests),
                 include_relations: include_relations,
                 search: nil,
-                pending_members: []
+                pending_members_count: []
               )
             )
           end