diff --git a/config/install/jsonapi_extras.settings.yml b/config/install/jsonapi_extras.settings.yml
index 1b22a1d..95c0895 100644
--- a/config/install/jsonapi_extras.settings.yml
+++ b/config/install/jsonapi_extras.settings.yml
@@ -1 +1,2 @@
 path_prefix: jsonapi
+include_count: false
diff --git a/config/schema/jsonapi_extras.schema.yml b/config/schema/jsonapi_extras.schema.yml
index 8fa206a..15b86c4 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'
+    include_count:
+      type: boolean
+      label: 'Include count in collection responses'
+      description: 'If activated, all collection responses will return a total record count for the provided query.'
diff --git a/src/Form/JsonapiExtrasSettingsForm.php b/src/Form/JsonapiExtrasSettingsForm.php
index a080738..98e3bb0 100644
--- a/src/Form/JsonapiExtrasSettingsForm.php
+++ b/src/Form/JsonapiExtrasSettingsForm.php
@@ -39,6 +39,13 @@ class JsonapiExtrasSettingsForm extends ConfigFormBase {
       '#default_value' => $config->get('path_prefix'),
     ];
 
+    $form['include_count'] = [
+      '#title' => $this->t('Include count in collection queries'),
+      '#type' => 'checkbox',
+      '#description' => $this->t('If activated, all collection responses will return a total record count for the provided query.'),
+      '#default_value' => $config->get('include_count'),
+    ];
+
     return parent::buildForm($form, $form_state);
   }
 
@@ -52,6 +59,10 @@ class JsonapiExtrasSettingsForm extends ConfigFormBase {
         ->save();
     }
 
+    $this->config('jsonapi_extras.settings')
+      ->set('include_count', $form_state->getValue('include_count'))
+      ->save();
+
     // Rebuild the router.
     \Drupal::service('router.builder')->setRebuildNeeded();
 
diff --git a/src/JsonapiExtrasServiceProvider.php b/src/JsonapiExtrasServiceProvider.php
index e84f1d9..7ca2ffe 100644
--- a/src/JsonapiExtrasServiceProvider.php
+++ b/src/JsonapiExtrasServiceProvider.php
@@ -24,6 +24,7 @@ class JsonapiExtrasServiceProvider extends ServiceProviderBase {
       // plugin manager.
       $definition->addArgument(new Reference('entity.repository'));
       $definition->addArgument(new Reference('plugin.manager.resource_field_enhancer'));
+      $definition->addArgument(new Reference('config.factory'));
     }
   }
 
diff --git a/src/ResourceType/ConfigurableResourceType.php b/src/ResourceType/ConfigurableResourceType.php
index 3280f3b..83711bb 100644
--- a/src/ResourceType/ConfigurableResourceType.php
+++ b/src/ResourceType/ConfigurableResourceType.php
@@ -6,6 +6,7 @@ use Drupal\Component\Plugin\Exception\PluginNotFoundException;
 use Drupal\jsonapi\ResourceType\ResourceType;
 use Drupal\jsonapi_extras\Entity\JsonapiResourceConfig;
 use Drupal\jsonapi_extras\Plugin\ResourceFieldEnhancerManager;
+use Drupal\Core\Config\ConfigFactoryInterface;
 
 /**
  * Defines a configurable resource type.
@@ -27,6 +28,11 @@ class ConfigurableResourceType extends ResourceType {
   protected $enhancerManager;
 
   /**
+   * @var ConfigFactoryInterface
+   */
+  protected $configFactory;
+
+  /**
    * Instantiates a ResourceType object.
    *
    * @param string $entity_type_id
@@ -40,11 +46,12 @@ class ConfigurableResourceType extends ResourceType {
    * @param \Drupal\jsonapi_extras\Plugin\ResourceFieldEnhancerManager $enhancer_manager
    *   Plugin manager for enhancers.
    */
-  public function __construct($entity_type_id, $bundle, $deserialization_target_class, JsonapiResourceConfig $resource_config, ResourceFieldEnhancerManager $enhancer_manager) {
+  public function __construct($entity_type_id, $bundle, $deserialization_target_class, JsonapiResourceConfig $resource_config, ResourceFieldEnhancerManager $enhancer_manager, ConfigFactoryInterface $config_factory) {
     parent::__construct($entity_type_id, $bundle, $deserialization_target_class);
 
     $this->jsonapiResourceConfig = $resource_config;
     $this->enhancerManager = $enhancer_manager;
+    $this->configFactory = $config_factory;
 
     if ($resource_config->get('resourceType')) {
       // Set the type name.
@@ -87,6 +94,15 @@ class ConfigurableResourceType extends ResourceType {
   }
 
   /**
+   * {@inheritdoc}
+   */
+  public function includeCount() {
+    return $this->configFactory
+      ->get('jsonapi_extras.settings')
+      ->get('include_count');
+  }
+
+  /**
    * Get the resource field configuration.
    *
    * @param string $field_name
diff --git a/src/ResourceType/ConfigurableResourceTypeRepository.php b/src/ResourceType/ConfigurableResourceTypeRepository.php
index 8d89549..a014942 100644
--- a/src/ResourceType/ConfigurableResourceTypeRepository.php
+++ b/src/ResourceType/ConfigurableResourceTypeRepository.php
@@ -8,6 +8,7 @@ use Drupal\Core\Entity\EntityRepositoryInterface;
 use Drupal\jsonapi\ResourceType\ResourceTypeRepository;
 use Drupal\jsonapi_extras\Plugin\ResourceFieldEnhancerManager;
 use Symfony\Component\HttpKernel\Exception\PreconditionFailedHttpException;
+use Drupal\Core\Config\ConfigFactoryInterface;
 
 /**
  * Provides a repository of JSON API configurable resource types.
@@ -29,12 +30,18 @@ class ConfigurableResourceTypeRepository extends ResourceTypeRepository {
   protected $enhancerManager;
 
   /**
+   * @var ConfigFactoryInterface
+   */
+  protected $configFactory;
+
+  /**
    * {@inheritdoc}
    */
-  public function __construct(EntityTypeManagerInterface $entity_type_manager, EntityTypeBundleInfoInterface $bundle_manager, EntityRepositoryInterface $entity_repository, ResourceFieldEnhancerManager $enhancer_manager) {
+  public function __construct(EntityTypeManagerInterface $entity_type_manager, EntityTypeBundleInfoInterface $bundle_manager, EntityRepositoryInterface $entity_repository, ResourceFieldEnhancerManager $enhancer_manager, ConfigFactoryInterface $config_factory) {
     parent::__construct($entity_type_manager, $bundle_manager);
     $this->entityRepository = $entity_repository;
     $this->enhancerManager = $enhancer_manager;
+    $this->configFactory = $config_factory;
   }
 
   /**
@@ -94,7 +101,8 @@ class ConfigurableResourceTypeRepository extends ResourceTypeRepository {
           $bundle,
           $this->entityTypeManager->getDefinition($entity_type_id)->getClass(),
           $resource_config,
-          $this->enhancerManager
+          $this->enhancerManager,
+          $this->configFactory
         );
       }, $bundles);
       $resource_types = array_merge($resource_types, $current_types);
