diff --git a/apps/provisioning_api/lib/Controller/GroupsController.php b/apps/provisioning_api/lib/Controller/GroupsController.php
index 5114c6f01d57b6b7ba35056060c2ec3185b16de9..765a7ea48e8a7a49bc5d9146a9a6b6d6c7b6ac4a 100644
--- a/apps/provisioning_api/lib/Controller/GroupsController.php
+++ b/apps/provisioning_api/lib/Controller/GroupsController.php
@@ -177,12 +177,13 @@ class GroupsController extends AUserData {
 	 * @NoAdminRequired
 	 *
 	 * @param string $groupId
+	 * @param string $search
 	 * @param int $limit
 	 * @param int $offset
 	 * @return DataResponse
 	 * @throws OCSException
 	 */
-	public function getGroupUsersDetails(string $groupId, int $limit = null, int $offset = 0): DataResponse {
+	public function getGroupUsersDetails(string $groupId, string $search = '', int $limit = null, int $offset = 0): DataResponse {
 		$user = $this->userSession->getUser();
 		$isSubadminOfGroup = false;
 
@@ -197,9 +198,9 @@ class GroupsController extends AUserData {
 		// Check subadmin has access to this group
 		if($this->groupManager->isAdmin($user->getUID())
 		   || $isSubadminOfGroup) {
-			$users = $this->groupManager->get($groupId)->getUsers();
+			$users = $this->groupManager->get($groupId)->searchUsers($search, $limit, $offset);
+
 			// Extract required number
-			$users = array_slice($users, $offset, $limit);
 			$users = array_keys($users);
 			$usersDetails = [];
 			foreach ($users as $userId) {
diff --git a/lib/private/Group/Group.php b/lib/private/Group/Group.php
index cc6315263d449b2d80729c035d4b1ada39d99c55..275b697bc3ba7c7596adb826e746807103a3d876 100644
--- a/lib/private/Group/Group.php
+++ b/lib/private/Group/Group.php
@@ -211,10 +211,10 @@ class Group implements IGroup {
 			$userIds = $backend->usersInGroup($this->gid, $search, $limit, $offset);
 			$users += $this->getVerifiedUsers($userIds);
 			if (!is_null($limit) and $limit <= 0) {
-				return array_values($users);
+				return $users;
 			}
 		}
-		return array_values($users);
+		return $users;
 	}
 
 	/**
diff --git a/tests/lib/Group/GroupTest.php b/tests/lib/Group/GroupTest.php
index c7cbbc2321bcdeedd124bbed5b7a3d9023203fd9..a0b77bbe4d7f3061a2835110b04ad712ad6b98fd 100644
--- a/tests/lib/Group/GroupTest.php
+++ b/tests/lib/Group/GroupTest.php
@@ -303,7 +303,7 @@ class GroupTest extends \Test\TestCase {
 		$users = $group->searchUsers('2');
 
 		$this->assertEquals(1, count($users));
-		$user2 = $users[0];
+		$user2 = $users['user2'];
 		$this->assertEquals('user2', $user2->getUID());
 	}
 
@@ -329,7 +329,7 @@ class GroupTest extends \Test\TestCase {
 		$users = $group->searchUsers('2');
 
 		$this->assertEquals(1, count($users));
-		$user2 = $users[0];
+		$user2 = $users['user2'];
 		$this->assertEquals('user2', $user2->getUID());
 	}
 
@@ -348,7 +348,7 @@ class GroupTest extends \Test\TestCase {
 		$users = $group->searchUsers('user', 1, 1);
 
 		$this->assertEquals(1, count($users));
-		$user2 = $users[0];
+		$user2 = $users['user2'];
 		$this->assertEquals('user2', $user2->getUID());
 	}
 
@@ -374,8 +374,8 @@ class GroupTest extends \Test\TestCase {
 		$users = $group->searchUsers('user', 2, 1);
 
 		$this->assertEquals(2, count($users));
-		$user2 = $users[0];
-		$user1 = $users[1];
+		$user2 = $users['user2'];
+		$user1 = $users['user1'];
 		$this->assertEquals('user2', $user2->getUID());
 		$this->assertEquals('user1', $user1->getUID());
 	}