diff --git a/rest/index.php b/rest/index.php
index da7e9ee2ca9d62d870fc7c0fd072dd83a555eb29..b3e9d3b830bfd932a1fc5d75cc044d0ed303bd65 100755
--- a/rest/index.php
+++ b/rest/index.php
@@ -192,6 +192,7 @@ $app->get('/folders/{id}/resources', \Folder\controllers\FolderController::class
 $app->post('/folders/{id}/resources', \Folder\controllers\FolderController::class . ':addResourcesById');
 $app->delete('/folders/{id}/resources', \Folder\controllers\FolderController::class . ':removeResourcesById');
 $app->get('/folders/{id}/resources/{resId}/events', \Folder\controllers\FolderController::class . ':getEventsFromFolder');
+$app->get('/folders/{id}/filters', \Folder\controllers\FolderController::class . ':getFilters');
 $app->put('/folders/{id}/sharing', \Folder\controllers\FolderController::class . ':sharing');
 
 //Groups
diff --git a/src/app/folder/controllers/FolderController.php b/src/app/folder/controllers/FolderController.php
index ba52c818f8be4f98d77e7f4d90a492f5d8cc6180..b84bec1c44d7745b6673519154bca03d62b12144 100755
--- a/src/app/folder/controllers/FolderController.php
+++ b/src/app/folder/controllers/FolderController.php
@@ -564,6 +564,32 @@ class FolderController
         return $response->withJson(['events' => $events]);
     }
 
+    public function getFilters(Request $request, Response $response, array $args)
+    {
+        if (!Validator::numeric()->notEmpty()->validate($args['id'])) {
+            return $response->withStatus(400)->withJson(['errors' => 'Route id is not an integer']);
+        }
+
+        if (!FolderController::hasFolder(['id' => $args['id'], 'userId' => $GLOBALS['id']])) {
+            return $response->withStatus(400)->withJson(['errors' => 'Folder out of perimeter']);
+        }
+
+        $foldersResources = ResourceFolderModel::get(['select' => ['res_id'], 'where' => ['folder_id = ?'], 'data' => [$args['id']]]);
+        $foldersResources = array_column($foldersResources, 'res_id');
+
+        if (empty($foldersResources)) {
+            return $response->withJson(['entities' => [], 'priorities' => [], 'categories' => [], 'statuses' => [], 'entitiesChildren' => []]);
+        }
+
+        $where = ['(res_id in (?))'];
+        $queryData = [$foldersResources];
+        $queryParams = $request->getQueryParams();
+
+        $filters = ResourceListController::getFormattedFilters(['where' => $where, 'queryData' => $queryData, 'queryParams' => $queryParams]);
+
+        return $response->withJson($filters);
+    }
+
     // login (string) : Login of user connected
     // folderId (integer) : Check specific folder
     // edition (boolean) : whether user can edit or not
diff --git a/src/app/resource/controllers/ResourceListController.php b/src/app/resource/controllers/ResourceListController.php
index 45b6e50bfaf18bfb22b81a2b6120e0bf9f4bcd62..5b9c95d5c1f8672c26e209b98818dd0766666536 100644
--- a/src/app/resource/controllers/ResourceListController.php
+++ b/src/app/resource/controllers/ResourceListController.php
@@ -171,215 +171,11 @@ class ResourceListController
         $where = [$whereClause];
         $queryData = [];
 
-        $data = $request->getQueryParams();
-        if (!empty($data['delayed']) && $data['delayed'] == 'true') {
-            $where[] = 'process_limit_date < CURRENT_TIMESTAMP';
-        }
-        if (!empty($data['search']) && mb_strlen($data['search']) >= 2) {
-            $where[] = '(alt_identifier ilike ? OR translate(subject, \'ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõöøùúûýýþÿŔŕ\', \'aaaaaaaceeeeiiiidnoooooouuuuybsaaaaaaaceeeeiiiidnoooooouuuyybyrr\') ilike translate(?, \'ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõöøùúûýýþÿŔŕ\', \'aaaaaaaceeeeiiiidnoooooouuuuybsaaaaaaaceeeeiiiidnoooooouuuyybyrr\'))';
-            $queryData[] = "%{$data['search']}%";
-            $queryData[] = "%{$data['search']}%";
-        }
+        $queryParams = $request->getQueryParams();
 
-        $wherePriorities = $where;
-        $whereCategories = $where;
-        $whereStatuses   = $where;
-        $whereEntities   = $where;
-        $dataPriorities  = $queryData;
-        $dataCategories  = $queryData;
-        $dataStatuses    = $queryData;
-        $dataEntities    = $queryData;
-
-        if (isset($data['priorities'])) {
-            if (empty($data['priorities'])) {
-                $tmpWhere = 'priority is null';
-            } else {
-                $replace = preg_replace('/(^,)|(,$)/', '', $data['priorities']);
-                $replace = preg_replace('/(,,)/', ',', $replace);
-                if ($replace != $data['priorities']) {
-                    $tmpWhere = '(priority is null OR priority in (?))';
-                } else {
-                    $tmpWhere = 'priority in (?)';
-                }
-                $dataCategories[] = explode(',', $replace);
-                $dataStatuses[]   = explode(',', $replace);
-                $dataEntities[]   = explode(',', $replace);
-            }
-
-            $whereCategories[] = $tmpWhere;
-            $whereStatuses[]   = $tmpWhere;
-            $whereEntities[]   = $tmpWhere;
-        }
-        if (isset($data['categories'])) {
-            if (empty($data['categories'])) {
-                $tmpWhere = 'category_id is null';
-            } else {
-                $replace = preg_replace('/(^,)|(,$)/', '', $data['categories']);
-                $replace = preg_replace('/(,,)/', ',', $replace);
-                if ($replace != $data['categories']) {
-                    $tmpWhere = '(category_id is null OR category_id in (?))';
-                } else {
-                    $tmpWhere = 'category_id in (?)';
-                }
-                $dataPriorities[] = explode(',', $replace);
-                $dataStatuses[]   = explode(',', $replace);
-                $dataEntities[]   = explode(',', $replace);
-            }
+        $filters = ResourceListController::getFormattedFilters(['where' => $where, 'queryData' => $queryData, 'queryParams' => $queryParams]);
 
-            $wherePriorities[] = $tmpWhere;
-            $whereStatuses[]   = $tmpWhere;
-            $whereEntities[]   = $tmpWhere;
-        }
-        if (!empty($data['statuses'])) {
-            $wherePriorities[] = 'status in (?)';
-            $dataPriorities[]  = explode(',', $data['statuses']);
-            $whereCategories[] = 'status in (?)';
-            $dataCategories[]  = explode(',', $data['statuses']);
-            $whereEntities[]   = 'status in (?)';
-            $dataEntities[]    = explode(',', $data['statuses']);
-        }
-        if (isset($data['entities'])) {
-            if (empty($data['entities'])) {
-                $tmpWhere = 'destination is null';
-            } else {
-                $replace = preg_replace('/(^,)|(,$)/', '', $data['entities']);
-                $replace = preg_replace('/(,,)/', ',', $replace);
-                if ($replace != $data['entities']) {
-                    $tmpWhere = '(destination is null OR destination in (?))';
-                } else {
-                    $tmpWhere = 'destination in (?)';
-                }
-                $dataPriorities[] = explode(',', $replace);
-                $dataCategories[] = explode(',', $replace);
-                $dataStatuses[] = explode(',', $replace);
-            }
-
-            $wherePriorities[] = $tmpWhere;
-            $whereCategories[] = $tmpWhere;
-            $whereStatuses[]   = $tmpWhere;
-        }
-        if (!empty($data['entitiesChildren'])) {
-            $entities = explode(',', $data['entitiesChildren']);
-            $entitiesChildren = [];
-            foreach ($entities as $entity) {
-                $children = EntityModel::getEntityChildren(['entityId' => $entity]);
-                $entitiesChildren = array_merge($entitiesChildren, $children);
-            }
-            if (!empty($entitiesChildren)) {
-                $wherePriorities[] = 'destination in (?)';
-                $dataPriorities[]  = $entitiesChildren;
-                $whereCategories[] = 'destination in (?)';
-                $dataCategories[]  = $entitiesChildren;
-                $whereStatuses[]   = 'destination in (?)';
-                $dataStatuses[]    = $entitiesChildren;
-            }
-        }
-
-        $priorities = [];
-        $rawPriorities = ResModel::getOnView([
-            'select'    => ['count(res_id)', 'priority'],
-            'where'     => $wherePriorities,
-            'data'      => $dataPriorities,
-            'groupBy'   => ['priority']
-        ]);
-        
-        foreach ($rawPriorities as $key => $value) {
-            $priority = null;
-            if (!empty($value['priority'])) {
-                $priority = PriorityModel::getById(['select' => ['label'], 'id' => $value['priority']]);
-            }
-            $priorities[] = [
-                'id'        => empty($value['priority']) ? null : $value['priority'],
-                'label'     => empty($priority['label']) ? '_UNDEFINED' : $priority['label'],
-                'count'     => $value['count']
-            ];
-        }
-
-        $categories = [];
-        $allCategories = ResModel::getCategories();
-        $rawCategories = ResModel::getOnView([
-            'select'    => ['count(res_id)', 'category_id'],
-            'where'     => $whereCategories,
-            'data'      => $dataCategories,
-            'groupBy'   => ['category_id']
-        ]);
-        foreach ($rawCategories as $key => $value) {
-            $label = null;
-            if (!empty($value['category_id'])) {
-                foreach ($allCategories as $category) {
-                    if ($value['category_id'] == $category['id']) {
-                        $label = $category['label'];
-                    }
-                }
-            }
-            $categories[] = [
-                'id'        => empty($value['category_id']) ? null : $value['category_id'],
-                'label'     => empty($label) ? '_UNDEFINED' : $label,
-                'count'     => $value['count']
-            ];
-        }
-
-        $statuses = [];
-        $rawStatuses = ResModel::getOnView([
-            'select'    => ['count(res_id)', 'status'],
-            'where'     => $whereStatuses,
-            'data'      => $dataStatuses,
-            'groupBy'   => ['status']
-        ]);
-        foreach ($rawStatuses as $key => $value) {
-            $status = StatusModel::getById(['select' => ['label_status'], 'id' => $value['status']]);
-            $statuses[] = [
-                'id'        => $value['status'],
-                'label'     => empty($status['label_status']) ? '_UNDEFINED' : $status['label_status'],
-                'count'     => $value['count']
-            ];
-        }
-
-        $entities = [];
-        $rawEntities = ResModel::getOnView([
-            'select'    => ['count(res_id)', 'destination'],
-            'where'     => $whereEntities,
-            'data'      => $dataEntities,
-            'groupBy'   => ['destination']
-        ]);
-        foreach ($rawEntities as $key => $value) {
-            $entity = null;
-            if (!empty($value['destination'])) {
-                $entity = EntityModel::getByEntityId(['select' => ['entity_label'], 'entityId' => $value['destination']]);
-            }
-            $entities[] = [
-                'entityId'  => empty($value['destination']) ? null : $value['destination'],
-                'label'     => empty($entity['entity_label']) ? '_UNDEFINED' : $entity['entity_label'],
-                'count'     => $value['count']
-            ];
-        }
-
-        $priorities = (count($priorities) >= 2) ? $priorities : [];
-        $categories = (count($categories) >= 2) ? $categories : [];
-        $statuses   = (count($statuses) >= 2) ? $statuses : [];
-        $entities   = (count($entities) >= 2) ? $entities : [];
-
-        $entitiesChildren = [];
-        foreach ($entities as $entity) {
-            if (!empty($entity['entityId'])) {
-                $children = EntityModel::getEntityChildren(['entityId' => $entity['entityId']]);
-                $count = 0;
-                foreach ($entities as $value) {
-                    if (in_array($value['entityId'], $children)) {
-                        $count += $value['count'];
-                    }
-                }
-            } else {
-                $count = $entity['count'];
-            }
-            $entitiesChildren[] = [
-                'entityId'  => $entity['entityId'],
-                'label'     => $entity['label'],
-                'count'     => $count
-            ];
-        }
-
-        return $response->withJson(['entities' => $entities, 'priorities' => $priorities, 'categories' => $categories, 'statuses' => $statuses, 'entitiesChildren' => $entitiesChildren]);
+        return $response->withJson($filters);
     }
 
     public static function getResourcesListQueryData(array $args)
@@ -1119,4 +915,223 @@ class ResourceListController
 
         return $formattedResources;
     }
+
+    public static function getFormattedFilters(array $args)
+    {
+        ValidatorModel::notEmpty($args, ['where']);
+        ValidatorModel::arrayType($args, ['where', 'queryData', 'queryParams']);
+
+        $data = $args['queryParams'];
+        $where = $args['where'];
+        $queryData = $args['queryData'];
+
+        if (!empty($data['delayed']) && $data['delayed'] == 'true') {
+            $where[] = 'process_limit_date < CURRENT_TIMESTAMP';
+        }
+        if (!empty($data['search']) && mb_strlen($data['search']) >= 2) {
+            $where[] = '(alt_identifier ilike ? OR translate(subject, \'ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõöøùúûýýþÿŔŕ\', \'aaaaaaaceeeeiiiidnoooooouuuuybsaaaaaaaceeeeiiiidnoooooouuuyybyrr\') ilike translate(?, \'ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõöøùúûýýþÿŔŕ\', \'aaaaaaaceeeeiiiidnoooooouuuuybsaaaaaaaceeeeiiiidnoooooouuuyybyrr\'))';
+            $queryData[] = "%{$data['search']}%";
+            $queryData[] = "%{$data['search']}%";
+        }
+
+        $wherePriorities = $where;
+        $whereCategories = $where;
+        $whereStatuses   = $where;
+        $whereEntities   = $where;
+        $dataPriorities  = $queryData;
+        $dataCategories  = $queryData;
+        $dataStatuses    = $queryData;
+        $dataEntities    = $queryData;
+
+        if (isset($data['priorities'])) {
+            if (empty($data['priorities'])) {
+                $tmpWhere = 'priority is null';
+            } else {
+                $replace = preg_replace('/(^,)|(,$)/', '', $data['priorities']);
+                $replace = preg_replace('/(,,)/', ',', $replace);
+                if ($replace != $data['priorities']) {
+                    $tmpWhere = '(priority is null OR priority in (?))';
+                } else {
+                    $tmpWhere = 'priority in (?)';
+                }
+                $dataCategories[] = explode(',', $replace);
+                $dataStatuses[]   = explode(',', $replace);
+                $dataEntities[]   = explode(',', $replace);
+            }
+
+            $whereCategories[] = $tmpWhere;
+            $whereStatuses[]   = $tmpWhere;
+            $whereEntities[]   = $tmpWhere;
+        }
+        if (isset($data['categories'])) {
+            if (empty($data['categories'])) {
+                $tmpWhere = 'category_id is null';
+            } else {
+                $replace = preg_replace('/(^,)|(,$)/', '', $data['categories']);
+                $replace = preg_replace('/(,,)/', ',', $replace);
+                if ($replace != $data['categories']) {
+                    $tmpWhere = '(category_id is null OR category_id in (?))';
+                } else {
+                    $tmpWhere = 'category_id in (?)';
+                }
+                $dataPriorities[] = explode(',', $replace);
+                $dataStatuses[]   = explode(',', $replace);
+                $dataEntities[]   = explode(',', $replace);
+            }
+
+            $wherePriorities[] = $tmpWhere;
+            $whereStatuses[]   = $tmpWhere;
+            $whereEntities[]   = $tmpWhere;
+        }
+        if (!empty($data['statuses'])) {
+            $wherePriorities[] = 'status in (?)';
+            $dataPriorities[]  = explode(',', $data['statuses']);
+            $whereCategories[] = 'status in (?)';
+            $dataCategories[]  = explode(',', $data['statuses']);
+            $whereEntities[]   = 'status in (?)';
+            $dataEntities[]    = explode(',', $data['statuses']);
+        }
+        if (isset($data['entities'])) {
+            if (empty($data['entities'])) {
+                $tmpWhere = 'destination is null';
+            } else {
+                $replace = preg_replace('/(^,)|(,$)/', '', $data['entities']);
+                $replace = preg_replace('/(,,)/', ',', $replace);
+                if ($replace != $data['entities']) {
+                    $tmpWhere = '(destination is null OR destination in (?))';
+                } else {
+                    $tmpWhere = 'destination in (?)';
+                }
+                $dataPriorities[] = explode(',', $replace);
+                $dataCategories[] = explode(',', $replace);
+                $dataStatuses[] = explode(',', $replace);
+            }
+
+            $wherePriorities[] = $tmpWhere;
+            $whereCategories[] = $tmpWhere;
+            $whereStatuses[]   = $tmpWhere;
+        }
+        if (!empty($data['entitiesChildren'])) {
+            $entities = explode(',', $data['entitiesChildren']);
+            $entitiesChildren = [];
+            foreach ($entities as $entity) {
+                $children = EntityModel::getEntityChildren(['entityId' => $entity]);
+                $entitiesChildren = array_merge($entitiesChildren, $children);
+            }
+            if (!empty($entitiesChildren)) {
+                $wherePriorities[] = 'destination in (?)';
+                $dataPriorities[]  = $entitiesChildren;
+                $whereCategories[] = 'destination in (?)';
+                $dataCategories[]  = $entitiesChildren;
+                $whereStatuses[]   = 'destination in (?)';
+                $dataStatuses[]    = $entitiesChildren;
+            }
+        }
+
+        $priorities = [];
+        $rawPriorities = ResModel::getOnView([
+            'select'    => ['count(res_id)', 'priority'],
+            'where'     => $wherePriorities,
+            'data'      => $dataPriorities,
+            'groupBy'   => ['priority']
+        ]);
+
+        foreach ($rawPriorities as $key => $value) {
+            $priority = null;
+            if (!empty($value['priority'])) {
+                $priority = PriorityModel::getById(['select' => ['label'], 'id' => $value['priority']]);
+            }
+            $priorities[] = [
+                'id'        => empty($value['priority']) ? null : $value['priority'],
+                'label'     => empty($priority['label']) ? '_UNDEFINED' : $priority['label'],
+                'count'     => $value['count']
+            ];
+        }
+
+        $categories = [];
+        $allCategories = ResModel::getCategories();
+        $rawCategories = ResModel::getOnView([
+            'select'    => ['count(res_id)', 'category_id'],
+            'where'     => $whereCategories,
+            'data'      => $dataCategories,
+            'groupBy'   => ['category_id']
+        ]);
+        foreach ($rawCategories as $key => $value) {
+            $label = null;
+            if (!empty($value['category_id'])) {
+                foreach ($allCategories as $category) {
+                    if ($value['category_id'] == $category['id']) {
+                        $label = $category['label'];
+                    }
+                }
+            }
+            $categories[] = [
+                'id'        => empty($value['category_id']) ? null : $value['category_id'],
+                'label'     => empty($label) ? '_UNDEFINED' : $label,
+                'count'     => $value['count']
+            ];
+        }
+
+        $statuses = [];
+        $rawStatuses = ResModel::getOnView([
+            'select'    => ['count(res_id)', 'status'],
+            'where'     => $whereStatuses,
+            'data'      => $dataStatuses,
+            'groupBy'   => ['status']
+        ]);
+        foreach ($rawStatuses as $key => $value) {
+            $status = StatusModel::getById(['select' => ['label_status'], 'id' => $value['status']]);
+            $statuses[] = [
+                'id'        => $value['status'],
+                'label'     => empty($status['label_status']) ? '_UNDEFINED' : $status['label_status'],
+                'count'     => $value['count']
+            ];
+        }
+
+        $entities = [];
+        $rawEntities = ResModel::getOnView([
+            'select'    => ['count(res_id)', 'destination'],
+            'where'     => $whereEntities,
+            'data'      => $dataEntities,
+            'groupBy'   => ['destination']
+        ]);
+        foreach ($rawEntities as $key => $value) {
+            $entity = null;
+            if (!empty($value['destination'])) {
+                $entity = EntityModel::getByEntityId(['select' => ['entity_label'], 'entityId' => $value['destination']]);
+            }
+            $entities[] = [
+                'entityId'  => empty($value['destination']) ? null : $value['destination'],
+                'label'     => empty($entity['entity_label']) ? '_UNDEFINED' : $entity['entity_label'],
+                'count'     => $value['count']
+            ];
+        }
+
+        $priorities = (count($priorities) >= 2) ? $priorities : [];
+        $categories = (count($categories) >= 2) ? $categories : [];
+        $statuses   = (count($statuses) >= 2) ? $statuses : [];
+        $entities   = (count($entities) >= 2) ? $entities : [];
+
+        $entitiesChildren = [];
+        foreach ($entities as $entity) {
+            if (!empty($entity['entityId'])) {
+                $children = EntityModel::getEntityChildren(['entityId' => $entity['entityId']]);
+                $count = 0;
+                foreach ($entities as $value) {
+                    if (in_array($value['entityId'], $children)) {
+                        $count += $value['count'];
+                    }
+                }
+            } else {
+                $count = $entity['count'];
+            }
+            $entitiesChildren[] = [
+                'entityId'  => $entity['entityId'],
+                'label'     => $entity['label'],
+                'count'     => $count
+            ];
+        }
+
+        return ['entities' => $entities, 'priorities' => $priorities, 'categories' => $categories, 'statuses' => $statuses, 'entitiesChildren' => $entitiesChildren];
+    }
 }