diff --git a/__tests__/requests/insee.spec.js b/__tests__/requests/insee.spec.js
index 935db10de9464b68faa733d1d2b4ca4773c147ba..057c0bd3e2dd109972e361ecaab600fd5b7f3368 100644
--- a/__tests__/requests/insee.spec.js
+++ b/__tests__/requests/insee.spec.js
@@ -50,6 +50,13 @@ describe('getInseeCode', () => {
           '69153'
         )
       })
+      it('should throw USER_ACTION_NEEDED when city is not precise enough', async () => {
+        try {
+          await getInseeCode(26600, 'e')
+        } catch (error) {
+          expect(error).toEqual(errors.USER_ACTION_NEEDED)
+        }
+      })
     })
 
     it("should return insee code for: L'isle d'abeau", async () => {
diff --git a/src/requests/insee.js b/src/requests/insee.js
index 710560fa850c938258e8313b622877d9711570c6..04f4f99e589c0234f14d62bf8f0b29afd2b726e8 100644
--- a/src/requests/insee.js
+++ b/src/requests/insee.js
@@ -27,6 +27,12 @@ async function getInseeCode(postalCode, city) {
         sanitizeCity(commune.nomCommune).includes(parsedCity)
       )
 
+      if (filteredResponse.length > 1) {
+        throw new Error(
+          'Input city is not precise enough, more than one city was found'
+        )
+      }
+
       return filteredResponse[0].codeCommune
     }
   } catch (error) {