diff --git a/openstackclient/compute/v2/hypervisor.py b/openstackclient/compute/v2/hypervisor.py
index d4b4003bf9..971e3d2a1e 100644
--- a/openstackclient/compute/v2/hypervisor.py
+++ b/openstackclient/compute/v2/hypervisor.py
@@ -69,7 +69,11 @@ class ListHypervisor(command.Lister):
         parser.add_argument(
             '--matching',
             metavar='<hostname>',
-            help=_("Filter hypervisors using <hostname> substring")
+            help=_(
+                "Filter hypervisors using <hostname> substring"
+                "Hypervisor Type and Host IP are not returned "
+                "when using microversion 2.52 or lower"
+            )
         )
         parser.add_argument(
             '--marker',
@@ -128,6 +132,9 @@ class ListHypervisor(command.Lister):
                 raise exceptions.CommandError(msg)
             list_opts['limit'] = parsed_args.limit
 
+        if parsed_args.matching:
+            list_opts['hypervisor_hostname_pattern'] = parsed_args.matching
+
         column_headers = (
             "ID",
             "Hypervisor Hostname",
@@ -142,6 +149,7 @@ class ListHypervisor(command.Lister):
             'host_ip',
             'state'
         )
+
         if parsed_args.long:
             if not sdk_utils.supports_microversion(compute_client, '2.88'):
                 column_headers += (
@@ -157,11 +165,7 @@ class ListHypervisor(command.Lister):
                     'memory_size'
                 )
 
-        if parsed_args.matching:
-            data = compute_client.find_hypervisor(
-                parsed_args.matching, ignore_missing=False)
-        else:
-            data = compute_client.hypervisors(**list_opts, details=True)
+        data = compute_client.hypervisors(**list_opts, details=True)
 
         return (
             column_headers,
diff --git a/openstackclient/tests/unit/compute/v2/test_hypervisor.py b/openstackclient/tests/unit/compute/v2/test_hypervisor.py
index e5804665c1..ab14072d97 100644
--- a/openstackclient/tests/unit/compute/v2/test_hypervisor.py
+++ b/openstackclient/tests/unit/compute/v2/test_hypervisor.py
@@ -131,7 +131,8 @@ class TestHypervisorList(TestHypervisor):
         parsed_args = self.check_parser(self.cmd, arglist, verifylist)
 
         # Fake the return value of search()
-        self.sdk_client.find_hypervisor.return_value = [self.hypervisors[0]]
+        self.sdk_client.hypervisors.return_value = [self.hypervisors[0]]
+
         self.data = (
             (
                 self.hypervisors[0].id,
@@ -147,10 +148,9 @@ class TestHypervisorList(TestHypervisor):
         # containing the data to be listed.
         columns, data = self.cmd.take_action(parsed_args)
 
-        self.sdk_client.find_hypervisor.assert_called_with(
-            self.hypervisors[0].name,
-            ignore_missing=False
-        )
+        self.sdk_client.hypervisors.assert_called_with(
+            hypervisor_hostname_pattern=self.hypervisors[0].name,
+            details=True)
         self.assertEqual(self.columns, columns)
         self.assertEqual(self.data, tuple(data))
 
@@ -164,7 +164,7 @@ class TestHypervisorList(TestHypervisor):
         parsed_args = self.check_parser(self.cmd, arglist, verifylist)
 
         # Fake exception raised from search()
-        self.sdk_client.find_hypervisor.side_effect = \
+        self.sdk_client.hypervisors.side_effect = \
             exceptions.NotFound(None)
 
         self.assertRaises(exceptions.NotFound,