diff --git a/config/install/jsonapi_extras.settings.yml b/config/install/jsonapi_extras.settings.yml
index 1b22a1d..c1f6f0f 100644
--- a/config/install/jsonapi_extras.settings.yml
+++ b/config/install/jsonapi_extras.settings.yml
@@ -1 +1,2 @@
 path_prefix: jsonapi
+hide_disabled_resources: false
diff --git a/config/schema/jsonapi_extras.schema.yml b/config/schema/jsonapi_extras.schema.yml
index 8fa206a..891321a 100644
--- a/config/schema/jsonapi_extras.schema.yml
+++ b/config/schema/jsonapi_extras.schema.yml
@@ -58,3 +58,7 @@ jsonapi_extras.settings:
       type: string
       label: 'Path prefix'
       description: 'The path prefix for JSON API'
+    hide_disabled_resources:
+      type: boolean
+      label: 'Hide disabled resources'
+      description: 'Flag to show or hide disabled resources in the user interface.'
diff --git a/src/Form/JsonapiExtrasSettingsForm.php b/src/Form/JsonapiExtrasSettingsForm.php
index a080738..b6475af 100644
--- a/src/Form/JsonapiExtrasSettingsForm.php
+++ b/src/Form/JsonapiExtrasSettingsForm.php
@@ -39,6 +39,14 @@ class JsonapiExtrasSettingsForm extends ConfigFormBase {
       '#default_value' => $config->get('path_prefix'),
     ];
 
+    $form['hide_disabled_resources'] = [
+      '#title' => $this->t('Hide disabled resources'),
+      '#type' => 'checkbox',
+      '#required' => FALSE,
+      '#description' => $this->t('If checked, only enabled resources will be listed in the UI.'),
+      '#default_value' => $config->get('hide_disabled_resources'),
+    ];
+
     return parent::buildForm($form, $form_state);
   }
 
@@ -52,6 +60,10 @@ class JsonapiExtrasSettingsForm extends ConfigFormBase {
         ->save();
     }
 
+    $this->config('jsonapi_extras.settings')
+        ->set('hide_disabled_resources', $form_state->getValue('hide_disabled_resources'))
+        ->save();
+
     // Rebuild the router.
     \Drupal::service('router.builder')->setRebuildNeeded();
 
diff --git a/src/JsonapiResourceConfigListBuilder.php b/src/JsonapiResourceConfigListBuilder.php
index f99376b..4cf4ab1 100644
--- a/src/JsonapiResourceConfigListBuilder.php
+++ b/src/JsonapiResourceConfigListBuilder.php
@@ -138,7 +138,15 @@ class JsonapiResourceConfigListBuilder extends ConfigEntityListBuilder {
     ];
 
     $prefix = $this->config->get('path_prefix');
+    $hide_disabled_resources = $this->config->get('hide_disabled_resources', FALSE);
     foreach ($this->resourceTypeRepository->getResourceTypes(TRUE) as $resource_type) {
+
+      /** @var \Drupal\jsonapi_extras\Entity\JsonapiResourceConfig $resource_config */
+      $resource_config = $resource_type->getJsonapiResourceConfig();
+      if ($hide_disabled_resources && $resource_config->get('disabled')) {
+        continue;
+      }
+
       /** @var \Drupal\jsonapi_extras\ResourceType\ConfigurableResourceType $resource_type */
       $entity_type_id = $resource_type->getEntityTypeId();
       $bundle = $resource_type->getBundle();
@@ -188,8 +196,6 @@ class JsonapiResourceConfigListBuilder extends ConfigEntityListBuilder {
         ],
       ];
 
-      /** @var \Drupal\jsonapi_extras\Entity\JsonapiResourceConfig $resource_config */
-      $resource_config = $resource_type->getJsonapiResourceConfig();
       if ($resource_config->id()) {
         $row['state']['#value'] = $this->t('Overwritten');
         $row['state']['#attributes']['class'][] = 'label--overwritten';
