diff --git a/arkindex/documents/serializers/ml.py b/arkindex/documents/serializers/ml.py
index 9c334428321b68793b394b97f976a3d3a6b9cbf9..97ff0a54330934813029a73fd391ab1d51b190b8 100644
--- a/arkindex/documents/serializers/ml.py
+++ b/arkindex/documents/serializers/ml.py
@@ -378,7 +378,6 @@ class ElementTranscriptionsBulkSerializer(serializers.Serializer):
         slug_field="slug",
         help_text="An ElementType slug used to create all sub elements. Only one type is allowed per request"
     )
-    worker_version = ForbiddenField()
     worker_run_id = WorkerRunIDField(
         help_text=dedent("""
             A WorkerRun ID that the new elements and transcriptions will refer to.
diff --git a/arkindex/documents/tests/test_bulk_element_transcriptions.py b/arkindex/documents/tests/test_bulk_element_transcriptions.py
index 3ef2499efb3e35ee188e6aa9f817a88f88560afe..e47e5b5be9b169e3308a5b8f388f80ce0707e3c3 100644
--- a/arkindex/documents/tests/test_bulk_element_transcriptions.py
+++ b/arkindex/documents/tests/test_bulk_element_transcriptions.py
@@ -40,7 +40,6 @@ class TestBulkElementTranscriptions(FixtureAPITestCase):
     def test_bulk_transcriptions_worker_version(self):
         data = {
             "element_type": "text_line",
-            "worker_version": str(self.worker_version.id),
             "transcriptions": [
                 {
                     "polygon": [[13, 37], [133, 37], [133, 137], [13, 137], [13, 37]],
@@ -60,7 +59,6 @@ class TestBulkElementTranscriptions(FixtureAPITestCase):
             self.assertEqual(response.status_code, status.HTTP_400_BAD_REQUEST)
         self.assertEqual(response.json(), {
             "worker_run_id": ["This field is required."],
-            "worker_version": ["This field is forbidden."],
         })
 
     def test_bulk_transcriptions_worker_run(self):
@@ -369,28 +367,6 @@ class TestBulkElementTranscriptions(FixtureAPITestCase):
             "worker_run_id": ["This field is required."],
         })
 
-    def test_bulk_transcriptions_version_xor_run(self):
-        self.client.force_login(self.user)
-        with self.assertNumQueries(5):
-            response = self.client.post(
-                reverse("api:element-transcriptions-bulk", kwargs={"pk": self.page.id}),
-                format="json",
-                data={
-                    "worker_version": str(self.custom_version.id),
-                    "worker_run_id": str(self.local_worker_run.id),
-                    "element_type": "text_line",
-                    "transcriptions": [{
-                        "polygon": [[13, 37], [133, 37], [133, 137], [13, 137], [13, 37]],
-                        "text": "Can I write womething here ?",
-                        "confidence": .666
-                    }]
-                }
-            )
-            self.assertEqual(response.status_code, status.HTTP_400_BAD_REQUEST)
-        self.assertDictEqual(response.json(), {
-            "worker_version": ["This field is forbidden."],
-        })
-
     def test_bulk_transcriptions_wrong_fields_validation(self):
         """
         Briefly assert fields values are validated
@@ -403,7 +379,6 @@ class TestBulkElementTranscriptions(FixtureAPITestCase):
                 format="json",
                 data={
                     "element_type": "paragraph",
-                    "worker_version": bad_id,
                     "worker_run_id": bad_id,
                     "transcriptions": [
                         {
@@ -425,7 +400,6 @@ class TestBulkElementTranscriptions(FixtureAPITestCase):
             self.assertEqual(response.status_code, status.HTTP_400_BAD_REQUEST)
         self.assertDictEqual(response.json(), {
             "element_type": ["Object with slug=paragraph does not exist."],
-            "worker_version": ["This field is forbidden."],
             "worker_run_id": [f'Invalid pk "{bad_id}" - object does not exist.'],
             "transcriptions": [
                 {