diff --git a/openstackclient/common/extension.py b/openstackclient/common/extension.py
index a3f94c09dd..91ee228be5 100644
--- a/openstackclient/common/extension.py
+++ b/openstackclient/common/extension.py
@@ -47,6 +47,11 @@ class ListExtension(lister.Lister):
             action='store_true',
             default=False,
             help='List extensions for the Compute API')
+        parser.add_argument(
+            '--volume',
+            action='store_true',
+            default=False,
+            help='List extensions for the Volume API')
         return parser
 
     def take_action(self, parsed_args):
@@ -63,7 +68,8 @@ class ListExtension(lister.Lister):
         # by default we want to show everything, unless the
         # user specifies one or more of the APIs to show
         # for now, only identity and compute are supported.
-        show_all = (not parsed_args.identity and not parsed_args.compute)
+        show_all = (not parsed_args.identity and not parsed_args.compute
+                    and not parsed_args.volume)
 
         if parsed_args.identity or show_all:
             identity_client = self.app.client_manager.identity
@@ -81,6 +87,14 @@ class ListExtension(lister.Lister):
                 message = "Extensions list not supported by Compute API"
                 self.log.warning(message)
 
+        if parsed_args.volume or show_all:
+            volume_client = self.app.client_manager.volume
+            try:
+                data += volume_client.list_extensions.show_all()
+            except Exception:
+                message = "Extensions list not supported by Volume API"
+                self.log.warning(message)
+
         return (columns,
                 (utils.get_item_properties(
                     s, columns,
diff --git a/openstackclient/volume/client.py b/openstackclient/volume/client.py
index 9b37b8f53c..98e787d682 100644
--- a/openstackclient/volume/client.py
+++ b/openstackclient/volume/client.py
@@ -15,8 +15,11 @@
 
 import logging
 
+from cinderclient import extension
+from cinderclient.v1.contrib import list_extensions
 from cinderclient.v1 import volume_snapshots
 from cinderclient.v1 import volumes
+
 from openstackclient.common import utils
 
 # Monkey patch for v1 cinderclient
@@ -46,6 +49,7 @@ def make_client(instance):
     # Set client http_log_debug to True if verbosity level is high enough
     http_log_debug = utils.get_effective_log_level() <= logging.DEBUG
 
+    extensions = [extension.Extension('list_extensions', list_extensions)]
     client = volume_client(
         username=instance._username,
         api_key=instance._password,
@@ -54,7 +58,8 @@ def make_client(instance):
         cacert=instance._cacert,
         insecure=instance._insecure,
         region_name=instance._region_name,
-        http_log_debug=http_log_debug
+        extensions=extensions,
+        http_log_debug=http_log_debug,
     )
 
     # Populate the Cinder client to skip another auth query to Identity