diff --git a/arkindex/dataimport/api.py b/arkindex/dataimport/api.py
index 52975d292ecfc2d3290368077c2a9878e1c5a38e..211e7f82cef2506c0a0f70a44bfd990f5df2123f 100644
--- a/arkindex/dataimport/api.py
+++ b/arkindex/dataimport/api.py
@@ -29,7 +29,7 @@ from arkindex.dataimport.serializers.imports import (
     ImportTranskribusSerializer
 )
 from arkindex.dataimport.serializers.workers import WorkerSerializer, WorkerVersionSerializer
-from arkindex.users.models import OAuthCredentials
+from arkindex.users.models import OAuthCredentials, User
 from arkindex.project.fields import ArrayRemove
 from arkindex_common.ml_tool import MLTool, MLToolType
 from arkindex_common.enums import DataImportMode
@@ -116,6 +116,19 @@ class DataImportsList(CorpusACLMixin, ListAPIView):
                     'mode': "Mode '{}' does not exist".format(self.request.query_params['mode']),
                 })
 
+        if 'creator' in self.request.query_params:
+            try:
+                user_filters = {'id': int(self.request.query_params['creator'])}
+            except ValueError:
+                user_filters = {'email': self.request.query_params['creator']}
+
+            try:
+                filters['creator'] = User.objects.get(**user_filters)
+            except User.DoesNotExist:
+                raise ValidationError({
+                    'creator': "User with email or id '{}' does not exist".format(self.request.query_params['creator']),
+                })
+
         if 'id' in self.request.query_params:
             filters['id__startswith'] = self.request.query_params['id']
 
diff --git a/arkindex/dataimport/tests/test_imports.py b/arkindex/dataimport/tests/test_imports.py
index 8555c95789ac6e9c62078fafdcaa5e722f94469f..2daf11a392bb99ff10e9b04f36ed6628ae431f71 100644
--- a/arkindex/dataimport/tests/test_imports.py
+++ b/arkindex/dataimport/tests/test_imports.py
@@ -4,6 +4,7 @@ from arkindex_common.enums import DataImportMode
 from arkindex.dataimport.models import DataImport, DataFile
 from arkindex.documents.models import Corpus
 from arkindex.project.tests import FixtureAPITestCase
+from arkindex.users.models import User
 from ponos.models import State, Workflow
 import uuid
 
@@ -139,6 +140,41 @@ class TestImports(FixtureAPITestCase):
         self.assertEqual(response.status_code, status.HTTP_400_BAD_REQUEST)
         self.assertEqual(response.json(), {'mode': "Mode 'unexisting_mode' does not exist"})
 
+    def test_list_filter_creator_by_email(self):
+        self.client.force_login(self.user)
+        self.corpus.imports.create(
+            creator=User.objects.create_user(email='another_user@user.fr'),
+            mode=DataImportMode.PDF,
+        )
+        response = self.client.get(reverse('api:import-list'), {'creator': 'user@user.fr', 'with_workflow': False})
+        self.assertEqual(response.status_code, status.HTTP_200_OK)
+        data = response.json()
+        self.assertEqual(len(data['results']), 1)
+        self.assertEqual(data['results'][0]['id'], str(self.dataimport.id))
+
+    def test_list_filter_creator_by_id(self):
+        self.client.force_login(self.user)
+        self.corpus.imports.create(
+            creator=User.objects.create_user(email='another_user@user.fr'),
+            mode=DataImportMode.PDF,
+        )
+        response = self.client.get(reverse('api:import-list'), {'creator': self.user.id, 'with_workflow': False})
+        self.assertEqual(response.status_code, status.HTTP_200_OK)
+        data = response.json()
+        self.assertEqual(len(data['results']), 1)
+        self.assertEqual(data['results'][0]['id'], str(self.dataimport.id))
+
+    def test_list_filter_unexisting_creator(self):
+        self.client.force_login(self.user)
+        response = self.client.get(reverse('api:import-list'), {'creator': 'blabla@blabla.fr'})
+        self.assertEqual(response.status_code, status.HTTP_400_BAD_REQUEST)
+        self.assertEqual(response.json(), {'creator': "User with email or id 'blabla@blabla.fr' does not exist"})
+
+        self.client.force_login(self.user)
+        response = self.client.get(reverse('api:import-list'), {'creator': '5'})
+        self.assertEqual(response.status_code, status.HTTP_400_BAD_REQUEST)
+        self.assertEqual(response.json(), {'creator': "User with email or id '5' does not exist"})
+
     def test_list_filter_id(self):
         self.client.force_login(self.user)