diff --git a/eck.module b/eck.module
index 21982e6..a33200c 100644
--- a/eck.module
+++ b/eck.module
@@ -18,6 +18,7 @@
 use Drupal\eck\EckEntityTypeBundleInfo;
 use Drupal\eck\Entity\EckEntity;
 use Drupal\eck\Entity\EckEntityType;
+use Drupal\Core\Access\AccessResult;
 
 /**
  * Defines the online documentation url of the ECK module.
@@ -331,3 +332,15 @@ function eck_form_system_themes_admin_form_submit($form, FormStateInterface $for
     ->save();
   \Drupal::service('router.builder')->setRebuildNeeded();
 }
+
+/**
+ * Implements hook_jsonapi_entity_filter_access() for all eck entities.
+ */
+function eck_jsonapi_entity_filter_access(\Drupal\Core\Entity\EntityTypeInterface $entity_type, \Drupal\Core\Session\AccountInterface $account) {
+  if ($entity_type->getProvider() == 'eck') {
+    return ([
+      JSONAPI_FILTER_AMONG_ALL => AccessResult::allowedIfHasPermission($account, "view any {$entity_type->id()} entities"),
+      JSONAPI_FILTER_AMONG_OWN => AccessResult::allowedIfHasPermission($account, "view own {$entity_type->id()} entities"),
+      ]);
+  }
+}
\ No newline at end of file