diff --git a/smash/web/api_views/subject.py b/smash/web/api_views/subject.py
index f5c777ccbd9f2c8fd1a2d607ed18ea171fa3fefe..2a817787d77d5b057e00634952b2382da2f4ee9f 100644
--- a/smash/web/api_views/subject.py
+++ b/smash/web/api_views/subject.py
@@ -373,7 +373,7 @@ def get_subjects_filtered(subjects_to_be_filtered: QuerySet, filters) -> QuerySe
         elif column == "flying_team":
             result = result.filter(flying_team=value)
         elif column == "type":
-            result = result.filter(type__name=value)
+            result = result.filter(type_id=value)
         elif str(column).startswith("visit_"):
             visit_number = get_visit_number_from_visit_x_string(column)
             result = filter_by_visit(result, visit_number, value)
diff --git a/smash/web/tests/api_views/test_subject.py b/smash/web/tests/api_views/test_subject.py
index 97943bb1e948b3ac35db33cd92379bceb35b86c3..1d6a915ae922ee9343a4aa57e5ea5e5b1b57aa92 100644
--- a/smash/web/tests/api_views/test_subject.py
+++ b/smash/web/tests/api_views/test_subject.py
@@ -448,8 +448,8 @@ class TestSubjectApi(LoggedInWithWorkerTestCase):
         subject.type = get_patient_subject_type()
         subject.save()
 
-        self.check_subject_filtered([["type", get_patient_subject_type().name]], [subject])
-        self.check_subject_filtered([["type", get_control_subject_type().name]], [])
+        self.check_subject_filtered([["type", get_patient_subject_type().id]], [subject])
+        self.check_subject_filtered([["type", get_control_subject_type().id]], [])
 
     def test_subjects_filter_unknown(self):
         subject = self.study_subject